FastMCP docs

SkillDocs & knowledge

The docs skill lets an AI agent write or revise a page under docs/ for gofastmcp.com. It is used when adding a feature's documentation, fixing a docs issue, reworking a page, or auditing pages for accessibility and consistency. The skill covers the page shape, the voice, the checks that run in CI, and how a merged page reaches the live site.

Use FastMCP docs in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add FastMCP docs and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the FastMCP docs skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Have the docs/ directory of gofastmcp.com available in the workspace.

FastMCP docsStart free

What your AI can do with it

  • Find the owning page for a feature before writing
  • Match the structure of neighboring docs pages
  • Follow a fixed page template and voice
  • Run link and code checks before opening a PR
  • Audit pages for accessibility and consistency

Getting started

  1. Have the docs/ directory of gofastmcp.com available in the workspace.
  2. Add the docs skill to your agent's available skills.
  3. Point the agent at the feature, issue, or page to work on.
  4. Let the agent run the link and code checks before it opens a PR.

What this skill tells your AI

The instructions your AI receives, as published by prefecthq/fastmcp in .agents/skills/docs/SKILL.md and read by ahel’s review.

The docs are a Mintlify site built from docs/. A page exists only when docs/docs.json lists it, and a feature exists only when a page documents it. docs/python-sdk/** is generated from docstrings by a bot; edit the docstring, not the page.

Procedure

  1. Find the owning page before creating one. rg -l "<feature>" docs --glob '!docs/python-sdk/**' --glob '!docs/v2/**' --glob '!docs/v3/**'. Extend it when the feature belongs to that page's subject; add a page when it has its own.
  2. Read two neighboring pages in the same docs.json group and match their section order and heading depth.
  3. Write the page with the template below. Explain why the feature exists before showing how, and keep the first code block small enough to read without scrolling.
  4. Make every code block runnable: imports present, names defined, one idea per block. Pull intermediate values into named variables instead of nesting calls.
  5. Run the checks in Verify and fix what they report.
  6. When the change is ready to ship, open a PR against main. Merged is not live: the site serves published-docs. A stable release from main opens a Publish FastMCP v<version> docs PR against published-docs that a maintainer merges; for a docs-only change between releases, follow "Publishing docs by hand" in .agents/skills/release/SKILL.md. Either way, the Deploy docs run's verdict is what says the site changed.

Template

---
title: Feature Name
sidebarTitle: Feature
description: One sentence a search result can show.
icon: some-fontawesome-icon
---

import { VersionBadge } from '/snippets/version-badge.mdx'

<VersionBadge version="<version that introduces the feature>" />

One paragraph on the problem this solves and when to reach for it.

## Basic usage

Explain what the example does, then show it.

```python
from fastmcp import FastMCP

mcp = FastMCP("Demo")


@mcp.tool
def greet(name: str) -> str:
    return f"Hello, {name}!"
```

## Configuration

One subsection per option that changes behavior, each with a sentence on the default and an example of the override.

## How it works

Only when the mechanism affects what the reader should do. Put a one-sentence text description before any diagram.

Voice

Second person, present tense, plain assertions. Say what the feature does and what the reader should do; leave out marketing adjectives and reassurance. The first sentence of each section carries its point. Prose holds the important information; code comments hold none of it. Wrap bare {} in backticks, since Mintlify reads them as JSX.

Accessibility

Every <img> and ![]() gets alt text that says what the picture shows. Decorative media gets aria-hidden="true". Headings step one level at a time. Link text names the destination. Tables have a header row. Code fences carry a language. Diagrams get a text description. Custom CSS keeps text at 4.5:1 contrast and animations behind prefers-reduced-motion.

Verify

(cd docs && npx --yes mint@latest broken-links)
uv run pytest tests/docs -n 0

The first catches dead links and MDX parse errors and names the file and line. The second parses every Python block in docs/ and resolves every fastmcp import. A block that must not run takes test="skip" on its fence.

For a visual change, run npx --yes mint@latest dev in docs/ and look at the page at 1280px and 390px, light and dark.

Gotchas

  • VersionBadge marks when a feature arrived. Leave old badges alone; they are history, not staleness.
  • docs/v2/ and docs/v3/ are frozen snapshots of earlier majors. Maintenance releases add changelog entries there and nothing else.
  • The version picker label lives in docs/docs.json under navigation.versions[0].version and is bumped by hand.
  • mcp_types is the real name of the protocol types package in 4.x.

Signals

GitHub stars
28k
Forks
2k
Last commit
Oct 2026
Hacker News mentions
20

Questions

What is the docs skill for?
It guides an agent through writing or editing pages under docs/ for gofastmcp.com, including page shape, voice, CI checks, and how merged changes reach the live site.
When should I use it?
Use it when adding a feature's documentation, fixing a docs issue, reworking a page, or auditing pages for accessibility and consistency.
Does it run checks before opening a PR?
Yes. The skill runs link and code checks before opening a PR.
How do merged pages reach the live site?
The skill covers how a merged page reaches the live site.
Advanced
Item type
skill
Key
docs-prefecthq
Source
github.com/prefecthq/fastmcp