MCP server
Let your AI assistant find makers, projects and member deals on Build in Public, and add or edit your own projects. Works with Claude, ChatGPT, Cursor, Claude Code and any other MCP client.
Try asking
Click a prompt to copy it. The copy ends with a pointer to this page, so it works even if your assistant isn't connected yet.
Connect your client
Point any MCP client at this endpoint (streamable HTTP). It signs you in with your X account through Build in Public the first time it connects. You can disconnect it any time from connected apps.
Claude Code
Then run /mcp inside Claude Code to sign in.
Claude (web and desktop)
Settings → Connectors → Add custom connector. Name it Build in Public, paste the endpoint above, and sign in when prompted. Works on the web and in the desktop app.
Cursor
Add this to .cursor/mcp.json, then approve the sign-in prompt:
{
"mcpServers": {
"buildinpublic": { "url": "https://api.buildinpublic.com/mcp" }
}
}
ChatGPT
Settings → Apps & Connectors → Create, with developer mode turned on. Paste the endpoint above and sign in when prompted.
Access and limits
Any member can connect, manage their own projects and browse deals. Your assistant can check for a deal before you pay for a tool, and request one we don't have yet so you're emailed when it lands. Deals are unlocked on the site, not through the server. Searching the directory and looking up other members needs elevated access, which isn't on every account. The server is in beta, so tools and the fields they return can still change.
Up to 60 tool calls a minute and 2,000 a day per member, shared with the REST API. Adding, editing, removing and verifying projects has its own budget of 10 an hour and 20 a day. Searches stop after 500 results, so narrow the query instead of paging deep.
All 14 tools
- get_me
- Return the signed-in member's profile and which of location, photo and projects are still missing. Use this when helping them finish setup. A face photo can't be uploaded here; missing photo means they need to upload one on buildinpublic.com.
- update_profile
- Change the signed-in member's name, bio, location or website. Same checks as the welcome form: bio up to 160 characters, location up to 30, website up to 100 and a valid http(s) URL. Only the fields passed change; an empty bio, location or website clears it. Confirm the details with the member before calling.
- search_users
- Search makers in the Build in Public directory by username, name, bio or location, newest first by default. Returns compact profiles; use get_user for one maker with their projects. Needs elevated access.
- get_user
- Fetch a maker's profile with all their projects. Unverified projects are included and marked verified: false. Without elevated access, only the signed-in member can be fetched.
- search_projects
- Search verified projects by name, pitch or URL, newest first by default. A project is verified when its site names its maker. To list one maker's projects, including unverified ones, use get_user. Needs elevated access.
- get_project
- Fetch one project, verified or not. Without elevated access, only one of the signed-in member's own projects.
- create_project
- Add a project to the signed-in member's profile. A member can have 5 unverified projects at a time. A project is verified, and listed in the directory, once its site names the maker; the result includes the tag or DNS record to add for that. ahrefs_domain_rating is null at first and fills in shortly after, so fetch the project again with get_project if it's needed. Confirm the details with the member first.
- update_project
- Change the name, website, pitch or slug of one of the signed-in member's own projects. Only the fields passed change; an empty pitch clears it. Changing the website re-checks verification.
- delete_project
- Remove one of the signed-in member's own projects. Build in Public may ask the member to confirm first, so read status in the result before telling them it's gone: approved means it was removed, pending means share approval_url with the member, who confirms on buildinpublic.com, and check back with get_request once they say they've decided. Follow the result's instructions.
- get_request
- Check a request the member has to approve, such as one made with delete_project: pending until the member decides, then approved (it was carried out) or rejected, or expired if they didn't decide in time. The result's instructions say what each status means for that request.
- verify_projects
- Check the signed-in member's unverified projects for their tag or DNS record now, instead of waiting for the check after a project is added. Pass project to check just one. Each project is checked at most once a minute. The result includes the TXT record value, which is the same for all of the member's domains, so it can be added to every domain before or after adding the projects.
- search_deals
- List the discounts and credits on software that Build in Public members can get, by name by default. Each result has the deal's one-line summary and its deal_url, where the member unlocks it. Deals can't be redeemed through this server. Check here before the member signs up or pays for any software or API. If a product has no deal, offer to ask for one with request_deal.
- get_deal
- Fetch one deal: what the product is, each offer for it, what it's worth and who it's for. To unlock it, the member opens deal_url on buildinpublic.com.
- request_deal
- Ask Build in Public for a deal on a product that search_deals has none for. Requests are how we decide which vendors to approach, and the member is emailed when the deal lands. Use it any time the member wants software we have no deal for, after asking them. Needs write access.