Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

scoutdocs-mcp

MCP server that fetches and searches current documentation for any package — the latest stable release by default, or one exact version on request. Keeps AI coding agents in sync with current APIs instead of relying on stale training data.

Two ways to run it:

  • Local stdio (Python) — installs into Claude Code / Claude Desktop / Cursor, can read your project's manifests.
  • Hosted Worker (Cloudflare) — public HTTPS endpoint at /mcp, no install required.

Why

LLMs are trained on a snapshot — the docs they "know" may be months or years old. scoutdocs-mcp gives any MCP client live access to version info, READMEs, and search results across docs sites for packages on PyPI, npm, and crates.io — including exact-version lookups that never fall back to a different release.

How it works

scoutdocs-mcp workflow

Tools

Tool Where What it does
get_package_info local + hosted Latest stable version + metadata; optional exact version (local)
get_package_docs local + hosted README / long-description content; optional exact version (local)
search_package_docs local + hosted Bounded discovery: docs URL, llms.txt / llms-full.txt, sitemap, same-host links — ranks pages by query match
detect_project_dependencies local only Reads pyproject/requirements/uv.lock, package.json/package-lock, Cargo.toml/Cargo.lock
cache_stats local only Local SQLite cache stats

Exact versions

Both doc tools take an optional exact version (local server). The rule is simple: served exactly, or not at all — the latest release is never silently substituted.

flowchart LR
  A["ask: package @ 2.31.0"] --> B{"version exists<br/>on the registry?"}
  B -->|"yes"| C["docs for exactly 2.31.0<br/>+ source URL in the reply"]
  B -->|"no"| D["explicit not-found<br/>no substitution"]
> get_package_docs package="click" version="8.1.7"

The reply says what it is and where it came from:

# click v8.1.7 (python)
Version: exact (8.1.7)
License: BSD-3-Clause
Source: pypi_description (https://pypi.org/pypi/click/8.1.7/json)
Docs: https://click.palletsprojects.com/

---

$ click_
==========
Click is a Python package for creating beautiful command line interfaces…

What that buys you when a version matters:

  • Unknown version → explicit "not found". Latest is never substituted.
  • version="latest" is refused — pass a real version, or omit version to get latest stable.
  • Cache entries are per-version: one version's docs are never served for another.
  • On a pinned project, feed the declared_version from detect_project_dependencies into version= to read exactly what the project builds with.

Exact versions run in the local server; the hosted endpoint serves latest stable.

Quickstart

Local (Python stdio)

scoutdocs-mcp is currently a beta (0.2.0b4), so pip and uv need to be told pre-releases are OK:

pip install --pre scoutdocs-mcp                # or
uv tool install --prerelease=allow scoutdocs-mcp

Add to Claude Code's MCP config (~/.claude/claude_code_config.json):

{
  "mcpServers": {
    "scoutdocs": {
      "command": "uvx",
      "args": ["--prerelease", "allow", "--from", "scoutdocs-mcp", "scoutdocs-mcp"]
    }
  }
}

This runs the newest beta without pinning a version; change the --from value to scoutdocs-mcp==0.2.0b4 if you'd rather freeze it. Once scoutdocs-mcp reaches 0.2.0 stable, the --pre / --prerelease flags go away. For Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS), use the same JSON shape.

Hosted (Cloudflare Worker)

Point any MCP client at the public Streamable HTTP endpoint:

https://scoutdocs-mcp.solmonger.workers.dev/mcp

The hosted endpoint is unauthenticated and rate-limited (60 MCP req/min, 10 search req/min per client IP). Search results are capped tighter than local (8 discovered pages × 18k chars / 200k total backstop) but well within Cloudflare free-tier headroom.

Example prompts

> What's the latest version of flask?
> Show me the docs for the serde crate
> Show me the docs for requests 2.31.0 — the exact version my project pins
> Search the httpx docs for "transport"
> What dependencies does this project declare?

Configuration

GitHub token (optional, local only)

Unauthenticated GitHub API allows 60 req/hr. A token (any scope) raises that to 5,000/hr — useful when fetching READMEs in bulk:

export GITHUB_TOKEN=ghp_your_token_here

Cache

  • Local stdio: SQLite at ~/.cache/scoutdocs-mcp/cache.db, 24h TTL.
  • Hosted Worker: Cloudflare KV, same 24h TTL, scoped per binding.

Search caps

The README is always included as a free first page. The max_pages cap governs how many discovered pages we add on top of it.

Hosted Local default
Discovered pages 8 (max 20 via max_pages arg) 15 (max 30 via max_pages arg)
Chars/page 18,000 24,000
Total backstop 200,000 500,000

Supported ecosystems

Ecosystem Registry Aliases
Python PyPI python, pypi, pip
JavaScript / TypeScript npm javascript, typescript, npm, js, ts
Rust crates.io rust, cargo, crate

If no ecosystem is specified, registries are tried in order.

Repository layout

src/scoutdocs_mcp/    Python stdio server (published as scoutdocs-mcp)
worker/               Cloudflare Worker (TypeScript) for the hosted endpoint
tests/                pytest suite (mocked HTTP)
worker/test/          Vitest suite (Cloudflare workers pool)
docs/RELEASE.md       Release & deployment runbook

Status

Beta (0.2.0b4). API stable; some discovery sources may evolve. Filed issues welcome at https://github.com/eshaanmathakari/scoutdocs-mcp/issues.

License

MIT

Metadata

Release files for scoutdocs-mcp 0.2.0b4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scoutdocs-mcp 0.2.0b4
File Size Uploaded Provenance Actions
scoutdocs_mcp-0.2.0b4.tar.gz 129.0 kB Without provenance Details for scoutdocs_mcp-0.2.0b4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for scoutdocs-mcp 0.2.0b4
File Interpreter ABI Platform Actions
scoutdocs_mcp-0.2.0b4-py3-none-any.whl Python 3 none any Details for scoutdocs_mcp-0.2.0b4-py3-none-any.whl

Total release size: 153.2 kB

Release files / scoutdocs_mcp-0.2.0b4.tar.gz

Download URL scoutdocs_mcp-0.2.0b4.tar.gz
Size 129.0 kB
Tags Source
SHA-256 checksum
How to use checksums
6aacbdc1dbfeadd3ac00520912a38e5bf4938dcfca4fca431ea8237649f1ccbe
BLAKE2b-256 checksum
How to use checksums
0862138676b1ed91e09b623f04818ea7a46286969d4c4a5538686f620e96c7f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / scoutdocs_mcp-0.2.0b4-py3-none-any.whl

Download URL scoutdocs_mcp-0.2.0b4-py3-none-any.whl
Size 24.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e827a6dbc884019743305502fbca591921f1f1e6f70865a66a41199e9b2040a6
BLAKE2b-256 checksum
How to use checksums
37b24e955813443ad09182130c437f739758938e983522e902c61689701e0d50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for scoutdocs-mcp 0.2.0b4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page