The Model Context Protocol gives AI agents a standard way to call external tools. btob.dev exposes a Streamable HTTP MCP server at https://btob.dev/mcp with 7 tools for searching, enriching, and verifying European companies.
Any MCP-compatible client — Claude Desktop, Cursor, Windsurf, your own agent — can connect in seconds. An API key is required — join the waitlist or email [email protected] to get yours.
Getting started
Add the btob.dev MCP server to your client configuration. One endpoint, one API key, all 7 tools available immediately.
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"btob": {
"url": "https://btob.dev/mcp"
}
}
}Restart Claude Desktop. You can now ask Claude about European companies and it will call btob.dev tools automatically.
Reference
The btob.dev MCP server exposes 7 tools. Your agent calls them through the protocol — you write natural language, the client maps it to the right tool.
Search European B2B suppliers by keyword. Returns matching suppliers with name, country, industries, and quality score.
| Parameter | Type | Description |
|---|---|---|
qRequired | string | Search query (keywords, max 200 chars) |
country | string | ISO 3166-1 alpha-2 country code filter (e.g. DE, FR) |
limit | number | Max results to return (1–100, default: 10) |
"Find German suppliers of precision CNC machining"
→ Agent calls search_suppliers({ q: "precision CNC machining", country: "DE" })Get full supplier profile by ID, including certifications and NACE codes.
| Parameter | Type | Description |
|---|---|---|
idRequired | string (uuid) | Supplier UUID |
"Get me the full profile for supplier a1b2c3d4-e5f6-..."
→ Agent calls get_supplier({ id: "a1b2c3d4-e5f6-..." })Semantic similarity search for suppliers. Uses vector embeddings to find suppliers matching a natural language query. Results may vary as embedding coverage expands.
| Parameter | Type | Description |
|---|---|---|
qRequired | string | Natural language search query (max 200 chars) |
country | string | ISO 3166-1 alpha-2 country code filter (e.g. DE, FR) |
limit | number | Max results to return (1–100, default: 20) |
offset | number | Offset for pagination (default: 0) |
"Find companies that do sustainable packaging from recycled materials"
→ Agent calls semantic_search({ q: "sustainable packaging recycled materials" })List all unique industry categories available in the index. Takes no parameters.
"What industries are covered in btob.dev?"
→ Agent calls list_industries()List all unique country codes available in the index. Takes no parameters.
"Which countries does btob.dev cover?"
→ Agent calls list_countries()Get structured JSON-LD business data for a supplier by slug. Returns linked data with NACE codes, provenance, and EU vocabulary.
| Parameter | Type | Description |
|---|---|---|
slugRequired | string | Supplier URL slug (max 500 chars) |
"Get the JSON-LD data for siemens-ag"
→ Agent calls get_business_json({ slug: "siemens-ag" })Get a markdown supplier profile optimized for LLM context windows. Includes provenance and trust data.
| Parameter | Type | Description |
|---|---|---|
slugRequired | string | Supplier URL slug (max 500 chars) |
"Get a readable profile of bosch-gmbh"
→ Agent calls get_supplier_profile({ slug: "bosch-gmbh" })Patterns
Natural language queries your agent can handle once connected to btob.dev. The MCP client resolves these to the right tool calls automatically.
“Find French companies that manufacture electric vehicle batteries”
search_suppliers({ q: "electric vehicle batteries", country: "FR" })“Search for sustainable packaging companies across Europe”
semantic_search({ q: "sustainable packaging" })“Get the full profile for supplier ID abc-123-...”
get_supplier({ id: "abc-123-..." })“What countries does btob.dev cover?”
list_countries()“Get structured data for siemens-ag in JSON-LD format”
get_business_json({ slug: "siemens-ag" })“Give me a summary of bosch-gmbh I can paste into a report”
get_supplier_profile({ slug: "bosch-gmbh" })Setup
btob.dev uses Streamable HTTP transport. Add the server URL to any MCP-compatible client.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows.
{
"mcpServers": {
"btob": {
"url": "https://btob.dev/mcp"
}
}
}Add to your .cursor/mcp.json in the project root.
{
"mcpServers": {
"btob": {
"url": "https://btob.dev/mcp"
}
}
}Use any MCP SDK. The server accepts Streamable HTTP at a single endpoint.
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
const client = new Client({ name: "my-agent", version: "1.0.0" })
await client.connect(
new StreamableHTTPClientTransport(new URL("https://btob.dev/mcp"))
)
// Call a tool
const result = await client.callTool({
name: "search_suppliers",
arguments: { q: "renewable energy", country: "DE", limit: 5 }
})
console.log(result)Explore the REST API for direct HTTP access, or check out the agent-native data formats for structured supplier data.