Parallel MCP agent
Connect a Claude agent to Parallel's streamable-http MCP server for web_search and web_fetch tools, with an optional PARALLEL_API_KEY to raise the keyless rate limit.
Using the Parallel MCP server to create an Agent that can search the web using Parallel's AI-optimized search capabilities.
The API key is optional. Keyless access is rate-limited; setting a key raises the ceiling.
import asyncio
from datetime import timedelta
from os import getenv
from agno.agent import Agent
from agno.models.anthropic import Claude
from agno.tools.mcp import MCPTools
from agno.tools.mcp.params import StreamableHTTPClientParams
async def run_agent(message: str) -> None:
headers: dict[str, str] = {}
api_key = getenv("PARALLEL_API_KEY")
if api_key:
headers["Authorization"] = f"Bearer {api_key}"
server_params = StreamableHTTPClientParams(
url="https://search.parallel.ai/mcp",
headers=headers,
timeout=timedelta(seconds=300),
)
async with MCPTools(
transport="streamable-http",
server_params=server_params,
include_tools=["web_search", "web_fetch"],
timeout_seconds=300,
) as parallel_mcp_server:
agent = Agent(
model=Claude(id="claude-sonnet-4-5"),
tools=[parallel_mcp_server],
markdown=True,
)
await agent.aprint_response(message, stream=True)
if __name__ == "__main__":
asyncio.run(run_agent("What is the weather in Tokyo?"))Prerequisites
uv pip install "agno[mcp]" anthropicexport ANTHROPIC_API_KEY=***
# Optional. Keyless access is rate-limited.
export PARALLEL_API_KEY=***Developer Resources
Save the example as parallel_agent.py and run python parallel_agent.py after configuring the prerequisites.