Skip to main content

MCP server providing structured access to Reflex documentation

Project description

Reflex Docs MCP Server

Version 0.2.0 — 14 tools, connection pooling, FTS5 query upgrades, TTL caching

New in 0.2.0

New Tools

  • get_code_examples(topic) — Find Python code examples from docs for a topic
  • decode_error(error_text) — Analyze a Reflex error and find relevant docs
  • get_changelog(version?) — Fetch Reflex release notes from GitHub
  • get_migration_guide(from_version, to_version) — Get migration guidance between versions
  • search_api_reference(symbol) — Look up API reference for a Reflex symbol
  • get_component_props(name) — Get only the props table for a component
  • list_recipes(category?) — Browse recipe/tutorial pages

Enhancements

  • search_docs — New fuzzy flag (prefix expansion), include_content flag (full page content)
  • get_doc — New extract_code flag (return only fenced code blocks)

Performance

  • SQLite connection pooling via threading.local() with persistent per-thread connections
  • WAL journal mode, 64 MB page cache, 256 MB mmap for concurrent reads
  • LRU cache (512 entries) on slug lookups
  • In-process TTL cache (300s default) on search results
  • FTS5 query preprocessor: phrase match + prefix expansion
  • Incremental indexing — skips re-index if git commit unchanged

Ground AI agents in real, up-to-date Reflex docs via a fast, local MCP server.

Python: 3.14 recommended. Compatible with 3.13+.

What It Does

  • Full‑text search over Reflex docs (SQLite FTS5)
  • Section‑level retrieval for precise context
  • Component index for rx.* lookups
  • FastMCP server with stdio and SSE transports

Quickstart

# Create venv
python3.14 -m venv .venv
. .venv/bin/activate

# Install (local checkout)
pip install -e .

# Index docs (clones Reflex docs and builds search index)
python -m reflex_docs_mcp.indexer

# Run MCP server (stdio)
python -m reflex_docs_mcp.server

# Run MCP server over SSE
python -m reflex_docs_mcp.server --transport sse --host 127.0.0.1 --port 8000

Install From PyPI

pip install reflex-docs-mcp

MCP Tools

  • search_docs(query, limit?, include_content?, fuzzy?) — Full-text search with fuzzy matching
  • get_doc(slug, extract_code?) — Retrieve a full doc page by slug
  • list_pages(prefix?, limit?) — List doc pages by slug prefix
  • list_components(category?) — List all Reflex components
  • search_components(query, limit?) — Search components by name/description
  • get_component(name) — Get details about a specific component
  • get_component_props(name, filter?) — Get component props table
  • get_stats() — Database statistics
  • get_code_examples(topic, limit?) — Find Python code examples for a topic
  • decode_error(error_text, context?) — Analyze errors against docs
  • get_changelog(version?, limit?) — Fetch Reflex release notes
  • get_migration_guide(from_version, to_version) — Migration guidance between versions
  • search_api_reference(symbol) — API reference lookup
  • list_recipes(category?) — Browse recipe/tutorial pages

Local MCP Config (VS Code)

The repository includes a ready-to-use config at .vscode/mcp.json that runs the server with the local venv.

Global Install MCP Config (VS Code)

If you install the package globally with pip, use one of these in .vscode/mcp.json:

Using module invocation:

{
  "servers": {
    "reflex-docs": {
      "type": "stdio",
      "command": "python3",
      "args": ["-m", "reflex_docs_mcp.server"],
      "env": {
        "REFLEX_DOCS_AUTO_INDEX": "true"
      }
    }
  },
  "inputs": []
}

Using the CLI entry point:

{
  "servers": {
    "reflex-docs": {
      "type": "stdio",
      "command": "reflex-docs-mcp",
      "args": [],
      "env": {
        "REFLEX_DOCS_AUTO_INDEX": "true"
      }
    }
  },
  "inputs": []
}

Project Layout

├── main.py                 # MCP stdio entry point
├── src/reflex_docs_mcp/
│   ├── models.py           # Pydantic data models
│   ├── database.py         # SQLite + FTS5 operations
│   ├── parser.py           # Markdown parser
│   ├── http.py            # Shared HTTP client with TTL cache
│   ├── indexer.py          # Docs cloning & indexing
│   └── server.py           # MCP server (stdio + SSE)
├── render.yaml             # Render deployment config
├── Procfile                # Process definition
└── test.py                 # Groq + MCP demo client

Demo (Optional)

The demo client uses Groq (OpenAI-compatible API) and the MCP Python client.

pip install reflex-docs-mcp[demo]
cp env.example .env
# Add GROQ_API_KEY to .env
python test.py

Notes

  • env.example contains Groq settings.
  • The indexer writes to data/reflex_docs.db by default.
  • On startup, the server auto-builds the index if missing. Controls:
  • REFLEX_DOCS_AUTO_INDEX (default: true)
  • REFLEX_DOCS_DOCS_SRC (path to clone docs into, default: docs_src)
  • REFLEX_DOCS_SKIP_CLONE / REFLEX_DOCS_FORCE_CLONE
  • REFLEX_DOCS_KEEP_EXISTING
  • REFLEX_DOCS_CACHE_TTL (default: 300) — Seconds for search cache TTL
  • REFLEX_DOCS_HTTP_TIMEOUT (default: 10) — Seconds for outbound HTTP requests
  • REFLEX_DOCS_MAX_SEARCH_LIMIT (default: 30) — Hard cap on search result limit
  • REFLEX_DOCS_ENABLE_LIVE_FETCH (default: true) — If false, disable live HTTP fetches

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reflex_docs_mcp-0.2.0.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reflex_docs_mcp-0.2.0-py3-none-any.whl (23.7 kB view details)

Uploaded Python 3

File details

Details for the file reflex_docs_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: reflex_docs_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for reflex_docs_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 756924cf81a72b088db11a5567217de550822a3c2d7648553582d6ac1a72683c
MD5 2da89eb29dc8c7ae6e877eb1d7da4bf6
BLAKE2b-256 dbfd7824a2966e40422f7dda42da0228af845fe24973da1207bbf3ed3c188573

See more details on using hashes here.

Provenance

The following attestation bundles were made for reflex_docs_mcp-0.2.0.tar.gz:

Publisher: publish.yml on itsmeadarsh2008/reflex-docs-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file reflex_docs_mcp-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for reflex_docs_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7931693b8fa6bf01dd56c6bdbd233d65651e1dafb5ef25eaf2aeb3028862fc39
MD5 4e53674fff46426c232bdb2724274033
BLAKE2b-256 c594b31fce5cb4d19e3701f84668b2f7fb7f0366a8b051becdc7ec431f30b5e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for reflex_docs_mcp-0.2.0-py3-none-any.whl:

Publisher: publish.yml on itsmeadarsh2008/reflex-docs-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page