Skip to main content

Enhanced MCP server for searching documentation with OSINT vulnerability scanning, security analysis, and AWS-style deployment

Project description

Documentation Search MCP Server

CI Security Scan PyPI version Python 3.12+ License: MIT

This Model Context Protocol server delivers documentation search, vulnerability auditing, and project bootstrapping in one place. It runs as a long-lived process that serves requests from MCP-compatible clients such as Claude Desktop or Cursor.

Core Capabilities

  • AI-Powered Semantic Search: Vector embeddings + hybrid reranking across 100+ documentation sources for superior relevance.
  • Security-First Approach: Scan local Python projects for dependency vulnerabilities with multi-tool analysis.
  • Project Scaffolding: Generate production-ready starters (FastAPI, React) and developer environment files.
  • Developer Productivity: Learning paths, curated code examples, and library security comparisons on demand.

Quick Start

# Requires Python 3.12+
uvx documentation-search-enhanced@latest

Configure your assistant to launch the server:

{
  "mcpServers": {
    "documentation-search-enhanced": {
      "command": "uvx",
      "args": ["documentation-search-enhanced@latest"]
    }
  }
}

No API key is required. Optionally set SERPER_API_KEY to use Serper-powered search. Without it, the server uses a prebuilt docs index (auto-downloaded from GitHub Releases on startup) plus on-site docs search (MkDocs/Sphinx indexes when available). Control the download with DOCS_SITE_INDEX_AUTO_DOWNLOAD, DOCS_SITE_INDEX_MAX_AGE_HOURS, DOCS_SITE_INDEX_URL(S), and DOCS_SITE_INDEX_PATH. Set server_config.features.real_time_search=false to avoid any live crawling and rely only on the downloaded index. The process stays running and listens for JSON-RPC calls; stop it with Ctrl+C when finished.

Codex CLI

Add the server using Codex’s built-in MCP manager:

codex mcp add documentation-search-enhanced \
  -- uvx documentation-search-enhanced@latest

To run from a local checkout instead:

codex mcp add documentation-search-enhanced \
  -- bash -lc 'cd /path/to/documentation-search-mcp && uv run python -m documentation_search_enhanced.main'

Development Workflow

git clone https://github.com/anton-prosterity/documentation-search-mcp.git
cd documentation-search-mcp
uv sync --all-extras --all-groups  # include dev tools
# Optional: enable Serper-powered search
# echo "SERPER_API_KEY=your_key_here" > .env
uv run python -m documentation_search_enhanced.main
  • Run core tests: uv run pytest --ignore=pytest-test-project.
  • Run example FastAPI tests: cd pytest-test-project && uv run --all-extras python -m pytest -q.
  • Lint: uv run ruff check src. Format: uv run black src (use --check to verify).
  • Build distributions via uv build; publish_to_pypi.sh wraps the release flow.

Configuration

Ask your assistant for the current configuration via the get_current_config tool, save it as config.json, then adjust sources or caching preferences. Validate changes locally with uv run python src/documentation_search_enhanced/config_validator.py. Keep secrets in .env rather than committing them.

AI-Powered Semantic Search

The server now features vector-based semantic search with hybrid reranking for significantly improved relevance:

How It Works

  • Vector Embeddings: Uses sentence-transformers (all-MiniLM-L6-v2) to generate 384-dimensional semantic embeddings
  • Hybrid Scoring: Combines three signals with configurable weights:
    • Semantic similarity (50%): True meaning-based matching via cosine similarity
    • Keyword relevance (30%): Precise term matching for specific queries
    • Source authority (20%): Official docs, code examples, and URL quality signals
  • FAISS Index: Lightning-fast similarity search over large documentation corpora

Benefits

  • Better Understanding: Finds semantically related content even with different terminology
  • Improved Ranking: Hybrid approach balances semantic understanding with keyword precision
  • Production Ready: Compact 120MB model, efficient L2-normalized embeddings
  • Flexible: Enable/disable vector reranking with use_vector_rerank parameter

Usage

Vector reranking is enabled by default in semantic_search. To disable:

semantic_search(query="FastAPI auth", libraries=["fastapi"], use_vector_rerank=False)

This feature addresses the #1 competitive gap vs Context7 while maintaining our security and scaffolding advantages.

Tools at a Glance

Key MCP tools include get_docs, semantic_search, get_learning_path, get_code_examples, scan_project_dependencies, generate_project_starter, manage_dev_environment, get_security_summary, and compare_library_security.

Contributing & License

Start with the contributor guide in AGENTS.md plus the workflow details in CONTRIBUTING.md. Follow Conventional Commits, document validation steps in pull requests, and update CHANGELOG.md for user-facing adjustments. Released under the MIT License—see LICENSE for the full text.

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

documentation_search_enhanced-1.6.1.tar.gz (74.3 kB view details)

Uploaded Source

Built Distribution

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

documentation_search_enhanced-1.6.1-py3-none-any.whl (82.7 kB view details)

Uploaded Python 3

File details

Details for the file documentation_search_enhanced-1.6.1.tar.gz.

File metadata

File hashes

Hashes for documentation_search_enhanced-1.6.1.tar.gz
Algorithm Hash digest
SHA256 27738ba255a48c939d32358e1bee4f7dbf89c299275dbc9554f9a4207c8a78c4
MD5 d91b3a15feb450d1cb6b9db7041c539c
BLAKE2b-256 61edd0999febbdb44290a741f21461f9ba96bf1dacf5db6d7733942526659f20

See more details on using hashes here.

Provenance

The following attestation bundles were made for documentation_search_enhanced-1.6.1.tar.gz:

Publisher: release.yml on anton-prosterity/documentation-search-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 documentation_search_enhanced-1.6.1-py3-none-any.whl.

File metadata

File hashes

Hashes for documentation_search_enhanced-1.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 20d5d76fddcaa45d62de02d0e63c6e364c7446c9d124fb8fc4b8923e6cf068ec
MD5 9ba417355099333d197e4774db95d339
BLAKE2b-256 13bae55a7626a41f8a472e00ae6a56e5f0d73168d6a795d40b03c45a536a802a

See more details on using hashes here.

Provenance

The following attestation bundles were made for documentation_search_enhanced-1.6.1-py3-none-any.whl:

Publisher: release.yml on anton-prosterity/documentation-search-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