Skip to main content
Glama
elblanco2

DevDocs MCP Server

by elblanco2

DevDocs MCP Server

A Model Context Protocol (MCP) server that provides access to the extensive DevDocs.io API documentation library. Access 600+ documentation sets including Python, JavaScript, React, Django, PostgreSQL, and many more directly through Claude Desktop or any MCP-compatible client.

Features

  • List Documentation Sets: Browse all 600+ available documentation libraries

  • Search Within Docs: Search for specific topics within a documentation set

  • Global Search: Search across multiple documentation sets simultaneously

  • Fetch Content: Retrieve full HTML documentation content

  • Browse Index: View complete table of contents for any documentation

  • Smart Caching: Automatic caching for improved performance

  • Type Safety: Built with TypeScript for reliability

Related MCP server: WordPress Docs MCP Server

Available Documentation

DevDocs.io aggregates documentation from numerous sources including:

  • Languages: Python, JavaScript, TypeScript, Rust, Go, C++, Ruby, PHP, Java, Kotlin, Swift, and 30+ more

  • Frameworks: React, Vue, Angular, Django, Flask, Laravel, Rails, Express, Next.js, and many more

  • Libraries: NumPy, pandas, PyTorch, TensorFlow, D3.js, Lodash, jQuery

  • Tools: Docker, Kubernetes, Git, webpack, npm, CMake

  • Databases: PostgreSQL, MySQL, SQLite, Redis, MongoDB

  • Web APIs: DOM, HTML, CSS, HTTP, Web APIs from MDN

Installation

Prerequisites

  • Node.js 18 or higher

  • npm or yarn

Setup

  1. Clone or download this repository:

git clone <repository-url>
cd apidocs
  1. Install dependencies:

npm install
  1. Build the project:

npm run build

Configure Claude Desktop

Add this server to your Claude Desktop configuration file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "devdocs": {
      "command": "node",
      "args": ["/absolute/path/to/apidocs/build/index.js"]
    }
  }
}

Replace /absolute/path/to/apidocs with the actual path to your installation.

Tools

The server provides five powerful tools:

1. list_docs

List all available documentation sets with optional filtering.

Parameters:

  • filter (optional): String to filter documentation by name

Example:

{
  "filter": "python"
}

Returns: Array of documentation metadata including name, slug, version, links, and size.

2. search_doc

Search within a specific documentation set.

Parameters:

  • doc_slug (required): Documentation slug (e.g., "javascript", "python~3.12", "react")

  • query (required): Search query string

Example:

{
  "doc_slug": "javascript",
  "query": "array map"
}

Returns: Array of matching entries with name, path, type, and full URL (limited to 20 results).

3. search_all_docs

Search across multiple documentation sets simultaneously.

Parameters:

  • query (required): Search query string

  • doc_slugs (optional): Array of specific documentation slugs to search

Example:

{
  "query": "authentication",
  "doc_slugs": ["django~5.1", "flask~3.1", "express"]
}

Returns: Combined search results from multiple docs (limited to 50 results).

4. get_doc_content

Fetch the full HTML content for a specific documentation entry.

Parameters:

  • doc_slug (required): Documentation slug

  • path (required): Entry path (from search results)

Example:

{
  "doc_slug": "javascript",
  "path": "global_objects/array/map"
}

Returns: Full HTML content of the documentation entry.

5. get_doc_index

Get the complete index/table of contents for a documentation set.

Parameters:

  • doc_slug (required): Documentation slug

Example:

{
  "doc_slug": "react"
}

Returns: Complete index with entry names, paths, and types (first 100 entries shown).

Usage Examples

Finding Python Documentation

  1. List Python docs:

    • Tool: list_docs

    • Filter: "python"

  2. Search for "list comprehension":

    • Tool: search_doc

    • doc_slug: "python~3.12"

    • query: "list comprehension"

  3. Get the content:

    • Tool: get_doc_content

    • doc_slug: "python~3.12"

    • path: (from search results)

Search for "routing" across web frameworks:

  • Tool: search_all_docs

  • query: "routing"

  • doc_slugs: ["express", "django~5.1", "flask~3.1", "rails~7.2"]

Development

Watch Mode

For development with auto-rebuild:

npm run watch

Project Structure

apidocs/
├── src/
│   └── index.ts         # Main MCP server implementation
├── build/               # Compiled JavaScript (generated)
├── package.json         # Dependencies and scripts
├── tsconfig.json        # TypeScript configuration
└── README.md           # This file

How It Works

  1. Data Source: Fetches data from DevDocs.io public endpoints

  2. Caching: Implements 1-hour cache to reduce API calls and improve performance

  3. Index Format: DevDocs uses compact arrays [name, path, type] for efficient storage

  4. Content Delivery: HTML partials are served for each documentation entry

API Endpoints Used

  • https://devdocs.io/docs.json - List of all documentation sets

  • https://documents.devdocs.io/{slug}/index.json - Index for specific documentation

  • https://documents.devdocs.io/{slug}/{path}.html - Content for specific entry

