Skip to content

AI Assistant Integration

ByteMCP works with any MCP-compatible AI assistant. This guide covers integration options.

ClientStatusNotes
Claude DesktopSupportedFull support
Continue.devSupportedVS Code extension
CursorPlannedIDE integration
ClientStatusNotes
Claude.aiSupportedVia MCP discovery
Custom AppsSupportedDirect API calls

For remote ByteMCP servers, Claude.ai can discover and use MCP tools.

ByteMCP exposes discovery at:

https://mcp.bytefederal.com/.well-known/mcp-server

Response:

{
"name": "bytefederal-bitcoin-atm",
"version": "1.0.0",
"endpoints": {
"sse": "https://mcp.bytefederal.com/sse",
"http": "https://mcp.bytefederal.com/mcp"
},
"capabilities": ["tools"],
"tools": [
"find_nearest_bitcoin_atm",
"get_atm_details",
"check_atm_status",
"list_atms_by_city"
],
"supported_transports": ["sse"],
"auth_required": false
}

Add to your website’s robots.txt:

User-agent: Claude-Web
Allow: /.well-known/
MCP-Server: https://mcp.bytefederal.com/.well-known/mcp-server

Add to your Continue config:

{
"mcpServers": [
{
"name": "bytefederal-atm",
"transport": {
"type": "stdio",
"command": "node",
"args": ["/path/to/byte-mcp/dist/index.js"],
"env": {
"DB_HOST": "localhost",
"DB_DATABASE": "bytefederal",
"DB_USER": "user",
"DB_PASSWORD": "password"
}
}
}
]
}

For custom integrations, call the HTTP endpoint directly:

async function findNearestATM(location) {
const response = await fetch('https://mcp.bytefederal.com/mcp', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'tools/call',
params: {
name: 'find_nearest_bitcoin_atm',
arguments: { location, limit: 5 }
}
})
});
return response.json();
}

For real-time updates:

const eventSource = new EventSource('https://mcp.bytefederal.com/sse');
eventSource.onmessage = (event) => {
const data = JSON.parse(event.data);
handleMCPMessage(data);
};
function sendToolCall(toolName, args) {
fetch('https://mcp.bytefederal.com/sse', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
id: Date.now(),
method: 'tools/call',
params: { name: toolName, arguments: args }
})
});
}
from langchain.tools import Tool
import requests
def find_atm(query: str) -> str:
response = requests.post(
'https://mcp.bytefederal.com/mcp',
json={
'jsonrpc': '2.0',
'id': 1,
'method': 'tools/call',
'params': {
'name': 'find_nearest_bitcoin_atm',
'arguments': {'location': query}
}
}
)
return response.json()['result']
atm_tool = Tool(
name="find_bitcoin_atm",
description="Find Bitcoin ATMs near a location",
func=find_atm
)

Convert MCP tools to OpenAI function format:

const functions = [
{
name: "find_nearest_bitcoin_atm",
description: "Find Bitcoin ATMs near a location",
parameters: {
type: "object",
properties: {
location: {
type: "string",
description: "Address, city/state, or ZIP code"
},
limit: {
type: "number",
description: "Maximum results (1-50)"
}
},
required: ["location"]
}
}
];
// Bridge function calls to ByteMCP
async function handleFunctionCall(name, args) {
return fetch('https://mcp.bytefederal.com/mcp', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'tools/call',
params: { name, arguments: args }
})
}).then(r => r.json());
}

ByteMCP currently operates without authentication for public ATM data. For restricted deployments:

  1. Add API key middleware
  2. Use OAuth for user-specific queries
  3. Implement rate limiting per client

Remote ByteMCP allows:

  • *.anthropic.com
  • *.claude.ai
  • bytefederal.com

Add your domain in remoteServer.ts for custom integrations.