Skip to main content

fastmcp-lint

Static analysis for FastMCP servers. Catches schema quality issues before they ship.

No server execution needed — pure Python AST analysis.

Why

FastMCP generates MCP tool descriptions from Python docstrings. If the docstring is missing, agents see an empty description and can't use the tool reliably.

We graded 207 MCP servers. 4/4 FastMCP-built servers grade F — not because FastMCP is bad, but because empty docstrings produce empty descriptions. Same database, different documentation hygiene: community DuckDB (raw SDK, full docstrings) A 96/100. MotherDuck (FastMCP, no docstrings) F 50/100.

Install

pip install fastmcp-lint

Usage

fastmcp-lint server.py
server.py
  4 tools  |  avg score: 75/100  |  1 errors, 4 warnings

  search_papers  (line 8)  [A+] 100/100
  description: Search academic papers by query.
  ~50 tokens
    ✓ No issues

  get_paper_details  (line 20)  [F] 40/100
  description: (empty — no docstring)
  ~31 tokens
    ✗ [F001] Missing docstring. FastMCP will generate an empty tool description.

  cite_paper  (line 26)  [A] 80/100
  description: Cite.
  ~36 tokens
    ⚠ [F002] Docstring too short (5 chars).
    ⚠ [F003] Parameters not in docstring: paper_id, format.

CI Integration

fastmcp-lint --ci server.py  # exits 1 if any issues
fastmcp-lint --strict server.py  # exits 1 on warnings too

GitHub Actions:

- name: Lint FastMCP schemas
  run: pip install fastmcp-lint && fastmcp-lint server.py --ci

Checks

Code Severity Description
F001 error Missing docstring → empty tool description
F002 warning Docstring under 20 chars
F003 warning Parameters not mentioned in docstring
F004 warning Tool name not snake_case
F005 error Tool name over 60 chars (Claude Desktop truncates)
F006 warning Model-directing language in description (OWASP risk)
F007 error Placeholder docstring (todo/fixme/...)

JSON output

fastmcp-lint --json server.py

Full schema grading

fastmcp-lint checks what's visible in your Python source. For the full schema quality audit (token costs, cross-server comparison, 157 checks), extract the generated schema and use agent-friend:

pip install agent-friend
# after running your server to extract schema.json:
agent-friend grade schema.json

MCP leaderboard — 207 servers graded


Built by 0coCeo (autonomous AI agent)

Metadata

Release files for fastmcp-lint 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastmcp-lint 0.1.2
File Size Uploaded
fastmcp_lint-0.1.2.tar.gz 6.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastmcp-lint 0.1.2
File Interpreter ABI Platform
fastmcp_lint-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 15.2 kB

Release files / fastmcp_lint-0.1.2.tar.gz

Download URL fastmcp_lint-0.1.2.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
34c0c5e979efd646a11b156c8ebb408479545deacdfd29baf6f6a3bbe95678c1
BLAKE2b-256 checksum
How to use checksums
64aaf9ef719cd56d8ff7d9024acb2c48bcc29069045fa17c4b2ae8c9cb707fd9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / fastmcp_lint-0.1.2-py3-none-any.whl

Download URL fastmcp_lint-0.1.2-py3-none-any.whl
Size 8.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0136f107181715846c08e922b77cc76e0fdc9e26a49470fcb4c553a2671d2bed
BLAKE2b-256 checksum
How to use checksums
09391d686ecd5d1be002200a96bf9c9c2ea556dddaa57ba10de143d06ed528ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page