Skip to content

docs: restructure documentation with quickstart, concepts, and new nav#2008

Open
Kludex wants to merge 8 commits intomainfrom
docs/foundation-quickstart-concepts
Open

docs: restructure documentation with quickstart, concepts, and new nav#2008
Kludex wants to merge 8 commits intomainfrom
docs/foundation-quickstart-concepts

Conversation

@Kludex
Copy link
Member

@Kludex Kludex commented Feb 7, 2026

Summary

This PR sets up the documentation foundation for migrating content from README.v2.md into proper docs pages served by mkdocs. This is the first in a series of PRs that will populate the documentation site with full content.

  • Rewrites docs/index.md as a concise landing page with a card grid linking to the main sections (Server, Client, Authorization, Testing)
  • Adds docs/quickstart.md — a complete getting-started guide with server creation, running, and connecting via Claude Code or MCP Inspector
  • Fills docs/concepts.md — protocol architecture overview covering the three primitives (Resources, Tools, Prompts), transports, context, and server lifecycle
  • Restructures mkdocs.yml nav — organizes documentation into Server (12 pages), Client (3 pages), and top-level sections (Authorization, Testing, Migration Guide, Experimental)
  • Creates docs/server/ and docs/client/ directories with placeholder pages for upcoming content PRs
  • Moves docs/low-level-server.md to docs/server/low-level.md

Subsequent PRs will fill the placeholder pages:

  • Server primitives (overview, resources, tools, prompts)
  • Server features (context, completions, elicitation, sampling, logging)
  • Server deployment (running, pagination, low-level)
  • Client docs (writing clients, display utilities, parsing results)
  • Authorization

Test plan

  • mkdocs build succeeds with no new warnings
  • All pre-commit hooks pass (markdownlint, prettier)
  • Verify the docs site renders correctly with mkdocs serve

Set up the foundation for migrating documentation from README.v2.md
into proper docs pages served by mkdocs.

- Rewrite `docs/index.md` as a concise landing page with card grid
- Add `docs/quickstart.md` with a complete getting-started guide
- Fill `docs/concepts.md` with protocol architecture, primitives,
  transports, context, and lifecycle overview
- Restructure `mkdocs.yml` nav into Server, Client, and top-level
  sections
- Create `docs/server/` and `docs/client/` directories with
  placeholder pages for upcoming content
- Move `docs/low-level-server.md` to `docs/server/low-level.md`
Remove all empty "Under Construction" placeholder pages for server/
and client/ directories. Only pages with actual content should exist.

- Remove docs/server/ and docs/client/ placeholder pages
- Strip mkdocs.yml nav to only pages with real content
- Remove broken links from concepts.md and quickstart.md (replaced
  with TODO comments for when those pages are created)
- Simplify index.md by removing card grid linking to non-existent pages
@claude
Copy link

claude bot commented Feb 7, 2026

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

- Add docs/quickstart.md and docs/concepts.md to pytest-examples so
  all code blocks in documentation are linted by ruff
- Fix f-string in concepts.md Prompts example that contained backticks
  causing a syntax error when parsed standalone
Every Python code block in docs pages is now both linted and executed
by pytest-examples.

- Make all concepts.md examples self-contained with proper imports
- Add test_docs_examples_run that executes every doc code block
- Use __name__ override to prevent `if __name__ == "__main__"` blocks
  from starting servers during tests
- Support skip-run/skip-lint prefix tags for future use
- Drop snippet-source from quickstart.md so the example is
  self-contained
MCPServer handles serialization, so resources can return dicts
directly instead of calling json.dumps manually.
Consolidate the separate README.v2.md and docs/ pytest-examples tests
into a single unified test using `find_examples("README.v2.md", "docs/")`.

Add skip tags to pre-existing code blocks that aren't self-contained:
- migration.md: all blocks (before/after migration patterns)
- experimental/*.md: all blocks (experimental API patterns)
- testing.md: test blocks (reference local server module)
- README.v2.md: 4 context-dependent snippets
Ensure every heading is followed by a paragraph before any code block,
list, table, or other content. Also add this as a documentation guideline
in CLAUDE.md.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant