MCP server
Connect Claude Desktop, Claude Code, Cursor or any MCP client to findbytown with your API key.
The Model Context Protocol lets an assistant call outside tools. Connected to findbytown, an assistant such as Claude can search companies, check your quota and, when you agree, reveal contacts.
- Address:
https://findbytown.com/api/mcp, also reachable athttps://developers.findbytown.com/api/mcp. - Transport: Streamable HTTP, stateless, with JSON responses. There are no sessions and no event stream, and
GETandDELETEanswer 405. - Authentication: your API key as a Bearer token.
- Limits: the same keys, plan check, quota and limits as the REST API.
See each tool. Replace the example key with your own: your API keys page shows these same snippets with a new key already filled in.
Claude Code
Run this once in your terminal:
claude mcp add --transport http findbytown https://findbytown.com/api/mcp \
--header "Authorization: Bearer fbt_EXAMPLE_not_a_real_key_0000"To share the setup with a project without sharing the key, put this in .mcp.json at the project root, and set FINDBYTOWN_API_KEY in your environment. Claude Code asks for approval before using a project's server.
{
"mcpServers": {
"findbytown": {
"type": "http",
"url": "https://findbytown.com/api/mcp",
"headers": {
"Authorization": "Bearer ${FINDBYTOWN_API_KEY}"
}
}
}
}Claude Desktop
Add it as a custom connector, where your plan offers them:
- Go to Customize > Connectors, select + Add, then Add custom connector.
- Name:
findbytown. Remote MCP server URL:https://findbytown.com/api/mcp. - Under Request headers, add
Authorizationwith the valueBearerfollowed by a space and your key. - Select Add.
On Team and Enterprise plans, an Owner adds the connector in the organisation's settings. Connectors reach us from Anthropic's servers, not from your computer.
Or use the configuration file with the mcp-remote bridge, which needs Node.js. Add this to claude_desktop_config.json (on macOS in ~/Library/Application Support/Claude/, on Windows in %APPDATA%\Claude\) and restart Claude Desktop:
{
"mcpServers": {
"findbytown": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://findbytown.com/api/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer fbt_EXAMPLE_not_a_real_key_0000"
}
}
}
}Cursor
Put this in ~/.cursor/mcp.json for every project, or in .cursor/mcp.json for one. To keep the key out of the file, write Bearer ${env:FINDBYTOWN_API_KEY} instead and set that variable in your environment.
{
"mcpServers": {
"findbytown": {
"url": "https://findbytown.com/api/mcp",
"headers": {
"Authorization": "Bearer fbt_EXAMPLE_not_a_real_key_0000"
}
}
}
}Other clients
Any client that speaks Streamable HTTP and can send a header works. It needs the address, Authorization: Bearer <key>, and Accept: application/json, text/event-stream on each POST. To check the connection by hand:
curl -X POST "https://findbytown.com/api/mcp" \
-H "Authorization: Bearer fbt_EXAMPLE_not_a_real_key_0000" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Security
- Your client's configuration holds your key, so treat that file like a password.
reveal_companyspends quota only withconfirm: true, and tells clients that it does. Keep your client's approval prompt on for this tool.- Company names and descriptions are written by third parties. Results are marked as untrusted data and cleaned of control characters, but a model can still be misled by text it reads: review before acting on it.
- A browser may only call from our own sites: any other
Origingets a 403.