Dev & Engineering model-context-protocolpython-sdktemporalworkflow-orchestrationmcp-serveropenai-apioauth

mcp-agent

A Python framework for building MCP-connected agents with composable workflow patterns.

FollowAgents review · FARS-2.1
Not recommended
53/ 100 5-point scale 2.7 / 5
1 2 3 4 5 6
Per-dimension scores and reasoning
1Trust10 / 29 · 1.7/5

Evidence shows: framework supports restricting tool access via server_names, provides human_input_callback mechanism, config separates secrets file, dependencies include security-related libraries (e.g., opentelemetry), SECURITY.md provides vulnerability reporting channel, but no automatic rollback mechanism found, publisher identity unverified. Deductions: lack of explicit documentation on least privilege, user confirmation only as optional callback, insufficient data flow transparency, limited sensitive data handling details, no vulnerability scanning evidence for dependencies, external effects not clearly stated, rollback mechanism missing, source attribution relies only on author info.

2Reliability8 / 14 · 2.9/5

Evidence shows: codebase includes test files (e.g., test_agent.py) and CI workflow (checks.yml), dependency versions pinned, but failure message handling not fully demonstrated. Deductions: self-consistency supported by tests but not comprehensive, dependency availability has version pinning but not verified, failure messages only partially reflected.

3Adaptability12 / 18 · 3.3/5

Evidence shows: README provides multiple usage scenarios (e.g., MCP server, Temporal, Cloud), clearly lists supported patterns and features, flexible configuration, but boundaries not explicit. Deductions: audience and scenarios well described, capability boundaries explained but not detailed, trigger precision has examples but not systematic, environment fit has config examples but not comprehensive.

4Convention11 / 18 · 3.1/5

Evidence shows: README structure clear, installation instructions detailed, naming stable (e.g., mcp-agent), examples and FAQ provided, license Apache-2.0, version in pyproject.toml, SECURITY.md and contributing guide present. Deductions: known limitations not explicitly listed, version changelog not provided, maintenance responsibility has author info but not explicit.

5Effectiveness9 / 13 · 3.5/5

Evidence shows: output format has examples (e.g., generate_str), multiple workflow patterns provided, cost-benefit described (e.g., production-ready). Deductions: output usability has examples but not comprehensive, marginal value described but not quantified, cost-benefit described but no specific data.

6Verifiability3 / 8 · 1.9/5

Evidence shows: claims in README have doc links, but no independent verification. Deductions: claim traceability limited, cross-source corroboration insufficient, fact-inference separation unclear.

Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision f62d84935081
Before you use it
  • Publisher identity unverified; assess supply chain risk carefully.
  • No automatic rollback mechanism found; implement your own for production.
  • No vulnerability scanning evidence for dependencies; conduct security audit before use.
  • Known limitations not explicitly listed; may affect deployment decisions.
Review evidence [1][2][3][4][5][6][7][8][9]
See the full review method →

What does this agent do, and when should you use it?

mcp-agent is a Python framework for building agents and workflows around the Model Context Protocol (MCP). Its MCPApp runtime loads configuration, initializes logging and the execution engine, and manages MCP server connection lifecycles. Agents pair instructions with named MCP servers, while Augmented LLMs add tools, memory, and structured-output helpers to provider SDK calls. The repository includes composable patterns for parallel work, routing, orchestrator-worker systems, evaluator-optimizer loops, and Swarm handoffs, with asyncio and Temporal execution options. Applications can run as standalone Python programs or be exposed as standard MCP servers with create_mcp_server_for_app; the README also documents a Cloud deployment path.