Troubleshooting

Server Not Showing Up in Claude Desktop

  1. Verify the path in claude_desktop_config.json is absolute

  2. Ensure you ran npm run build

  3. Restart Claude Desktop completely

  4. Check Claude Desktop logs for errors

Search Returns No Results

  • Verify the doc_slug is correct using list_docs

  • Check that the documentation includes the term you're searching for

  • Try a broader search query

Performance Issues

  • The server caches all requests for 1 hour

  • First requests may be slower as data is fetched

  • Subsequent requests will be much faster

Credits and Attribution

This MCP server was built by analyzing and integrating with the DevDocs.io platform. Special thanks to:

Core Infrastructure

Documentation and Research

Technology Stack

All documentation content is copyright of their respective owners and provided through DevDocs.io's public API.

For detailed attribution, see CREDITS.md.

License

MIT - See LICENSE for details.

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

Resources

Available Tools

5 tools
get_doc_contentB

Fetch the full HTML content for a specific documentation entry. Use the path from search results.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_slugYesThe slug of the documentation (e.g., 'javascript', 'python~3.12')
pathYesThe path to the specific entry (from search results)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions fetching HTML content but doesn't describe key behavioral traits such as whether this is a read-only operation, if it requires authentication, potential rate limits, error handling, or the format of the returned content. This leaves significant gaps for an AI agent to understand how to invoke it safely and effectively.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and front-loaded, consisting of only two sentences that directly state the tool's purpose and usage hint. Every sentence earns its place without redundancy or unnecessary details, making it efficient for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (fetching content with two parameters) and the absence of annotations and output schema, the description is somewhat incomplete. It covers the basic purpose and a usage hint but lacks details on behavioral aspects and return values, which are crucial for effective tool invocation. However, the clear schema helps mitigate some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, clearly documenting both parameters ('doc_slug' and 'path') with examples. The description adds minimal value beyond the schema by referencing 'path from search results,' which provides some context but doesn't elaborate on parameter semantics or usage beyond what's already in the schema. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('fetch') and resource ('full HTML content for a specific documentation entry'), making it easy to understand what it does. However, it doesn't explicitly differentiate from sibling tools like 'get_doc_index' or 'search_doc', which likely serve different purposes (e.g., fetching metadata vs. searching).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage guidance by mentioning 'Use the path from search results,' which suggests this tool is for retrieving content after a search. However, it doesn't explicitly state when to use this tool versus alternatives like 'search_doc' or 'list_docs,' nor does it outline any exclusions or prerequisites for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_doc_indexB

Get the complete index of entries for a specific documentation set. Useful for browsing available topics.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_slugYesThe slug of the documentation (e.g., 'javascript', 'python~3.12')

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves an index for browsing, implying a read-only operation, but doesn't specify details like response format, pagination, error handling, or performance characteristics. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves beyond its basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two sentences: the first states the purpose, and the second provides usage context. It's front-loaded with the core functionality and avoids unnecessary details. However, the second sentence could be more specific to enhance clarity without adding bulk, slightly reducing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. It covers the purpose and hints at usage but lacks details on behavior, response structure, or error cases. With no output schema, the description doesn't explain return values, which is a gap. It meets basic needs but leaves room for improvement in completeness for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with 'doc_slug' documented as 'The slug of the documentation (e.g., 'javascript', 'python~3.12').' The description adds no additional parameter semantics beyond what the schema provides, such as examples of valid slugs or constraints. According to the rules, with high schema coverage (>80%), the baseline is 3, as the schema does the heavy lifting without extra value from the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the complete index of entries for a specific documentation set.' It specifies the verb ('Get') and resource ('complete index of entries'), distinguishing it from siblings like 'get_doc_content' (which retrieves content) and 'list_docs' (which lists documentation sets). However, it doesn't explicitly differentiate from 'search_all_docs' or 'search_doc' in terms of scope or filtering, keeping it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage with 'Useful for browsing available topics,' suggesting this tool is for exploration rather than search or content retrieval. It hints at when to use it (browsing) but doesn't explicitly state when not to use it or name alternatives like 'search_doc' for targeted queries. No prerequisites or exclusions are mentioned, leaving some ambiguity in tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_docsC

