Skip to content

MCP Guide

Doc-forge can export a machine-readable MCP bundle from a project's GSDFC docstrings and serve that bundle over the Model Context Protocol (MCP). The bundle is self-contained: readers can derive the full API reference — signatures, docstrings, and structure — for the documented project.

Building the bundle

doc-forge build --mcp --module docforge

This writes structured JSON into docs/mcp/:

  • index.json — project metadata and module count
  • nav.json — module list with docs://modules/{module} resource URIs
  • modules/{dotted.path}.json — per-module serialized documentation

Serving the bundle

doc-forge serve --mcp --module docforge

The MCPServer (in docforge/servers/mcp_server.py) exposes:

Resource Description
docs://index Project metadata
docs://nav Navigation structure
docs://modules/{module} Individual module documentation

The server also registers a single diagnostic tool, ping, and is read-only. Missing resources are returned as structured error dictionaries rather than exceptions. The default transport is streamable-http; stdio and sse are supported via MCPServer.run.

Bundle contents

Each module resource contains:

  • path — dotted module path
  • docstring — the raw GSDFC module docstring
  • objects — a recursive mapping of public symbols with name, kind, path, signature, and docstring, plus nested members

Because the bundle is generated from docstrings, the quality of the bundle equals the quality of the project's GSDFC docstrings. For docforge itself, the GSDFC specification is carried in modules/docforge.json via the docforge/__init__.py package docstring, making the bundle self-documenting.