docs: bring docforge docstrings and wiki to GSDFC standard
- fix GSDFC spec contradictions in __init__ docstring (parenthesized types, fenced-block rule) and sync generated README - rewrite docstrings across loaders, models, nav, servers, renderers, cli; sync .pyi stubs - add pydoclint (google style) gate to dev extras and pyproject config - fix mcp nav resources doc:// -> docs:// - refresh docs/lib and docs/mcp, drop stale docforge/ duplicate group - update wiki pages and add GSDFC + MCP guides under 05_development
This commit is contained in:
51
docs/wiki/05_development/04_mcp_guide.md
Normal file
51
docs/wiki/05_development/04_mcp_guide.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
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.
|
||||
Reference in New Issue
Block a user