flowchart LR
C["Client / IDE\n(Claude Code, etc.)"] <--> |"MCP: tools/list + tools/call"| FA["fast-agent-mcp-proxy"]
FA <--> |"MCP upstream"| S1["Google Sheets MCP"]
FA <--> |"MCP upstream"| S2["Google Calendar MCP"]
FA <--> |"MCP upstream"| S3["Todoist MCP"]
FA <--> |"MCP upstream"| S4["...more MCP servers..."]
subgraph R["fast-agent responsibilities"]
D["discover_tools / tool_search (compact tool cards)"]
L["learn_tool (fetch 1 schema on-demand)"]
E["execute_tool (proxy tools/call)"]
P["policy: allowlist/denylist + caching + limits"]
end
FA -.-> D
FA -.-> L
FA -.-> E
FA -.-> P
Summary
toolsfiltering infastagent.config.yaml(AgentCard semantics).Phased plan
fastagent.config.yaml, per-server allowlist + glob patterns; omitted = allow all)discover/learn/executemeta-tools + on-demand schema hydration + caching in proxy modeVisuals
Source: https://www.anthropic.com/engineering/advanced-tool-use (figure: Context Usage: Traditional vs. Tool Search Tool).
flowchart LR C["Client / IDE\n(Claude Code, etc.)"] <--> |"MCP: tools/list + tools/call"| FA["fast-agent-mcp-proxy"] FA <--> |"MCP upstream"| S1["Google Sheets MCP"] FA <--> |"MCP upstream"| S2["Google Calendar MCP"] FA <--> |"MCP upstream"| S3["Todoist MCP"] FA <--> |"MCP upstream"| S4["...more MCP servers..."] subgraph R["fast-agent responsibilities"] D["discover_tools / tool_search (compact tool cards)"] L["learn_tool (fetch 1 schema on-demand)"] E["execute_tool (proxy tools/call)"] P["policy: allowlist/denylist + caching + limits"] end FA -.-> D FA -.-> L FA -.-> E FA -.-> PFull writeup
References