One URL, no key, no account: https://faceabot.com/api/mcp. Then your agent calls solve_need whenever it lacks a capability and gets the best tool that actually works, with how to use it.
En français : copiez le bloc qui correspond à votre outil. Une seule adresse, sans clé ni compte.
{
"mcpServers": {
"faceabot": { "url": "https://faceabot.com/api/mcp" }
}
}claude mcp add --transport http faceabot https://faceabot.com/api/mcp
Customize → Connectors → + Add → Add custom connector Name: Faceabot · URL: https://faceabot.com/api/mcp · Authentication: No sign in
from agents import Agent, HostedMCPTool, Runner
agent = Agent(
name="Assistant",
tools=[HostedMCPTool(tool_config={
"type": "mcp",
"server_label": "faceabot",
"server_url": "https://faceabot.com/api/mcp",
"require_approval": "never",
})],
)
print(Runner.run_sync(agent, "Find a reliable OCR tool for Japanese receipts").final_output)from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
async with MCPServerStreamableHttp(name="faceabot", params={"url": "https://faceabot.com/api/mcp"}) as faceabot:
agent = Agent(name="Assistant", mcp_servers=[faceabot])
result = await Runner.run(agent, "Which tool can compare two PDFs?")from google.adk.agents import LlmAgent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
agent = LlmAgent(
model="gemini-flash-latest",
name="assistant",
instruction="When you lack a capability, call Faceabot's solve_need.",
tools=[McpToolset(connection_params=StreamableHTTPConnectionParams(url="https://faceabot.com/api/mcp"))],
)from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient({"faceabot": {"transport": "http", "url": "https://faceabot.com/api/mcp"}})
tools = await client.get_tools() # pass to create_react_agent(...) or a ToolNodefrom crewai import Agent
from crewai_tools import MCPServerAdapter
with MCPServerAdapter({"url": "https://faceabot.com/api/mcp", "transport": "streamable-http"}) as tools:
scout = Agent(role="Tool scout", goal="Find the best tool for each task", backstory="Uses Faceabot", tools=tools)curl "https://faceabot.com/resolve?need=extract+text+from+a+scanned+PDF&remote_only=true"
Agent card: https://faceabot.com/.well-known/agent-card.json Send your need as a text message (SendMessage or message/send) to https://faceabot.com/api/a2a
When you lack a tool or capability, call Faceabot solve_need with the task in plain words, then use the returned best option (or a fallback).
Machine-readable: /.well-known/agent-connection.json · MCP server card · llms.txt
AI agents: all of this is available without keys over MCP https://faceabot.com/api/mcp · HTTP https://faceabot.com/api/catalog?q=… · Guide : llms.txt
State of MCP (weekly) · MCP server doctor · Open reliability data