LiveDocs MCP
Provides live documentation and code examples for the CrewAI agent framework.
Provides live documentation for the Django web framework.
Provides live documentation for the Docker container platform.
Provides live documentation for the FastAPI web framework.
Provides live documentation for the Flask web framework.
Provides live documentation for Google Gemini models, including Gemini Pro, Flash, and embeddings.
Provides live documentation for LangChain, helping users stay current on framework APIs and usage patterns.
Provides live documentation for LangGraph, including version-aware API details and examples.
Provides live documentation for Milvus vector database, including API usage and examples.
Provides live documentation for the MLflow MLOps lifecycle platform.
Provides live documentation and code examples for OpenAI's APIs, including GPT-4o, embeddings, DALLΒ·E, and Whisper.
Provides live documentation for the pandas data manipulation library.
Provides live documentation for the Polars dataframe library.
Provides live documentation for the Prisma ORM.
Provides live documentation for the Pydantic data validation library.
Provides live documentation for the pytest testing framework.
Provides live documentation for Redis database and cache.
Provides live documentation and code examples for Replicate's API for running open-source models.
Provides live documentation for the Ruff Python linter and formatter.
Provides live documentation for the SQLAlchemy SQL toolkit and ORM.
Provides live documentation for the Supabase backend platform.
Click on "Deploy 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., "@LiveDocs MCPHow do I use tool calling in the latest LangChain version?"
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.
π LiveDocs MCP
Give your AI the docs it actually needs β fresh from the source, every time.
π The Problem
Every AI engineer has hit this wall:
"Claude is giving me the LangChain v0.1 API but we're on v0.3" "Why is the OpenAI example broken β oh, they changed the client in v1.0" "The CrewAI docs changed again, my code is outdated"
LLMs are trained on a snapshot of the internet. Documentation moves fast. Your AI assistant doesn't.
LiveDocs MCP bridges that gap. It connects Claude (or any MCP-compatible AI) directly to official documentation websites in real time β no stale training data, no hallucinated APIs.
Related MCP server: Context7 MCP
β¨ Features
Feature | Description |
π΄Live Docs | Fetches directly from official docs β always current |
π¦45+ Libraries | Every major AI engineering library covered |
β‘Smart Cache | 24-hour TTL cache β fast repeat queries, no wasted API calls |
πMulti-Library Search | Compare docs across frameworks side-by-side |
π»Code Extraction | Hunts for code-block-rich pages automatically |
π’Version-Aware | Pin to a specific version (e.g. |
πBYOK | Bring Your Own Serper API key per request |
πRemote-Ready | Deploy as HTTP/SSE server β share one URL with your whole team |
π¦ Supported Libraries (45+)
Key | Library | Description |
| OpenAI | GPT-4o, embeddings, DALLΒ·E, Whisper |
| Anthropic | Claude API β messages, tool use, vision |
| Groq | Ultra-fast LLM inference |
| Mistral AI | Mixtral, Mistral-7B |
| Cohere | Command R, Embed, Rerank |
| Together AI | Open-source model inference |
| Replicate | Run open-source models via API |
| Google Gemini | Gemini Pro, Flash, embeddings |
langchain Β· langgraph Β· langsmith Β· llama_index Β· haystack Β· dspy
crewai Β· autogen Β· semantic_kernel Β· smolagents Β· pydantic_ai
pinecone Β· weaviate Β· chromadb Β· qdrant Β· milvus Β· pgvector
huggingface Β· sentence_transformers
langsmith Β· weights_biases Β· mlflow
fastapi Β· pydantic Β· django Β· flask
sqlalchemy Β· supabase Β· prisma Β· redis
uv Β· ruff Β· pytest Β· docker Β· pandas Β· polars
π οΈ MCP Tools Reference
Tool | Description |
| Fetch live docs for any library |
| Search across multiple libraries at once |
| Targeted code snippet extraction |
| Browse all 45+ supported libraries |
| View cache hits / entries / TTL |
π Quick Start
Option 1 β Remote Server (Recommended β no install needed)
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"live-docs": {
"url": "https://live-docs-mcp.onrender.com/sse"
}
}
}Config file location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Option 2 β Local (Self-Hosted)
Prerequisites: Python 3.11+, uv
# 1. Clone
git clone https://github.com/NoumanZahid-85/live-docs-mcp.git
cd live-docs-mcp
# 2. Install dependencies
uv sync
# 3. Configure
cp .env.example .env
# Edit .env and add your SERPER_API_KEY (free at https://serper.dev)
# 4. Test the CLI client
uv run python mcp_client.py
# > Library: openai
# > Query: streaming chat completionClaude Desktop config (local stdio):
{
"mcpServers": {
"live-docs": {
"command": "uv",
"args": ["run", "python", "mcp_server.py"],
"cwd": "/absolute/path/to/live-docs-mcp",
"env": {
"SERPER_API_KEY": "your_serper_api_key"
}
}
}
}π Deploy Your Own Instance
Render (Free Tier)
Fork this repo
Connect to Render β New Web Service β select your fork
Set environment variable
SERPER_API_KEYin the Render dashboardRender auto-detects
render.yamland deploys
Your server will be live at https://your-service.onrender.com/sse.
ποΈ Architecture
graph TD
A[Claude / AI Client] -->|MCP Protocol| B[LiveDocs MCP Server]
B --> C{Cache Hit?}
C -->|Yes - 24h TTL| D[Return Cached Result]
C -->|No| E[Serper Google Search API]
E --> F[Top 5 Doc URLs]
F --> G[Concurrent HTTP Fetch]
G --> H[trafilatura HTML β Text]
H --> I[Code Block Extraction]
I --> J[Cache + Return]
B --> K[list_libraries]
B --> L[cache_stats]
subgraph Tools
B --> M[get_docs]
B --> N[search_docs_multi]
B --> O[get_code_examples]
endπ API Keys
Key | Purpose | Free Tier | Get It |
| Google search via Serper | β 2,500 searches/month | |
| LLM answers in CLI client | β Generous free tier |
π‘ Example Prompts
Once connected in Claude, try:
"Search the LangChain docs for how to use structured output with tool calling"
"Compare how LangChain and LlamaIndex implement document chunking"
"Get me a code example for streaming with the OpenAI Assistants API"
"What changed in CrewAI v0.7?"
"List all supported vector database libraries"ποΈ Project Structure
live-docs-mcp/
βββ mcp_server.py # π Production MCP server (5 tools)
βββ mcp_client.py # π₯οΈ Interactive CLI client
βββ libraries.py # π Registry of 45+ libraries
βββ cache.py # β‘ TTL in-memory cache
βββ utils.py # π§ HTML extractor + code parser
βββ render.yaml # π One-click Render deployment
βββ pyproject.toml # π¦ Dependencies (uv)
βββ .env.example # π Environment variable template
βββ README.mdπ€ Contributing
Want to add a library? Edit libraries.py β it takes 5 lines:
"your_library": {
"site": "docs.your-library.com",
"description": "Short description of the library",
"category": "llm_frameworks", # see existing categories
"aliases": ["yl", "yourlib"], # optional short names
},Then open a PR. β¨
π License
MIT β free to use, modify, and deploy.
Available Tools
5 toolscache_statsCache StatsA
Return current cache statistics for the LiveDocs MCP server.
Useful for understanding cache hit rates and diagnosing repeated query latency.
Returns: Cache statistics as formatted markdown.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and clearly indicates a read-only retrieval operation via 'Return' and 'statistics'. It also discloses the output format as formatted markdown, which is a useful behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main action, followed by a practical use case and return format. Every sentence adds value without unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter tool with an output schema, this description provides complete guidance: what it returns, why to use it, and the output format. No critical information is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so no parameter documentation is needed; the baseline for zero-parameter tools applies. The description adds nothing about parameters, but none are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Return') and resource ('current cache statistics for the LiveDocs MCP server'). It is clearly distinguishable from sibling tools, which handle docs, search, code examples, and libraries, not cache statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides use cases: understanding cache hit rates and diagnosing repeated query latency. It does not mention exclusions or alternatives, but the sibling tools make the choice unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_code_examplesGet Code ExamplesA
Fetch working code examples for a specific library feature from official docs.
Unlike get_docs(), this tool specifically hunts for pages rich in code samples, extracting and formatting fenced code blocks for immediate use.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Feature or pattern you need code for, e.g. "streaming chat completion", "async vector upsert", "RAG pipeline". | |
| library | Yes | Library key (e.g. "openai", "langchain", "pinecone"). | |
| language | No | Expected language for syntax context. Default: "python". | python |
| serper_api_key | No | Optional. Overrides server SERPER_API_KEY env var (BYOK). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explains that the tool hunts for code-rich pages and extracts/format fenced code blocks, which is useful. However, it does not disclose whether results are verified, whether network/rate-limit behavior applies, or any caveats about 'working' examples.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core purpose is front-loaded, and the second sentence earns its place by differentiating from a sibling tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema covers all parameters, an output schema exists, and the description covers purpose, behavior, and the main alternative. Given this is a read-oriented retrieval tool, the description is largely complete. Minor gaps like rate limits or validation expectations prevent a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters. The description adds context about the tool's overall behavior but does not add meaning to individual parameters beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb and resource: 'Fetch working code examples for a specific library feature from official docs.' It clearly distinguishes itself from the sibling get_docs() by emphasizing code-rich pages and fenced code block extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Unlike get_docs()' sentence explicitly tells the agent when to prefer this tool over a key alternative. It implies use when code examples are needed rather than general documentation. It does not describe conditions for other siblings like search_docs_multi, but the primary routing decision is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_docsGet DocsA
Fetch real-time, up-to-date documentation from the official docs site of a library.
Solves the core AI-engineer problem: LLMs have outdated training data. This tool fetches live content directly from official documentation websites, so you always get the latest API signatures, parameters, and examples.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What to search for. Be specific: "streaming chat completions", "tool calling with structured output", "RAG with metadata filters". | |
| library | Yes | Library key (e.g. "openai", "langchain", "qdrant"). Call list_libraries() to see all 45+ supported libraries. | |
| version | No | Optional version pin (e.g. "v0.2", "2.1.0") for version-specific docs. | |
| serper_api_key | No | Optional. Overrides server SERPER_API_KEY env var (BYOK). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It states the tool fetches live content directly from official websites, which signals a read-only network operation and distinguishes it from cached knowledge. However, it does not disclose potential failure modes, rate limits, or that results may vary by version (though the schema covers versioning).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is strong and informative, but the following paragraph includes promotional phrasing ('Solves the core AI-engineer problem') and repeats the 'latest content' idea. The description remains compact, yet some redundancy could be trimmed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a rich input schema and an output schema, so return format is handled structurally. The description covers the core purpose and use context, and the schema handles parameters and prerequisites like the list_libraries reference. Only minor operational detail such as error behavior is missing, but overall it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema documents all 4 parameters with descriptive help (100% coverage), so the description adds little parameter-level detail. It mentions 'API signatures, parameters, and examples' generically but does not go beyond what the schema already provides. Baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-object pair: 'Fetch real-time, up-to-date documentation from the official docs site of a library.' It clearly identifies the resource (documentation) and source (official docs site), and explains the benefit (latest API signatures, parameters, examples). Though it doesn't explicitly contrast siblings, the function is unambiguous and distinct from the sibling names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete trigger for use: it solves the problem of LLMs having outdated training data by fetching live content. This clearly implies using the tool when current documentation is needed. It doesn't mention alternatives or exclusions, but the context is explicit enough for an agent to know when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_librariesList LibrariesA
List all 45+ supported documentation libraries, optionally filtered by category.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional category filter string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It fully describes the enumerative, non-mutating intent ('List all') and adds the concrete scope of '45+' libraries, but does not explicitly confirm absence of side effects or mention any permission or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that leads with the action and resource, then states the optional filter. There is no redundant or filler content, and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter, full schema coverage, and an output schema, the description is sufficient. It tells the agent exactly what the tool returns access to and how to narrow results, without needing extra detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the only parameter with 100% coverage ('Optional category filter string'), so the description adds marginal semantic value by repeating the filtering idea. A baseline of 3 is appropriate because the schema fully handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a resource ('documentation libraries'), and a scope ('all 45+', 'optionally filtered by category'). This distinguishes it clearly from sibling tools like get_docs and search_docs_multi, which target retrieval of docs rather than enumeration of libraries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys the primary usage context: enumerating the available libraries and optionally narrowing by category. It does not explicitly name alternatives or exclusion criteria, but the purpose is unambiguous enough for an agent to know when to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docs_multiSearch Docs MultiA
Search the same query across multiple libraries simultaneously.
Ideal for comparing how different frameworks handle the same concept:
"How does LangChain vs LlamaIndex implement RAG?"
"Compare asyncio support in FastAPI vs Django"
"Tool calling: OpenAI vs Anthropic vs Groq"
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The concept or question to search across all specified libraries. | |
| libraries | Yes | List of library keys (max 5). e.g. ["langchain", "llama_index", "haystack"] | |
| serper_api_key | No | Optional. Overrides server SERPER_API_KEY env var (BYOK). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It does convey a key behavior: the same query is searched 'simultaneously' across multiple libraries, and it implies a read-only search operation. However, it does not disclose the underlying Serper API dependency, potential rate limits, or what happens when a library key is invalid. These are meaningful gaps given there are no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. The core sentence is immediately followed by a clear 'Ideal for...' usage signal and three illustrative examples. Every sentence earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with a fully documented schema and an output schema, covers purpose, usage, and query framing well. It is nearly complete for a multi-library search tool. The main missing contextual piece is explicit routing guidance to get_docs for single-library searches or to list_libraries when library keys are uncertain, but these are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents query, libraries, and serper_api_key well. The description adds helpful real-world examples of query phrasing and reinforces the 'same query' semantics, but it does not materially extend parameter meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search the same query across multiple libraries simultaneously.' It clearly identifies what the tool does and immediately distinguishes it from single-library alternatives like get_docs by emphasizing multi-library search. The example queries reinforce the purpose and add concrete framing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: 'Ideal for comparing how different frameworks handle the same concept.' It provides three concrete example query patterns, which strongly guide an agent on intended usage. However, it does not explicitly say when not to use it or point to get_docs for single-library searches, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
cache_stats - First observed
get_code_examples - First observed
get_docs - First observed
list_libraries - First observed
search_docs_multi
TDQS
Scored across 5 tools
Each tool has a generally clear role: single-library docs, multi-library search, code examples, library listing, and cache stats. The only minor overlap is between get_docs and get_code_examples, but the descriptions explicitly differentiate them by focusing on prose/docs versus code-rich pages.
Most tools follow a verb_noun pattern: get_docs, search_docs_multi, get_code_examples, list_libraries. cache_stats breaks the pattern by being noun_noun, and search_docs_multi's suffix is slightly irregular, but overall the naming is predictable and readable.
Five tools is well-scoped for a documentation-fetching server. Each tool serves a distinct and useful purpose without redundancy or bloat, and the count feels appropriate for the narrow but valuable domain.
The tool surface covers the core documentation workflows: fetching live docs, searching across libraries, retrieving code examples, discovering supported libraries, and inspecting cache health. No obvious dead ends or missing critical operations for the stated purpose.
Maintenance
Related MCP Connectors
@latest documentation and code examples to 9000+ libraries for LLMs and AI code editors in a singlβ¦
Provide your AI coding tools with token-efficient access to up-to-date technical documentation forβ¦
Versioned documentation registry and semantic search for AI tools and coding assistants.
Search GitHub, npm, PyPI, StackOverflow, ArXiv from one MCP β built for coding agents.
Related MCP Servers
- AlicenseCqualityCmaintenanceProvides real-time access to up-to-date library documentation and code examples for any programming library. Helps AI coding assistants deliver accurate, current information instead of relying on outdated training data.16 npmMIT
- AlicenseAqualityDmaintenanceProvides up-to-date, version-specific documentation and code examples for libraries and frameworks directly into AI prompts, eliminating outdated code generation and hallucinated APIs.21,132,952 npmMIT
- AlicenseAqualityCmaintenanceProvides LLMs with up-to-date, version-specific documentation and code examples directly from library sources, eliminating outdated training data and hallucinated APIs by fetching current documentation at prompt time.21,132,952 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides real-time, up-to-date documentation for major LLM providers (OpenAI, Anthropic, Google Gemini) to prevent hallucinations and outdated code patterns in AI agents.11 npm6MIT