accueil / serveurs / Recherche & Web / io.github.shujahmhd/foundaree
io.github.shujahmhd/foundaree
serveur MCP (Model Context Protocol) · foundaree 1.4.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.shujahmhd/foundaree est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.shujahmhd/foundaree » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 14 outils
- check_errand≈ 182 tokens
Check on an errand started with find_and_ask: which of the people asked have accepted, declined or not answered yet. Use it when the user asks "did anyone get back to me?". Someone who accepted will call the user on the number they gave; Foundaree does not arrange the time.
Paramètres, retour & exemple (1)
ParamètreserrandId· string · requis
The errandId that find_and_ask returned.
Exemple d'appel{"name": "check_errand", "arguments": {"errandId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - create_profile_draft≈ 1017 tokens
Start a Foundaree profile for the user. Use it only when the user asks to join Foundaree, to be listed on it, or to create their own profile. Fill in only details the user gave about THEMSELVES: never about someone else, and never guess. Only `name` is required. Nothing is published: this saves a private draft and returns one link (finishUrl). The user opens it, checks the profile, signs in and taps Publish; until then nobody can find it. Show the user the link. It works once, for 7 days. Nobody is emailed or texted.
Paramètres, retour & exemple (15)
Paramètresbio· ? · optionnel
A few sentences about them: experience, languages, the work they take.area· ? · optionnel
Neighbourhood or area they work in within the city, e.g. 'Kakkanad'.name· string · requis
The person's own name, as they gave it.phone· ? · optionnel
Their phone number, with the country code when they gave one. Shown only if they choose so when publishing.skills· array · optionnel
Skill names, e.g. ['Pipe fitting', 'Leak repair'].intents· array · optionnel
What they are open to.category· ? · optionnel
Their trade or job as a short lowercase slug, e.g. plumber, electrician, carpenter, driver, cleaner, tutor, software-engineer, designer, accountant.headline· ? · optionnel
One short line about their work, in their words.location· ? · optionnel
Their city, e.g. 'Kochi' or 'Kochi, Kerala'.whatsapp· ? · optionnel
Their WhatsApp number. Shown only if they choose so when publishing.githubUrl· ? · optionnel
Their GitHub page (http:// or https://).lookingFor· array · optionnel
The kind of work they want, as short tags, e.g. ['weekend jobs'].linkedinUrl· ? · optionnel
Their LinkedIn page (http:// or https://).availability· string · optionnel · available | open_to_offers | not_looking | unspecified
available = free now; open_to_offers = open to work; not_looking = not looking right now.portfolioUrl· ? · optionnel
Their own website (http:// or https://).
Exemple d'appel{"name": "create_profile_draft", "arguments": {"name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"summary": "texte", "expiresAt": "texte", "finishUrl": "texte"}} - find_and_ask≈ 600 tokens
Hand the whole errand to Foundaree: "find me a plumber in Kochi for Saturday morning". Foundaree searches, ranks the way its website does (people free now first), sends a booking request to the best one to three, and reports who was asked. Use this instead of search_people + request_appointment when the user wants it sorted rather than a list to choose from. Needs the user’s OWN name and phone number, which they gave you, and their clear yes before calling: real people will be contacted. Each person asked calls the user back if they can take it; nothing is confirmed until they do, so say that. Keep the returned errandId and use check_errand later to see who said yes. No account needed.
Paramètres, retour & exemple (9)
Paramètresarea· string · optionnel
Neighbourhood, e.g. Kakkanad. Optional.name· string · requis
The user's own name, as they gave it.need· string · requis
What the user needs done, in a sentence or two.when· string · requis
When they would like it, in plain words, e.g. 'Saturday morning' or 'today after 5 pm'.phone· string · requis
The user's own phone number, with country code when known, e.g. +91 98470 12345. The person calls back on it.howMany· integer · optionnel
How many people to ask, 1 to 3. Two is a good default: a choice without pestering.language· string · optionnel
Only ask people who work in this language, e.g. Malayalam. Leave out if any language is fine.location· string · optionnel
City, e.g. Kochi. Strongly recommended.workType· string · optionnel · local_service | professional
local_service for trades, repairs, driving and care; professional for office work. Leave out if unsure.
Exemple d'appel{"name": "find_and_ask", "arguments": {"name": "texte", "need": "texte", "when": "texte", "phone": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_person≈ 1341 tokens
Retrieve the full public profile for a username, including skills, experiences, projects, `services` (what they offer with prices: name, price in whole currency units or null for "ask", currency, per job/hour/day/visit/session/month, from = starting price, note), `licence` (a registration number Foundaree's admin looked up on its public register, e.g. a doctor's NMC number: body, number, checkedAt; only once verified, and then "licence" is also in `verifiedBy`), and the phone, WhatsApp and contact email (`phone`, `whatsapp`, `contactEmail`) when the person made them public. `workProof`, when at least one kind is proven, is a count, not a score: "Proof: `proven` of `total`" over GitHub, website and LinkedIn (LinkedIn has no proof yet), with the facts of each proven one: `github` (public facts of a GitHub account they proved is theirs by signing in with it: repos, stars, followers, top languages, last push, and when Foundaree read them) and `website` (their website links back to this profile). `person.updatedAt` is when they last edited the profile. Returns structured JSON with `success`, `found` and `person` fields. Each answer has two views: the text content is the JSON described above, and the structured content is a profile-card list (`people`, `total`, `query`). In apps that support MCP Apps (ChatGPT, Claude) the cards render as Foundaree profile cards. A person with `foundareeRole` ("founder" or "team") is part of Foundaree's own team; only Foundaree sets it.
Paramètres, retour & exemple (1)
Paramètresusername· string · requis
Username of the person, e.g. "maya-chen"
Exemple d'appel{"name": "get_person", "arguments": {"username": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"query": {}, "total": 1, "people": []}} - match_people≈ 1756 tokens
Rank public Foundaree profiles against a list of required skills — use when the user describes a need ("a co-founder who knows React and has sold to enterprises", "a dentist in Pune", "someone to rewire my kitchen in Kochi") rather than searching for a known person. Give the required skills as `skills` (or describe the need in `q`; skill terms are then derived from it and `q` also narrows candidates by full text). location, area, workType, category, availability and lookingFor are hard filters; the skills only score: score = matched ÷ required (0–1), where a listed skill counts 1 and a term found in the person's category or lookingFor counts ½. Someone with 3 of 5 skills still appears, below someone with 5; ties break on availability (available first), then founding members (Foundaree's first 150 members), then recency. When nobody matches a single skill, the filtered candidates come back with score 0 and `fallback: true` instead of an empty list. Returns JSON with `items` (each: `person`, `score`, `matchedSkills`, `missingSkills`, `profileUrl`), `total`, `requiredSkills` and `fallback`. Each answer has two views: the text content is the JSON described above, and the structured content is a profile-card list (`people`, `total`, `query`). In apps that support MCP Apps (ChatGPT, Claude) the cards render as Foundaree profile cards. A person with `foundareeRole` ("founder" or "team") is part of Foundaree's own team; only Foundaree sets it.
Paramètres, retour & exemple (9)
Paramètresq· string · optionnel
Free-text description of the need, e.g. "someone with React and PostgreSQL experience". Used to derive skills when `skills` is absent, and as a full-text filter.area· string · optionnel
Optional neighbourhood filter within the city (case-insensitive substring), e.g. "Kakkanad"limit· integer · optionnel
Maximum number of ranked results. Defaults to 20.skills· array · optionnel
The required skills, e.g. ["React", "PostgreSQL", "Kubernetes"]. Required unless q is given.category· string · optionnel
Optional comma-separated trade/profession filter (OR semantics), e.g. "driver" or "carpenter,electrician"location· string · optionnel
Optional location filter (case-insensitive substring), e.g. "Bengaluru" or "Kochi"workType· string · optionnel · local_service | professional
Optional audience filter: local_service = blue-collar jobs, hands-on work (electricians, carpenters, drivers, cleaners, carers...); professional = white-collar jobs, office and professional work (developers, designers, accountants...)lookingFor· string · optionnel
Optional comma-separated looking-for filter (AND semantics), e.g. "cofounder" or "job,freelance"availability· string · optionnel · available | open_to_offers | not_looking | unspecified
Optional availability filter (exact match)
Exemple d'appel{"name": "match_people", "arguments": {"q": "texte", "area": "texte", "limit": 1, "skills": [], "category": "texte", "location": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"query": {}, "total": 1, "people": []}} - my_bookings≈ 176 tokens
List the booking requests people sent to the signed-in user: who asked, what they need, when, and whether it is still waiting for an answer. Use it when the user asks what is waiting on Foundaree, who wants to book them, or what they have not answered yet. Needs the user to have connected their Foundaree account. Lead with the ones still waiting, and offer to answer them with respond_to_booking.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "my_bookings", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - my_connection_requests≈ 140 tokens
List the connection requests waiting for the signed-in user, and the ones they sent that are still pending. Use it when the user asks who wants to connect, or what is waiting on Foundaree. Offer to answer them with respond_to_connection.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "my_connection_requests", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - request_appointment≈ 619 tokens
Send a booking request to one person on Foundaree, for the user: "book this plumber for Saturday morning", "ask this dentist for an appointment". Use it only when the user asked to book or contact that person, and only with the user's OWN name and phone number, which they gave you: never guess or reuse another number. Before calling, tell the user what you will send and to whom, and get their yes. The person sees the request on Foundaree and by email, and calls the user back on that number if they can take it; nothing is confirmed until they do, so say that to the user. Find the username with search_people or match_people first. One open request per phone number and person; a few per number a day.
Paramètres, retour & exemple (6)
Paramètresarea· string · optionnel
Where the work is: the user's area or address hint, e.g. 'Kakkanad, near Infopark'. Optional.name· string · requis
The user's own name, as they gave it.need· string · requis
What the user needs done, in a sentence or two.when· string · requis
When they would like it, in plain words, e.g. 'Saturday morning' or 'today after 5 pm'.phone· string · requis
The user's own phone number, with country code when known, e.g. +91 98470 12345. The person calls back on it.username· string · requis
Username of the person to book, from search_people, match_people or get_person.
Exemple d'appel{"name": "request_appointment", "arguments": {"name": "texte", "need": "texte", "when": "texte", "phone": "texte", "username": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"sent": true, "person": {}, "message": "texte"}} - respond_to_booking≈ 219 tokens
Answer one booking request sent to the signed-in user. Get the id from my_bookings first. Always read the request back to the user and get a clear yes before calling this: it is their answer to a real person, not yours. Accepting does not arrange a time — the user still has to call them — so say that.
Paramètres, retour & exemple (2)
Paramètresanswer· string · requis · accept | decline
What the user decided.bookingId· string · requis
The request id, from my_bookings.
Exemple d'appel{"name": "respond_to_booking", "arguments": {"answer": "accept", "bookingId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - respond_to_connection≈ 216 tokens
Answer one connection request sent to the signed-in user. Get the id from my_connection_requests first. Tell the user who it is and what they wrote, and get their yes before calling this. Declining removes the request quietly; the other person is not told they were declined.
Paramètres, retour & exemple (2)
Paramètresanswer· string · requis · accept | decline
What the user decided.requestId· string · requis
The request id, from my_connection_requests.
Exemple d'appel{"name": "respond_to_connection", "arguments": {"answer": "accept", "requestId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - search_opportunities≈ 370 tokens
Search public openings on Foundaree: jobs, freelance work, internships, projects, co-founder and advisory roles. Use it when the user is looking for work or a role ("React jobs in Bengaluru", "a co-founder role in fintech", "internships in design"), or asks what a company is hiring for. Matches the title, description, city and skills. Only open listings are returned unless `includeClosed` is true. Returns JSON with `items` (each: `username`, `title`, `type`, `companyUsername`, `location`, `description`, `skills`, `status`, `listingUrl`, `companyUrl`) and `total`. People apply on the listing page on Foundaree; this tool does not apply for anyone. Foundaree is new, so there may be few or none: say so rather than guessing.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnel
Maximum number of results. Defaults to 10.query· string · requis
Role, skill, kind of work or city, e.g. "React developer Bengaluru"includeClosed· boolean · optionnel
Also return listings that are closed. Defaults to false.
Exemple d'appel{"name": "search_opportunities", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - search_organizations≈ 276 tokens
Search public company and organization pages on Foundaree by name, what they do, or city: "design studios in Kochi", "a clinic in Pune", "startups building for farmers". Use it when the user needs a company or team rather than one person. Returns JSON with `items` (each: `username`, `name`, `description`, `website`, `location`, `pageUrl`) and `total`. Foundaree is new, so there may be few or none: say so rather than guessing. A company's open roles come from search_opportunities.
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionnel
Maximum number of results. Defaults to 10.query· string · requis
Name, kind of company, what they do, or a city, e.g. "design studio Kochi"
Exemple d'appel{"name": "search_organizations", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - search_people≈ 1921 tokens
Search public Foundaree profiles by free-text query and/or structured filters; give at least one. Free-text matches name, headline, bio, location, skills, experiences and projects. Each result carries `services` (what the person offers with prices), `languages`, `serviceAreas` (areas they cover) and `workingHours` (one entry per day, 24-hour HH:MM) when they gave them, so you can compare before booking. Each result has `updatedAt`, when the person last edited their profile: prefer recent ones when details matter, and say so when a profile is old. Among equally good matches, recently updated profiles rank a little higher. Structured filters: location (substring), area (neighbourhood substring; also matches the areas a person says they cover), language (a language they work in, e.g. Malayalam), workType (exact: local_service = blue-collar, hands-on work; professional = white-collar work), category (comma-separated trades/professions, OR semantics), availability (exact: available, open_to_offers, not_looking, unspecified), skills (comma-separated, AND semantics), lookingFor (comma-separated, AND semantics). Only the first 100 results can be paged through (offset + limit ≤ 100); add filters to narrow the search. Among people who fit equally well, founding members (Foundaree's first 150 members, `foundingMember`) come first; a better match always ranks higher. Returns JSON with a `results` array of structured people summaries. Results never include phone numbers or emails: use get_person for one profile's public contact details. Each answer has two views: the text content is the JSON described above, and the structured content is a profile-card list (`people`, `total`, `query`). In apps that support MCP Apps (ChatGPT, Claude) the cards render as Foundaree profile cards. A person with `foundareeRole` ("founder" or "team") is part of Foundaree's own team; only Foundaree sets it.
Paramètres, retour & exemple (11)
Paramètresarea· string · optionnel
Optional neighbourhood filter within the city (case-insensitive substring), e.g. "Kakkanad"limit· integer · optionnel
Maximum number of results. Defaults to 20.query· string · optionnel
Optional free-text search query, e.g. "postgres engineer" or "technical co-founder"offset· integer · optionnel
Pagination offset. Defaults to 0. Paging stops after the first 100 results.skills· string · optionnel
Optional comma-separated skills filter (AND semantics), e.g. "AI,ML" or "React,TypeScript"category· string · optionnel
Optional comma-separated trade/profession filter (OR semantics), e.g. "electrician" or "electrician,carpenter"language· string · optionnel
Optional language they work in (whole name, any case), e.g. "Malayalam", "Tamil" or "Hindi"location· string · optionnel
Optional location filter (case-insensitive substring), e.g. "Bangalore" or "San Francisco"workType· string · optionnel · local_service | professional
Optional audience filter: local_service = blue-collar jobs, hands-on work (electricians, carpenters, drivers, cleaners, carers...); professional = white-collar jobs, office and professional work (developers, designers, accountants...)lookingFor· string · optionnel
Optional comma-separated looking-for filter (AND semantics), e.g. "cofounder" or "job,freelance"availability· string · optionnel · available | open_to_offers | not_looking | unspecified
Optional availability filter (exact match)
Exemple d'appel{"name": "search_people", "arguments": {"area": "texte", "limit": 1, "query": "texte", "offset": 1, "skills": "texte", "category": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"query": {}, "total": 1, "people": []}} - set_my_availability≈ 210 tokens
Change the signed-in user's availability on their Foundaree profile: available (free for work now), open_to_offers (working, but will listen), or not_looking. This is public and it changes who finds them in search, so confirm with the user before calling it. Useful when they say they have finished a job, are fully booked, or want to be found again.
Paramètres, retour & exemple (1)
Paramètresavailability· string · requis · available | open_to_offers | not_looking
The state to set on the profile.
Exemple d'appel{"name": "set_my_availability", "arguments": {"availability": "available"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».