| name | fastmcp-integration |
| description | Examples and patterns for integrating FastMCP Cloud servers with Claude Agent SDK using HTTP transport |
FastMCP Cloud Integration Skill
This skill provides examples and troubleshooting for FastMCP Cloud integration.
Critical Pattern: Use HTTP Transport
FastMCP Cloud uses HTTP, NOT SSE!
✅ Correct Configuration
Example: Basic FastMCP Cloud Integration
import os
import asyncio
from dotenv import load_dotenv
from claude_agent_sdk import query
from claude_agent_sdk.types import ClaudeAgentOptions
load_dotenv()
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY")
FASTMCP_CLOUD_API_KEY = os.getenv("FASTMCP_CLOUD_API_KEY")
async def main():
async for message in query(
prompt="List available tools from the MCP server",
options=ClaudeAgentOptions(
model="claude-sonnet-4-20250514",
mcp_servers={
"your-server": {
"type": "http",
"url": "https://your-server.fastmcp.app/mcp",
"headers": {
"Authorization": f"Bearer {FASTMCP_CLOUD_API_KEY}"
}
}
},
allowed_tools=["mcp__your-server__*"],
env={
"ANTHROPIC_API_KEY": ANTHROPIC_API_KEY,
"FASTMCP_CLOUD_API_KEY": FASTMCP_CLOUD_API_KEY
}
)
):
if hasattr(message, 'type') and message.type == 'text':
print(message.text)
if __name__ == "__main__":
asyncio.run(main())
Example: Multiple FastMCP Cloud Servers
mcp_servers={
"cats": {
"type": "http",
"url": "https://catsmcp.fastmcp.app/mcp",
"headers": {"Authorization": f"Bearer {FASTMCP_CLOUD_API_KEY}"}
},
"github": {
"type": "http",
"url": "https://github-mcp.fastmcp.app/mcp",
"headers": {"Authorization": f"Bearer {FASTMCP_CLOUD_API_KEY}"}
}
}
allowed_tools=[
"mcp__cats__*",
"mcp__github__*",
]
Example: Checking MCP Connection Status
async for message in query(...):
if hasattr(message, 'type') and message.type == 'system':
if hasattr(message, 'data') and 'mcp_servers' in message.data:
for server in message.data['mcp_servers']:
status = server.get('status', 'unknown')
name = server.get('name', 'unknown')
print(f"✅ MCP Server '{name}': {status}")
if status == 'failed':
print("❌ Connection failed!")
print(" Check: 1) Using 'type': 'http'")
print(" Check: 2) FASTMCP_CLOUD_API_KEY is valid")
print(" Check: 3) URL is correct")
❌ Common Mistakes
Wrong transport type:
"type": "sse"
Missing API key:
env={"ANTHROPIC_API_KEY": ANTHROPIC_API_KEY}
Wrong package:
from anthropic_agent_sdk import query
from claude_agent_sdk import query
Troubleshooting
Symptom: 'mcp_servers': [{'name': 'cats', 'status': 'failed'}]
Causes:
- Using
"type": "sse" instead of "type": "http"
- Missing or invalid
FASTMCP_CLOUD_API_KEY
- Wrong URL format
Fix:
- Change to
"type": "http"
- Verify API key is correct and passed in
env parameter
- Ensure URL is
https://your-server.fastmcp.app/mcp (with /mcp endpoint)
Symptom: ImportError: No module named 'anthropic_agent_sdk'
Cause: Wrong package name
Fix:
pip uninstall anthropic-agent-sdk
pip install claude-agent-sdk
Complete Example
See examples/python/fastmcp-cloud-http.py for a full working example.
Environment Variables
Required in .env:
ANTHROPIC_API_KEY=sk-ant-api03-...
FASTMCP_CLOUD_API_KEY=fmcp_...
Must be passed via env parameter:
env={
"ANTHROPIC_API_KEY": os.getenv("ANTHROPIC_API_KEY"),
"FASTMCP_CLOUD_API_KEY": os.getenv("FASTMCP_CLOUD_API_KEY")
}
What The Output Actually Looks Like
Example: Successful Connection
When you run your agent, you'll see system messages like this:
SystemMessage(
subtype='init',
data={
'type': 'system',
'session_id': 'c8feee3e-bb62-4dcc-92bc-042b507e614a',
'mcp_servers': [{'name': 'cats', 'status': 'connected'}],
'tools': ['mcp__cats__search_candidates', 'mcp__cats__get_candidate', ...],
'model': 'claude-sonnet-4-20250514',
...
}
)
What this means:
'status': 'connected' ✅ - Your HTTP configuration worked!
'tools': [...] - All 163 CATS tools are now available
- Agent can now use
mcp__cats__search_candidates, etc.
Example: Failed Connection
If you use wrong transport type, you'll see:
SystemMessage(
data={
'mcp_servers': [{'name': 'cats', 'status': 'failed'}],
'tools': ['Task', 'Bash', 'Read', ...],
...
}
)
What this means:
'status': 'failed' ❌ - Connection didn't work
- No
mcp__cats__* tools available
- Common cause: Using
"type": "sse" instead of "type": "http"
Example: Tool Call
When Claude uses an MCP tool:
AssistantMessage(
content=[
ToolUseBlock(
id='toolu_01HhvXi5wyvVa2DWtbP8KvJw',
name='mcp__cats__search_candidates',
input={'search_string': 'heavy duty mechanic'}
)
]
)
UserMessage(
content=[
ToolResultBlock(
tool_use_id='toolu_01HhvXi5wyvVa2DWtbP8KvJw',
content='{"count":2,"total":3540,"_embedded":{"candidates":[...]}}'
)
]
)
AssistantMessage(
content=[
TextBlock(
text="I found 3,540 heavy duty mechanic candidates. Here are the first 2..."
)
]
)
Real Output From Working Demo
================================================================================
CATS Multi-Tool Agent Demo - Claude Agent SDK
================================================================================
🔌 MCP Server Status:
--------------------------------------------------------------------------------
✅ cats: CONNECTED
📦 Available CATS Tools: 163
- search_candidates
- get_candidate
- list_candidate_custom_fields
- list_candidate_attachments
- parse_resume
... and 158 more
💬 Claude:
--------------------------------------------------------------------------------
I'll search for heavy duty mechanics using the CATS database...
💬 Claude:
--------------------------------------------------------------------------------
I found 3,540 heavy duty mechanic candidates in the system. Here are the
first 2 results with their Red Seal certification status:
1. **Sahlan Samsuddin**
- Email: sahlansamsuddin11@gmail.com
- Location: Mimika, Papua
- Red Seal Status: Not found in "Notes on Qualifications" field
- Tags: None
2. **[Next candidate]**
...
Additional Examples
See the examples/ directory in this skill:
examples/multi-server.py - Connecting to multiple FastMCP Cloud servers
examples/connection-status.py - Testing and troubleshooting connections
@plugins/claude-agent-sdk/examples/python/complete-example-with-output.py - Full example with output
Related Resources
- Basic example:
@plugins/claude-agent-sdk/examples/python/basic-query.py
- FastMCP Cloud example:
@plugins/claude-agent-sdk/examples/python/fastmcp-cloud-http.py
- Examples README:
@plugins/claude-agent-sdk/examples/README.md
- Agent SDK Docs:
@plugins/claude-agent-sdk/docs/sdk-documentation.md
- FastMCP Cloud: https://fastmcp.com
- MCP Protocol: https://modelcontextprotocol.io