pydantic-docs
Provides local-first access to Pydantic documentation with BM25 full-text search, enabling retrieval of documentation pages, sections, and API references via MCP tools.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pydantic-docssearch for BaseModel usage with examples"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pydantic Documentation MCP Server
A Model Context Protocol (MCP) server providing local-first access to Pydantic and Pydantic AI documentation with BM25-powered full-text search.
Features
Local-first architecture - Offline-only mode by default
BM25 full-text search - Fast semantic search across all docs
Git-based extraction - Direct from source repositories (no HTML scraping)
Pre-processed data - JSONL files included for instant setup
Auto-initialization - Builds indices automatically on first run
Complete coverage - Pydantic v2 and Pydantic AI documentation
Related MCP server: MPC Docs Server
Requirements
Python 3.12+
uv package manager
~15MB disk space (with indices)
Quick Start
# Clone and install
git clone <repository-url>
cd mcp_pydantic_docs
uv sync
# Server auto-builds indices on first run
uv run mcp-pydantic-docsMCP Client Configuration
Add to your MCP settings (e.g., cline_mcp_settings.json):
{
"mcpServers": {
"pydantic-docs": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/mcp_pydantic_docs",
"run",
"mcp-pydantic-docs"
]
}
}
}Architecture
How It Works
Source Extraction (
source_extractor.py) - Clones Pydantic repos, extracts documentation from markdown/docstrings → JSONLIndex Building (
indexer.py) - Processes JSONL files → BM25 search indicesMCP Server (
mcp.py) - Serves documentation via MCP toolsShared Utilities (
utils.py) - HTML/text processing, normalization
Directory Structure
mcp_pydantic_docs/
├── mcp_pydantic_docs/ # Source code
│ ├── mcp.py # MCP server
│ ├── source_extractor.py # Git-based doc extraction
│ ├── indexer.py # BM25 index builder
│ ├── utils.py # Shared utilities
│ └── setup.py # Setup CLI
├── data/ # Search data
│ ├── pydantic.jsonl # Pydantic docs (2.9MB, in git)
│ ├── pydantic_ai.jsonl # Pydantic AI docs (3.3MB, in git)
│ ├── *_bm25.pkl # BM25 index (generated)
│ └── *_records.pkl # Document records (generated)
└── docs_raw/ # Source repos (not in git)
├── pydantic/ # Cloned from GitHub
└── pydantic_ai/ # Cloned from GitHubData Flow
GitHub Repos → source_extractor.py → JSONL files → indexer.py → BM25 indices → mcp.py → MCP ClientAvailable Tools
Search & Retrieval
pydantic_search(query, k=10)- Full-text search with BM25 rankingpydantic_get(path_or_url, max_chars=None)- Fetch full documentation pagepydantic_section(path_or_url, anchor)- Extract specific sectionpydantic_api(symbol, anchor=None)- Jump to API documentation
Health & Admin
health_ping()- Server health checkhealth_validate()- Validate search indicespydantic_mode()- Server configurationadmin_cache_status()- Detailed cache statusadmin_rebuild_indices()- Rebuild search indices
Updating Documentation
Rebuild from Existing JSONL
uv run python -m mcp_pydantic_docs.indexerExtract Fresh Documentation
# Check status
uv run python -m mcp_pydantic_docs.setup --status
# Download and extract from GitHub
uv run python -m mcp_pydantic_docs.setup --download --build-index
# Clean cache
uv run python -m mcp_pydantic_docs.setup --cleanConfiguration
Environment Variables
PDA_DOC_ROOT- Pydantic v2 source pathPDA_DOC_ROOT_AI- Pydantic AI source pathPDA_DATA_DIR- Data directory path
Offline Mode
Default: Enabled (OFFLINE_ONLY = True in mcp.py)
Blocks remote requests
Validates file paths
All content from local cache
Development
Run Tests
uv run pytestCode Quality
uv run black mcp_pydantic_docs/ # Format
uv run ruff check . # Lint
uv run mypy mcp_pydantic_docs/ # Type checkTroubleshooting
Search indices not found:
uv run python -m mcp_pydantic_docs.indexerWrong Python version:
uv python install 3.12Server won't start:
# Test standalone
uv run mcp-pydantic-docs
# Check indices
uv run python -m mcp_pydantic_docs.setup --statusLicense
MIT License - see LICENSE file.
Contributing
See CONTRIBUTING.md for:
Development setup
Code style
Testing requirements
Pull request process
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Magic-Man-us/mcp_pydantic_docs'
If you have feedback or need assistance with the MCP directory API, please join our Discord server