A developer creates an MCPApp, declares MCP servers such as fetch and filesystem in mcp_agent.config.yaml, and defines an Agent with server_names. Inside async with app.run() and async with agent, the framework initializes server connections; agent.attach_llm(OpenAIAugmentedLLM) provides generate, generate_str, and generate_structured so the model can call tools from those servers. Factory helpers including create_parallel_llm, create_router_llm, create_orchestrator, and create_evaluator_optimizer_llm assemble higher-level workflows. Setting execution_engine to temporal and running create_temporal_worker_for_app enables durable workflows, while create_mcp_server_for_app exposes @app.tool functions and workflows to MCP clients.

  1. A Python backend team needs a research assistant that reads approved local files through filesystem, fetches web content through fetch, and returns a concise summary.
  2. An application team needs to route incoming requests to the most suitable AgentSpec, MCP server, or function before automation begins.
  3. A developer needs to fan out specialist tasks in parallel and combine their outputs into a single report.
  4. An operations workflow needs to pause for a human approval or missing input, then resume through a Temporal-backed run.
  5. A team wants to expose existing Python tools and workflows as an MCP server for Claude Desktop, Cursor, or a custom MCP client.

What are this agent's strengths and limitations?

Pros
  • MCPApp and Agent handle MCP server connection lifecycles directly, avoiding application-level connection management.
  • The same workflow annotations work with asyncio and Temporal; the Temporal path adds pause, resume, retries, and durable history.
  • It ships named composition helpers for Map-Reduce, routing, intent classification, orchestrator-workers, evaluator-optimizer, and Swarm patterns.
  • create_mcp_server_for_app can publish an MCPApp as a standard MCP server for MCP-capable clients.
Limitations
  • The documented workflow centers on asynchronous Python, uv, and YAML configuration; other languages or synchronous execution models require separate integration work.
  • The minimal OpenAI example requires OPENAI_API_KEY or a secrets file; other providers require their optional package extras and configuration.
  • Durable execution requires changing execution_engine to temporal and operating an additional Temporal worker.
  • Cloud deployment is labeled Beta in the README, and the supplied material does not state its pricing, quotas, or managed-runtime details.

How do you install or deploy this agent?

Install Python and uv, then create a project and run:

uvx mcp-agent init
uv init
uv add "mcp-agent[openai]"

Alternatively:

pip install mcp-agent

The OpenAI example requires an API key in mcp_agent.secrets.yaml or the OPENAI_API_KEY environment variable. The README lists optional provider extras as "mcp-agent[openai, anthropic, google, azure, bedrock]".

How do you use this agent?

Create main.py using MCPApp, Agent, and OpenAIAugmentedLLM, and give the Agent server_names=["fetch", "filesystem"]. In mcp_agent.config.yaml, configure those servers: the example uses uvx mcp-server-fetch for fetch and npx -y @modelcontextprotocol/server-filesystem plus an allowed directory for filesystem. Then run:

uv run main.py

The minimal call sequence is to create the Agent inside async with app.run(), attach the model with llm = await agent.attach_llm(OpenAIAugmentedLLM), then call await llm.generate_str("Summarize README.md in two sentences."). To scaffold a basic project, run uvx mcp-agent init --template basic --dir my-first-agent.

How does this agent compare with similar options?

Compared with using an MCP host such as Claude Desktop or Cursor alone, mcp-agent can also run as a standalone Python application and expose its own tools and workflows back to those MCP clients through create_mcp_server_for_app.

FAQ

Is it limited to OpenAI models?
No. The README lists optional extras for OpenAI, Anthropic, Google, Azure, and Bedrock, though the supplied minimal code example uses OpenAIAugmentedLLM.
What files can its filesystem tool access?
The accessible scope is determined by the directory argument configured for the filesystem MCP server; the example leaves that directory for the developer to supply.
Must I deploy to Cloud?
No. The README describes the examples as standalone applications. Cloud is an additional deployment path.
Can a workflow wait for approval?
Yes. A workflow can call request_human_input for approval or additional data; the README states that Temporal preserves state until an operator resumes the run.
What does it cost?
The supplied material does not provide pricing for mcp-agent Cloud or model providers. External model services and managed deployment may carry their own charges.

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents