mrkeyoor.com_
Sun 01 Nov 09:08 UTC
AI Toolsevaluationupdated 31 Oct 2026

fastapi_mcp review

Consider FastAPI-MCP if you want to expose an existing FastAPI application through MCP and can validate the generated interface before deployment. FastAPI-MCP exposes FastAPI endpoints as Model Context Protocol tools. Our run on September 28, 2026, at commit e5cad13 installed and built successfully, but the test command failed; it did not establish a working client-to-tool deployment.

-3stars / 7d
Verdict

Trial FastAPI-MCP when an existing FastAPI application gives you useful routes and dependencies to reuse. Our dated sandbox run supports installation and build success, but not deployment readiness. Make generated-tool inspection, client round trips and explicit authorization checks conditions of adoption. Choose FastMCP or the MCP Python SDK when you want to implement the MCP interface directly.

We ran it

Lab card: what happened when we ran fastapi_mcpScreenshot of fastapi_mcp (fastapi-mcp.tadata.com)
Install✓ · 32s70 packages · 71 MB
Build✓ · 6s
Tests✗ · 55s12 passed · 32 failed · 22 errors of 66 (pytest)
Known vulns0(pip-audit)
Repo84 files~6,154 lines of source · 0.6 MB · 2 CI workflows · tests dir

Answers from our run

Does fastapi_mcp build from source?

Dependencies installed in 32 seconds (70 packages), and the build succeeded in 6 seconds. We cloned commit e5cad13 into a clean Debian container with 3 CPUs and no project-specific setup.

Do fastapi_mcp's tests pass?

No. The project's own test command finished in 55 seconds and reported 12 passed, 32 failed, 22 collection errors (pytest).

Does fastapi_mcp have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use fastapi_mcp?

Teams that need this review to demonstrate a successful deployed MCP workload.

What are the alternatives to fastapi_mcp?

FastMCP, MCP Python SDK. Trial FastAPI-MCP when an existing FastAPI application gives you useful routes and dependencies to reuse.

Setup3/5Partial success under the visible rubric: installation took 32 seconds and build took 6 seconds, but the test command failed and deployment was not established.
Docs4/5The supplied sources explain installation, deployment, authentication and transport choices in useful detail; the README mounting example must be read alongside the v0.4.0 deprecation guidance.
CommunityN/AThe supplied extracts show contribution instructions and a community invitation, but no verified participation, response-time or contributor evidence.
Maturity2/5Substantial validation obstacles remain: the recorded test command failed across constructor, conversion, async execution and transport cases, without establishing a working deployment.

Discussed on

  1. hnShow HN: FastAPI-MCP to expose FastAPI endpoints as MCP tools7 points
  2. hnShow HN: Open-source project to convert FastAPIs to MCP servers7 points

Who it’s for

Teams extending an existing FastAPI application with an MCP interface.
Developers who want to reuse FastAPI dependencies and endpoint documentation.
Operators able to test authentication, generated schemas and transport behavior with their intended client.

Who it’s NOT for

Teams that need this review to demonstrate a successful deployed MCP workload.
Services whose owners cannot inspect generated tools and verify access control.
Projects choosing an MCP framework without an existing FastAPI application to reuse.

Setup reality

Our run on September 28, 2026, tested commit e5cad13 in our Python 3.12 Debian Bookworm sandbox with 3 CPUs and 8 GB RAM. Installation returned exit code 0 after 32 seconds, and the build returned exit code 0 after 6 seconds. The test command returned exit code 1 after 55 seconds. The recorded dependency footprint was 70 packages and 71 MB.

The attached stored parser summaries report 12 passed, 32 failed, 22 errors and 0 skipped, with a recorded total of 66. These summaries do not establish exhaustive unique test coverage. We did not perform a new execution or reconcile the complete log.

The raw tail includes constructor and schema-attribute errors, unsupported async test execution, SSE mock failures and a real SSE transport startup error. It also reports 58.28% coverage against an 80% requirement. These observations describe the recorded environment; they do not isolate a single cause.

Pip-audit recorded 0 advisories. Scan coverage is unknown because the record does not supply scannedPackages; the packages field of 0 does not establish how many dependencies were checked. This was not a security review.

Should you use it for an existing FastAPI app?

FastAPI-MCP is worth a controlled trial when reusing an existing API matters more than designing a separate MCP interface. The project's README describes reuse of request and response schemas, endpoint documentation and FastAPI dependencies. It also describes direct ASGI communication and deployment beside the API or separately. Those are documented capabilities, not successful deployment results from our sandbox.

For background on the underlying framework, see our FastAPI guide. This review addresses the adapter and its recorded execution, rather than choosing the web framework.

What our sandbox established

