Published 2026-09-21 · Tested 2026-08-20

FastMCP

A

FastMCP received 11 PASS votes and passed 5 of five agent surface checks. The clearest finding came from the recover from a tool error task.

Panel: GPT 5.6 Sol, Opus 5, DeepSeek v4F Battery: v1 Read as markdown (opens in a new tab)

Three AI models, GPT 5.6 Sol, Claude Opus 5, and DeepSeek v4 Flash, each read FastMCP’s public documentation independently and attempted five first-hour developer jobs: build and call the first MCP server, find the exact list limits, recover from a tool error, authenticate a remote MCP server, use the FastMCP client.

No accounts, API calls, or code execution were used. Every verdict came from public pages and every published quotation passed a live verification check. Preflight substitutions: T3: MCP ToolError recovery replaces HTTP 429. T4: OAuth or bearer-token authentication replaces webhooks.

Freshness

How rechecks work
Tested
Quotes verified
Surface rechecked

No change since the test.

5 of 5 quoted passages still appear on the live pages.

FastMCP Mintlify · published
A

95.0% · 76/80 · AI Agent Readiness Score · reading 30 pts · surface 50 pts

llms.txt PASS
llms-full.txt PASS
markdown mirror PASS
MCP server PASS
docs AI PASS
Task GPT 5.6 SolOpus 5DeepSeek v4F Consensus
Build and call the first MCP server PASSPASSPASS PASS
Find the exact list limits PASSPASSPASS PASS
Recover from a tool error PARTIALPARTIALPASS PARTIAL
Authenticate a remote MCP server PARTIALPASSPASS PASS
Use the FastMCP client PARTIALPASSPASS PASS

docs platform: Mintlify (unscored) · verified 2026-08-20

What to fix first

This fix could add up to 2 points to the AI Agent Readiness Score. The list ranks each fix by the points it would add. How the ranking works

  1. 1
    +2 points Recover from a tool error PARTIAL

    Found: The client tools page covers ToolError and is_error handling but shows no corrective retry after a tool error.

    Fix: Add a retry rule and example to the client tools page for both ToolError and is_error results.

    Evidence: gofastmcp.com/clients/tools (opens in a new tab)

What the docs get right

  • Build and call the first MCP server: 3 PASS votes. The pages give one complete pip-to-HTTP path, including tool registration, server startup, endpoint, and client call.
  • Find the exact list limits: 3 PASS votes. The page states the all-items default, positive page size, four covered operations, opaque cursors, and None termination.
  • 5 of 5 agent surface checks. Present: llms.txt, llms-full.txt, markdown mirrors, an MCP server, docs AI.

Build and call the first MCP server

PASS

PASS consensus from 3 PASS.

The pages give one complete pip-to-HTTP path, including tool registration, server startup, endpoint, and client call. The quickstart gives one continuous path from uv add fastmcp through @mcp.tool, mcp.run(transport="http", port=8000), and a client at http://localhost:8000/mcp, with the CLI alternative and the __main__ caveat both stated explicitly. Quickstart provides an end-to-end path: install, create server with @mcp.tool, run with HTTP transport, connect via Client, call tool with call_tool(), all in a single page with working code.

Find the exact list limits

PASS

PASS consensus from 3 PASS.

The page states the all-items default, positive page size, four covered operations, opaque cursors, and None termination. All four asked-for facts are exact on one page: the default is no pagination, list_page_size must be a positive integer with no documented ceiling, four list operations are named, and termination is next_cursor being None; the server reference page states the same default identically. Default behavior (no pagination), page-size constraint (list_page_size must be positive integer), covered operations (tools/list, resources/list, resources/templates/list, prompts/list), and cursor termination (next_cursor is None at end) are all clearly documented.

Recover from a tool error

PARTIAL

PARTIAL consensus from 1 PASS, 2 PARTIAL.

The page documents ToolError and is_error handling, but it gives no corrective retry rule or example. Both handling modes are documented side by side with runnable code, but no page shows a corrective retry after a ToolError; the only retry documented is server-side RetryMiddleware, which is scoped to transient exceptions such as ConnectionError and TimeoutError and lives on a different page. Both handling modes are documented with code examples: catch ToolError via try/except from fastmcp.exceptions, or disable automatic raising with raise_on_error=False and check result.is_error. Server-side documentation also covers ToolError and standard Python exception raising.

Authenticate a remote MCP server

PASS

PASS consensus from 2 PASS, 1 PARTIAL.

The bearer route works, but token discovery is absent and the JWT-only definition contradicts the documented opaque static-token path. Both ends close: the server side gives a concrete verifier per scenario (JWTVerifier, IntrospectionTokenVerifier, StaticTokenVerifier) and the client side documents nine numbered OAuth flow steps plus bearer-string auth, and the token-verification page states plainly where discovery does not apply. Server authentication covers bearer token (JWTVerifier, IntrospectionTokenVerifier) and OAuth (OAuthProxy, RemoteAuthProvider, OAuthProvider). Client authentication covers OAuth with automatic discovery and token lifecycle, bearer token with simple string or BearerAuth helper, and custom headers for non-standard schemes.

Use the FastMCP client

PASS

PASS consensus from 2 PASS, 1 PARTIAL.

The quickstart gives a working greet call, but the client page calls example_tool without registering it on its in-memory server. One example covers connect, list_tools(), list_resources(), list_prompts(), and call_tool(), and the @mcp.tool server it pairs with matches the decorator form used throughout the server documentation. Quickstart provides a working client example that creates a Client, connects with async with, and calls a tool via call_tool(). Client page documents list_tools, list_resources, list_prompts, and call_tool in detail. The example matches the server created in the same guide.

The receipt

To handle errors manually instead of catching exceptions, disable automatic error raising:

The page documents ToolError and is_error handling, but it gives no corrective retry rule or example.

Agent surface notes

Initialize returned a valid MCP response with FastMCP server information.

The live docs expose a public assistant input.

Show the score

AI Agent Readiness Score 95.0%, grade A

Paste this into a readme:

[![AI Agent Readiness Score 95.0%](https://docsforagents.com/badge/fastmcp.svg)](https://docsforagents.com/reports/fastmcp-docs-ai-agent-readiness/)

Method note

This is a reading test of public documentation, not an execution test. No accounts were created and no API calls were run. The AI Agent Readiness Score counts fifteen reading votes at PASS 2, PARTIAL 1, and FAIL 0, for 30 possible points. Five agent surface checks add 10 points each. The total is 80. Consensus chips show each row majority and do not affect scoring. The panel split on 3 of five tasks. Quotes shown here were re-fetched and confirmed verbatim on 2026-08-20.

Read the full methodology

Put another docs site through the battery.

Nominate a docs site