Skip to content
cccskills
FreePublished on GitHub

docs

Write and revise FastMCP documentation pages with consistent structure, clear explanations, and runnable code examples. Covers accessibility, link and Python checks, and the publishing steps needed to confirm changes reach the live site.

OriginalShow the original description

Write or revise a page under docs/ for gofastmcp.com. Use when adding a feature's documentation, fixing a docs issue, reworking a page, or auditing pages for accessibility and consistency. Covers the page shape, the voice, the checks that run in CI, and how a merged page reaches the live site.

See how to install

Good for

  • Documenting a new FastMCP feature
  • Reworking an existing documentation page
  • Reviewing accessibility and page consistency
  • Checking links, code examples, and publication status

Files included (1)

  • SKILL.md4.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

FastMCP docs

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.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Discover MCP servers and inspect their available tools from the command line, then invoke operations with typed arguments or JSON. Use local files, remote endpoints, or configured server names, and return structured output for scripts.

  • Finding MCP servers configured in editors or a project
  • Inspecting available tools and input definitions
  • Calling tools on local or remote MCP servers
PrefectHQ/fastmcp28.2KUpdated Oct 21, 2026

fastmcp-server

FreeSummary

Build, extend, or review Python FastMCP servers using documentation for the installed version. Design operations that agents can discover and use, then check input definitions, results, error handling, and representative agent workflows.

  • Building an MCP server with Python FastMCP
  • Adding tools, resources, or reusable prompts
  • Reviewing input definitions and error handling
PrefectHQ/fastmcp28.2KUpdated Oct 21, 2026

fix-issue

FreeSummary

Take a selected FastMCP bug from a reproducible failure to a focused fix. Check compatibility, run required validation, prepare a pull request, and follow automated checks and review feedback after publication.

  • Fixing a reproducible FastMCP bug
  • Checking compatibility before publishing a fix
  • Following checks and feedback after opening a pull request
PrefectHQ/fastmcp28.2KUpdated Oct 21, 2026

python-tests

FreeSummary

Write regression tests that catch recurring bugs in FastMCP changes using pytest. Covers reproducing failures before a fix, testing requests without a network server, and checking outgoing requests while replacing external services with test substitutes.

  • Reproducing a bug before testing its fix
  • Testing MCP behavior without a network server
  • Checking requests sent to external services
PrefectHQ/fastmcp28.2KUpdated Oct 21, 2026

release

FreeSummary

Prepare and publish FastMCP releases, from reviewing changes and crediting contributors to updating changelogs, creating release tags, checking Python package publication on PyPI, and confirming that the documentation site reflects the release.

  • Previewing changes for the next FastMCP release
  • Preparing release notes and contributor credits
  • Publishing a patch or maintenance release
PrefectHQ/fastmcp28.2KUpdated Oct 21, 2026

review-issue

FreeSummary

Evaluate an incoming FastMCP issue and its linked pull requests. Check whether the reported behavior is a supported bug, assess the proposed contribution, and recommend assigning the contributor, declining, or seeking a specific maintainer decision.

  • Deciding whether to assign an external contributor
  • Assessing a pull request closed by contribution checks
  • Checking whether reported behavior is a supported bug
PrefectHQ/fastmcp28.2KUpdated Oct 21, 2026

See all skills by PrefectHQ

Report a problem with this skill