List all available documentation sets on DevDocs.io. Returns name, slug, version, and other metadata for each documentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional filter string to search for specific documentation by name

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool lists documentation and returns metadata, but doesn't mention critical behaviors such as pagination, rate limits, authentication requirements, or error handling. For a read operation with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with two sentences: one stating the purpose and resource, and another detailing the return values. It's front-loaded with the core action and avoids unnecessary details. However, it could be slightly more structured by explicitly separating usage context from output details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one optional parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and output but lacks completeness in behavioral aspects like error handling or performance characteristics. Without annotations or output schema, more detail on return format or usage scenarios would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'filter' parameter documented as 'Optional filter string to search for specific documentation by name'. The description adds no additional parameter semantics beyond this, as it doesn't explain the filter's usage or format. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List all available documentation sets') and resource ('on DevDocs.io'), with specific output details ('Returns name, slug, version, and other metadata for each documentation'). It distinguishes from siblings like 'get_doc_content' by focusing on metadata listing rather than content retrieval. However, it doesn't explicitly differentiate from 'search_all_docs' or 'search_doc' which might also list documentation, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions returning metadata but doesn't specify if this is for browsing, filtering, or other contexts, and offers no comparison to sibling tools like 'search_all_docs' or 'search_doc'. This lack of explicit usage instructions leaves the agent without clear direction for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_all_docsB

Search across multiple documentation sets. Optionally filter by specific documentation slugs.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query to find matching entries
doc_slugsNoOptional array of documentation slugs to search within. If not provided, searches across top documentation sets.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the optional filtering behavior, but does not disclose other key traits such as whether this is a read-only operation, how results are returned (e.g., pagination, format), performance expectations, or error handling. The description is minimal and misses important behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences that directly state the tool's function and optional feature. It is front-loaded with the core purpose and wastes no words, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no annotations and no output schema, the description is incomplete. It covers the basic purpose and optional filtering but lacks details on return values, error conditions, or behavioral nuances. For a search tool with multiple parameters and sibling alternatives, more context is needed to guide effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters ('query' and 'doc_slugs') with clear descriptions. The description adds marginal value by emphasizing the optional nature of 'doc_slugs' and hinting at default behavior ('searches across top documentation sets'), but does not provide additional syntax or format details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search across multiple documentation sets' with the specific action 'search' and resource 'documentation sets'. It distinguishes from the sibling 'search_doc' by specifying 'multiple documentation sets' versus potentially a single documentation set, though the distinction could be more explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by mentioning 'Optionally filter by specific documentation slugs', suggesting when to use this optional feature. However, it lacks explicit guidance on when to choose this tool over alternatives like 'search_doc' or 'list_docs', and does not specify prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_docA

Search within a specific documentation set for entries matching the query. Returns matching entries with their paths and types.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_slugYesThe slug of the documentation to search (e.g., 'javascript', 'python~3.12', 'react')
queryYesThe search query to find matching entries

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the basic behavior (searching and returning entries with paths and types) but lacks details on traits like rate limits, authentication needs, error handling, or pagination. For a search tool with no annotations, this is a moderate gap, as it covers core functionality but misses operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose and followed by the outcome. Every sentence earns its place by conveying essential information without waste, making it efficient and well-structured for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (search with 2 parameters), no annotations, and no output schema, the description is complete enough for basic use but lacks depth. It explains what the tool does and returns, but without annotations or output schema, it misses details on behavioral traits and exact return format, making it adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters ('doc_slug' and 'query') with descriptions. The description does not add any meaning beyond what the schema provides, such as examples or usage notes for parameters. Baseline 3 is appropriate when the schema handles parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Search within a specific documentation set'), the resource ('documentation set'), and the outcome ('Returns matching entries with their paths and types'). It distinguishes from sibling tools like 'search_all_docs' by specifying 'within a specific documentation set' and from 'get_doc_content'/'get_doc_index' by focusing on search rather than retrieval or listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by specifying 'within a specific documentation set,' which suggests this tool is for targeted searches, unlike 'search_all_docs' that might search across all docs. However, it does not explicitly state when to use this vs. alternatives or any exclusions, such as prerequisites or limitations, leaving some guidance implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: list_docs enumerates available documentation sets, get_doc_index retrieves the index of a specific set, search_doc searches within a set, search_all_docs searches across multiple sets, and get_doc_content fetches full content for an entry. The descriptions explicitly differentiate their scopes and use cases.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case: list_docs, get_doc_index, search_doc, search_all_docs, get_doc_content. The verbs (list, get, search) are appropriately matched to their actions, and the nouns (docs, doc_index, doc, all_docs, doc_content) clearly indicate the target resources.

Tool Count5/5

With 5 tools, the server is well-scoped for its purpose of accessing DevDocs.io documentation. Each tool serves a specific, non-redundant function in the workflow, from discovery to content retrieval, making the count efficient and appropriate for the domain.

Completeness5/5

The tool set provides complete coverage for the documentation access domain: list_docs for discovery, get_doc_index for browsing, search_doc and search_all_docs for finding entries, and get_doc_content for reading content. There are no obvious gaps, as it supports the full lifecycle from listing sets to fetching specific entry content.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search and query documentation from multiple sources including Voiceflow and Claude Code, with full-text search, code examples retrieval, and step-by-step tutorials access.
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Provides AI models with direct access to documentation for over 600 technologies from DevDocs.io, including popular languages, frameworks, and tools. It enables comprehensive searching, content retrieval, and offline access via an intelligent local caching system.
    12
    2

Latest Blog Posts

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/elblanco2/devdocs-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server