Skip to main content
Glama
cdugo

DocsFetcher MCP Server

by cdugo
README.md
# šŸ“š DocsFetcher MCP Server

[![smithery badge](https://smithery.ai/badge/@cdugo/mcp-get-docs)](https://smithery.ai/server/@cdugo/mcp-get-docs)
[![npm version](https://img.shields.io/npm/v/@cdugo/docs-fetcher-mcp.svg)](https://www.npmjs.com/package/@cdugo/docs-fetcher-mcp)
[![npm downloads](https://img.shields.io/npm/dm/@cdugo/docs-fetcher-mcp.svg)](https://www.npmjs.com/package/@cdugo/docs-fetcher-mcp)

An MCP server that fetches package documentation from multiple language ecosystems for LLMs like Claude without requiring API keys.

<a href="https://glama.ai/mcp/servers/8yfwtryuc5">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/8yfwtryuc5/badge" alt="DocsFetcher Server MCP server" />
</a>

## ✨ Features

- 🌐 Supports multiple programming languages (JavaScript, Python, Java, .NET, Ruby, PHP, Rust, Go, Swift)
- šŸ“¦ Fetches documentation for packages by name or URL
- šŸ” Crawls documentation sites to extract comprehensive information
- šŸ“„ Extracts README, API docs, code examples, and repository info
- 🧠 Provides structured data for LLM summarization
- šŸ’¬ Includes specialized prompts for documentation analysis
- šŸ”‘ **No API key required** - works natively with Claude Desktop and Cursor IDE

## šŸš€ Installation

### Claude Desktop

1. Open Claude Desktop → Settings → Developer
2. Click "Edit Config" and add:

```json
{
  "mcpServers": {
    "docsFetcher": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "@cdugo/mcp-get-docs",
        "--config",
        "'{}'"
      ]
    }
  }
}
```

### Cursor IDE Configuration

1.  Open Cursor IDE → Settings → MCP -> Add New MCP Servier
2.  Add:

```json
    Name: docsFetcher
    Command: npx -y @smithery/cli@latest run @cdugo/mcp-get-docs --config "{}"
```

#### Prerequisites

- šŸ“‹ Node.js 18 or later

## šŸƒā€ā™‚ļø Running Locally

```bash
git clone https://github.com/cdugo/package-documentation-mcp
cd package-documentation-mcp
npm install
npm run build
```

Once installed, you can run the server locally with:

```bash
# From the project root directory
npm start
```

For development with auto-restart on file changes:

```bash
npm run dev
```

The server will start on the default port (usually 3000). You should see output like:

```
šŸš€ DocsFetcher MCP Server running!
šŸ“‹ Ready to fetch documentation
```

To specify a custom port:

```bash
PORT=8080 npm start
```

## šŸ› ļø Available Tools

1. **fetch-url-docs**: šŸ”— Fetch docs from a specific URL
2. **fetch-package-docs**: šŸ“¦ Fetch docs for a package with optional language specification
3. **fetch-library-docs**: 🧠 Smart tool that works with either package name or URL
4. **fetch-multilingual-docs**: šŸŒ Fetch docs for a package across multiple language ecosystems

## šŸ“ Available Prompts

1. **summarize-library-docs**: šŸ“š Create a comprehensive library summary
2. **explain-dependency-error**: šŸ› Generate dependency error explanations

## šŸ’” Example Queries

### Basic Library Information

- "What is Express.js and how do I use it?"
- "Tell me about the React library"
- "How do I use requests in Python?"

### Multi-language Support

- "Show me documentation for lodash in JavaScript"
- "Compare pandas in Python and data.table in R"

### Using Tools

- "@fetch-package-docs with packageName='express' and language='javascript'"
- "@fetch-package-docs with packageName='requests' and language='python'"
- "@fetch-multilingual-docs with packageName='http' and languages=['javascript', 'python', 'rust']"

### Using Prompts

- "@summarize-library-docs with libraryName='express'"
- "@explain-dependency-error with packageName='dotenv'"

## ā“ Troubleshooting

### Local Installation

- **Server not showing up**: āœ… Verify absolute path in configuration
- **Connection errors**: šŸ”„ Restart Claude Desktop or Cursor IDE
- **Fetch failures**: āš ļø Some packages may have non-standard documentation
- **Language support**: 🌐 If a language isn't working, try using the package's direct URL

## šŸ“„ License

MIT

TDQS

D1.8/5.0

Scored across 4 tools

Disambiguation3/5

The tools have overlapping purposes as they all fetch documentation, but the different targets (library, multilingual, package, URL) provide some distinction. However, without descriptions, it's unclear if 'library' and 'package' might overlap or if 'multilingual' is a subset of other categories, leading to potential confusion for agents.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with 'fetch-' prefix and hyphen-separated words (e.g., fetch-library-docs). There are no deviations in naming style, making the set predictable and easy to parse.

Tool Count4/5

With 4 tools, the count is reasonable for a documentation fetching server, suggesting a focused scope. It's slightly thin but not inadequate, as each tool appears to target a specific documentation source type.

Completeness2/5

Inferring the domain as documentation retrieval, the surface lacks obvious operations like search, update, or delete, and there's no tool for general or unspecified docs fetching. The absence of descriptions makes it hard to assess gaps fully, but the limited set suggests significant coverage issues for broader documentation workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues