Skip to main content
Glama

Deepwiki MCP Server

⚠️ IMPORTANT NOTICE: This server is currently not working since DeepWiki has cut off the possibility to scrape it. We recommend using the official DeepWiki MCP server at https://docs.devin.ai/work-with-devin/deepwiki-mcp for the time being.

This is an unofficial Deepwiki MCP Server

It takes a Deepwiki URL via MCP, crawls all relevant pages, converts them to Markdown, and returns either one document or a list by page.

基于原项目: 此项目基于 deepwiki-mcp 修改而来

Features

  • 🔒 Domain Safety: Only processes URLs from deepwiki.com

  • 🧹 HTML Sanitization: Strips headers, footers, navigation, scripts, and ads

  • 🔗 Link Rewriting: Adjusts links to work in Markdown

  • 📄 Multiple Output Formats: Get one document or structured pages

  • 🚀 Performance: Fast crawling with adjustable concurrency and depth

  • NLP: It's to search just for the library name

Related MCP server: Deepwiki MCP Server

Usage

Prompts you can use:

deepwiki fetch how can i use gpt-image-1 with "vercel ai" sdk
deepwiki fetch how can i create new blocks in shadcn?
deepwiki fetch i want to understand how X works

Fetch complete Documentation (Default)

use deepwiki https://deepwiki.com/shadcn-ui/ui
use deepwiki multiple pages https://deepwiki.com/shadcn-ui/ui

Single Page

use deepwiki fetch single page https://deepwiki.com/tailwindlabs/tailwindcss/2.2-theme-system

Get by shortform

use deepwiki fetch tailwindlabs/tailwindcss
deepwiki fetch library

deepwiki fetch url
deepwiki fetch <name>/<repo>

deepwiki multiple pages ...
deepwiki single page url ...

Cursor

Add this to .cursor/mcp.json file.

{
  "mcpServers": {
    "mcp-deepwiki": {
      "command": "npx",
      "args": ["-y", "@bachstudio/mcp-deepwiki@latest"]
    }
  }
}

Deepwiki Logo

MCP Tool Integration

The package registers a tool named deepwiki_fetch that you can use with any MCP-compatible client:

{
  "action": "deepwiki_fetch",
  "params": {
    "url": "https://deepwiki.com/user/repo",
    "mode": "aggregate",
    "maxDepth": "1"
  }
}

Parameters

  • url (required): The starting URL of the Deepwiki repository

  • mode (optional): Output mode, either "aggregate" for a single Markdown document (default) or "pages" for structured page data

  • maxDepth (optional): Maximum depth of pages to crawl (default: 10)

Response Format

Success Response (Aggregate Mode)

{
  "status": "ok",
  "data": "# Page Title\n\nPage content...\n\n---\n\n# Another Page\n\nMore content...",
  "totalPages": 5,
  "totalBytes": 25000,
  "elapsedMs": 1200
}

Success Response (Pages Mode)

{
  "status": "ok",
  "data": [
    {
      "path": "index",
      "markdown": "# Home Page\n\nWelcome to the repository."
    },
    {
      "path": "section/page1",
      "markdown": "# First Page\n\nThis is the first page content."
    }
  ],
  "totalPages": 2,
  "totalBytes": 12000,
  "elapsedMs": 800
}

Error Response

{
  "status": "error",
  "code": "DOMAIN_NOT_ALLOWED",
  "message": "Only deepwiki.com domains are allowed"
}

Partial Success Response

{
  "status": "partial",
  "data": "# Page Title\n\nPage content...",
  "errors": [
    {
      "url": "https://deepwiki.com/user/repo/page2",
      "reason": "HTTP error: 404"
    }
  ],
  "totalPages": 1,
  "totalBytes": 5000,
  "elapsedMs": 950
}

Progress Events

When using the tool, you'll receive progress events during crawling:

Fetched https://deepwiki.com/user/repo: 12500 bytes in 450ms (status: 200)
Fetched https://deepwiki.com/user/repo/page1: 8750 bytes in 320ms (status: 200)
Fetched https://deepwiki.com/user/repo/page2: 6200 bytes in 280ms (status: 200)

Local Development - Installation

Local Usage

{
  "mcpServers": {
    "mcp-deepwiki": {
      "command": "node",
      "args": ["./bin/cli.mjs"]
    }
  }
}

From Source

# Clone the repository
git clone https://github.com/BACH-AI-Tools/deepwiki-mcp.git
cd deepwiki-mcp

# Install dependencies
npm install

# Build the package
npm run build

Direct API Calls

For HTTP transport, you can make direct API calls:

curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "id": "req-1",
    "action": "deepwiki_fetch",
    "params": {
      "url": "https://deepwiki.com/user/repo",
      "mode": "aggregate"
    }
  }'

Configuration

Environment Variables

  • DEEPWIKI_MAX_CONCURRENCY: Maximum concurrent requests (default: 5)

  • DEEPWIKI_REQUEST_TIMEOUT: Request timeout in milliseconds (default: 30000)

  • DEEPWIKI_MAX_RETRIES: Maximum retry attempts for failed requests (default: 3)

  • DEEPWIKI_RETRY_DELAY: Base delay for retry backoff in milliseconds (default: 250)

To configure these, create a .env file in the project root:

DEEPWIKI_MAX_CONCURRENCY=10
DEEPWIKI_REQUEST_TIMEOUT=60000
DEEPWIKI_MAX_RETRIES=5
DEEPWIKI_RETRY_DELAY=500

Docker Deployment (Untested)

Build and run the Docker image:

# Build the image
docker build -t mcp-deepwiki .

# Run with stdio transport (for development)
docker run -it --rm mcp-deepwiki

# Run with HTTP transport (for production)
docker run -d -p 3000:3000 mcp-deepwiki --http --port 3000

# Run with environment variables
docker run -d -p 3000:3000 \
  -e DEEPWIKI_MAX_CONCURRENCY=10 \
  -e DEEPWIKI_REQUEST_TIMEOUT=60000 \
  mcp-deepwiki --http --port 3000

Development

# Install dependencies
pnpm install

# Run in development mode with stdio
pnpm run dev-stdio

# Run tests
pnpm test

# Run linter
pnpm run lint

# Build the package
pnpm run build

Troubleshooting

Common Issues

  1. Permission Denied: If you get EACCES errors when running the CLI, make sure to make the binary executable:

    chmod +x ./node_modules/.bin/mcp-deepwiki
  2. Connection Refused: Make sure the port is available and not blocked by a firewall:

    # Check if port is in use
    lsof -i :3000
  3. Timeout Errors: For large repositories, consider increasing the timeout and concurrency:

    DEEPWIKI_REQUEST_TIMEOUT=60000 DEEPWIKI_MAX_CONCURRENCY=10 npx mcp-deepwiki

Contributing

We welcome contributions! Please see CONTRIBUTING.md for details.

License

MIT

Courses

See my other projects:

  • AI Prompts - Curated AI Prompts for Cursor AI, Cline, Windsurf and Github Copilot

  • codefetch - Turn code into Markdown for LLMs with one simple terminal command

  • aidex A CLI tool that provides detailed information about AI language models, helping developers choose the right model for their needs.# tool-starter

Available Tools

1 tool
deepwiki_fetchC

Fetch a deepwiki.com repo and return Markdown

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesshould be a URL, owner/repo name (e.g. "vercel/ai"), a two-word "owner repo" form (e.g. "vercel ai"), or a single library keyword
maxDepthNoCan fetch a single site => maxDepth 0 or multiple/all sites => maxDepth 1
modeNoaggregate
verboseNo

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 mentions fetching and returning Markdown but doesn't describe what 'fetching' entails (e.g., network operations, potential errors, rate limits, authentication needs, or what happens if the repo doesn't exist). This leaves significant gaps in understanding the tool's behavior.

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 (6 words) and front-loaded with the core functionality. Every word earns its place, with no redundant information or unnecessary elaboration.

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?

For a tool with 4 parameters, 50% schema coverage, no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns beyond 'Markdown' format, doesn't cover error conditions, and provides minimal context about the fetching operation. The agent would struggle to use this tool effectively without additional information.

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 50%, with the 'url' parameter well-described but others lacking context. The description doesn't add meaningful semantic information about parameters beyond what's in the schema (e.g., it doesn't explain what 'aggregate' vs 'pages' modes mean or when to use 'verbose'). It partially compensates by implying the tool fetches repos, but doesn't clarify parameter interactions.

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 ('fetch') and resource ('deepwiki.com repo'), and specifies the output format ('return Markdown'). However, without sibling tools for comparison, it's impossible to determine if it distinguishes from alternatives, so it cannot earn a 5.

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, prerequisites, or typical use cases. It lacks any contextual framing that would help an agent decide when this tool is appropriate.

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

TDQS

B3/5.0
Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap with other tools. The tool's purpose is clearly distinct by default.

Naming Consistency5/5

The single tool name follows a consistent verb_noun pattern (deepwiki_fetch), and with no other tools to compare, there is no inconsistency in naming conventions.

Tool Count2/5

One tool is too few for a server with the apparent purpose of fetching and processing DeepWiki repos, as it lacks operations like search, list, or update, making the scope feel thin and incomplete.

Completeness1/5

The tool surface is severely incomplete for a DeepWiki server; it only provides a fetch operation without any CRUD lifecycle coverage, search capabilities, or other essential functions for repo management.

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
    B
    quality
    F
    maintenance
    Automatically crawls documentation websites, converts them to organized markdown files, and generates condensed cheat sheets. Intelligently categorizes content into tools/APIs and provides local-first access to downloaded documentation.
    3
    GPL 3.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables crawling and extracting clean content from documentation websites with optional LLM-powered analysis for intelligent summaries, code example extraction, and content classification.

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/BACH-AI-Tools/deepwiki-mcp'

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