On this page and tools
Agents
Docs MCP server
Search and read these docs from inside an AI tool, over the Model Context Protocol. It is read-only, needs no key and only ever returns what is already public on this site.
Connect
The server speaks MCP over plain HTTP: send JSON-RPC messages with POST to
https://bynefit.com/docs?format=mcp. Any client that accepts a remote HTTP MCP server can use that address.
Claude Code
claude mcp add --transport http bynefit-docs "https://bynefit.com/docs?format=mcp"
Cursor, and a .mcp.json file
{
"mcpServers": {
"bynefit-docs": {
"type": "http",
"url": "https://bynefit.com/docs?format=mcp"
}
}
}
VS Code (mcp.json)
{
"servers": {
"bynefit-docs": {
"type": "http",
"url": "https://bynefit.com/docs?format=mcp"
}
}
}
Claude Desktop: add a custom connector in Settings and paste https://bynefit.com/docs?format=mcp as its address.
For any other tool, the address and the transport (plain HTTP, not stdio) are what matter.
What it offers
| Tool | What it does |
|---|---|
search_docs | Search the public Bynefit developer docs. Returns matching pages with a heading and a snippet. |
get_page | Return one docs page as Markdown, by its slug from list_pages or search_docs. |
list_pages | List every public docs page with its slug, title, group and one-line summary. |
list_capabilities | List each capability with its honest state (available, by approval or planned). Check this before relying on a feature. |
Ask list_capabilities before relying on a feature: it reports each one as available, by approval or planned,
the same as the state chips on these pages.
Try it by hand
curl "https://bynefit.com/docs?format=mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_docs","arguments":{"query":"webhook signature"}}}'const res = await fetch('https://bynefit.com/docs?format=mcp', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'tools/call',
params: { name: 'search_docs', arguments: { query: 'webhook signature' } },
}),
});
const { result } = await res.json();
console.log(result.content[0].text);import requests
reply = requests.post('https://bynefit.com/docs?format=mcp', json={
'jsonrpc': '2.0',
'id': 1,
'method': 'tools/call',
'params': {'name': 'search_docs', 'arguments': {'query': 'webhook signature'}},
}).json()
print(reply['result']['content'][0]['text'])A search reply looks like this (shortened). The text of each tool result is JSON, so an agent reads it with one more parse:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [{ "type": "text", "text": "{ \"results\": [{ \"slug\": \"webhooks\", \"title\": \"Webhooks\", \"url\": \"...\", \"snippet\": \"...\" }] }" }],
"isError": false
}
}
Limits
- Read-only. No tool changes anything, and there is nothing to sign in to.
- About 120 requests a minute from one address (IPv6 addresses count by their /64), a batch of up to 5 messages counts as that many, and a request body is up to 64 KB. Over the limit you get HTTP 429 with
Retry-After. - Tools only. There are no MCP resources or prompts yet, and no streaming: every answer is one JSON reply.