Our run on September 28, 2026, tested commit e5cad13. Installation returned exit code 0 after 32 seconds, and the build returned exit code 0 after 6 seconds. The test command returned exit code 1 after 55 seconds.

The harness records each command's outcome, exit code, elapsed time and timeout status, then stores parsed test counts separately. Here, installation and build succeeded, tests failed, and none of those steps timed out. A zero exit code for installation or build does not demonstrate that an MCP client initialized, listed tools or completed an authenticated tool call.

The attached stored parser summaries report 12 passed, 32 failed, 22 errors and 0 skipped, with a recorded total of 66. These are recorded parser summaries, not verified exhaustive counts of unique tests. No new execution or complete-log reconciliation was performed.

The raw failure tail adds detail that the aggregate cannot explain:

The raw output also reports 58.28% coverage against an 80% requirement. Its pytest footer reports 47.41 seconds, while the harness records 55 seconds for the test command. These are separately recorded timings; neither replaces the other.

The evidence does not establish whether dependency compatibility, test configuration, sandbox behavior or several causes produced these failures. It also does not establish a successful production deployment, runtime throughput or a completed OAuth flow. The testing methodology explains the publisher's recording approach and its limits. That current page is provenance context, not evidence that this older run used today's procedure.

Authentication needs an explicit decision

Rejecting requests without an authorization header requires an optional dependency in the documented configuration. The pinned authentication guide distinguishes forwarding an Authorization header from configuring the MCP server to reject requests that lack one.

For a protected service, inspect the dependency that makes the authorization decision and test both permitted and anonymous requests. The documentation also describes OAuth configuration, provider metadata and callback setup. Our run did not validate that flow, so those instructions should be treated as setup documentation rather than a result we reproduced.

The supplied extracts do not independently verify the issue reports cited by the previous page. This correction therefore does not use those reports to assert anonymous access, recursive-schema crashes or compatibility with a particular MCP SDK generation.

Use the release's transport guidance

The v0.4.0 release recommends Streamable HTTP, retains SSE for backward compatibility and deprecates the generic mounting method in favor of the transport-specific methods. The README's minimal example still uses the generic method, so consult the release guidance when configuring this version.

Before deployment, inspect the generated tool catalog, initialize the intended client, list its tools and call a permitted route. Then verify that an unauthorized request is rejected. Repeat those checks with the dependency versions and transport you intend to deploy. These are recommended acceptance checks, not additional tests performed for this review.

When to choose a different MCP implementation

FastMCP wraps Python functions as MCP tools, resources and prompts. Choose it as an alternative when you want to write the MCP interface directly instead of deriving it from an existing FastAPI application. Its supplied README also describes clients and interactive apps; this review did not test those capabilities.

The MCP Python SDK supports building MCP servers and clients. Choose it when you want to implement those protocol roles using the project's Python SDK. Its supplied README documents stdio, Streamable HTTP and SSE. That does not establish compatibility between its current version and this FastAPI-MCP checkout.

These are alternatives for implementing the MCP interface. Neither replaces the business logic in your existing FastAPI application, and this evidence does not establish that either must be installed alongside FastAPI-MCP.

How to read the editorial scores

The assessed scores use this rubric: 1 means the supplied evidence shows a basic requirement blocked; 2 means substantial obstacles remain; 3 means partial success with material validation still needed; 4 means the examined area is documented in useful detail; 5 requires broader corroboration than these extracts provide. Scores describe the evidence examined here, not adoption, security or universal compatibility. An unassessed dimension has no numerical rating.

Setup earns 3 because installation and build succeeded while tests failed. Documentation earns 4 for the supplied installation, deployment, authentication and transport guidance, although the mounting example needs to be read alongside the release notes. Maturity earns 2 because this checkout's test command failed across several named areas and did not establish a working deployment. Community remains unassessed: contribution instructions and a community invitation do not establish participation or maintainer responsiveness.

Alternatives

ProjectWhat it isPick it when
FastMCP gh↗A framework whose servers wrap Python functions as MCP tools, resources and prompts.Choose it when you want to define the MCP interface directly rather than derive it from existing FastAPI routes.
MCP Python SDK gh↗The Python implementation of MCP for building servers and clients.Choose it when you want to implement MCP server or client behavior using the protocol project's Python SDK.

Sources

  1. FastAPI-MCP README
  2. FastAPI-MCP authentication guide
  3. FastAPI-MCP v0.4.0 release
  4. Issue 323: MCP Python SDK v2 support
  5. Issue 324: unauthenticated HTTP access report
  6. Issue 319: request body conversion
  7. Issue 287: recursive schema crash

More ai tools reviews

anarlog · pr-agent · agent-sprite-forge · KiroCrew · Orkas · hypit · the whole board →