MCP DeepWiki Server
Provides real repository search capabilities using GitHub's search API with features for advanced filtering, rich metadata retrieval, and intelligent handling of API rate limits.
Allows retrieval and AI-powered summarization of NumPy documentation, as shown in the usage examples.
Enables fetching comprehensive documentation for React repositories, as demonstrated in the usage examples.
Supports fetching documentation for scikit-learn as part of its repository search capabilities, referenced in the example results.
Enables access to TensorFlow documentation through repository search, mentioned specifically in the example results.
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., "@MCP DeepWiki Serversearch for React documentation"
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.
MCP DeepWiki Server - Production Ready
A fully functional Model Context Protocol (MCP) server for DeepWiki integration with real GitHub search capabilities. This server provides comprehensive repository search and documentation fetching optimized for Claude Desktop.
🚀 Key Features
✅ Real Repository Search
GitHub Integration: Uses GitHub's search API for real repository results
Advanced Filtering: Search by language, topics, stars, and more
Rich Metadata: Comprehensive repository information including stars, forks, license, topics
Rate Limiting: Intelligent handling of GitHub API limits with token support
✅ DeepWiki Documentation Fetching
Multi-mode Content: Aggregate, pages, and structured content retrieval
Loading Detection: Automatically detects and retries when content is still generating
Content Validation: Ensures substantial content before returning results
Fallback Mechanisms: GitHub API fallback when DeepWiki is unavailable
✅ Claude Desktop Optimized
45-second timeout (configurable via
MCP_TIMEOUT)Content size limits (500KB max for Claude Desktop compatibility)
Exponential backoff retry mechanism
Progress reporting for long-running operations
Related MCP server: GitHub MCP Server
Installation & Setup
Prerequisites
Node.js 18+
GitHub Personal Access Token (for search functionality)
1. Clone and Install
git clone <repository-url>
cd mcp-deepwiki-server
npm install
npm run build2. Environment Configuration
# Copy example environment file
cp .env.example .env
# Edit .env and add your GitHub token
GITHUB_TOKEN=your_github_personal_access_token_hereGet GitHub Token:
Click "Generate new token (classic)"
Select scope:
public_repo(for public repositories)Copy the generated token to your
.envfile
3. Claude Desktop Configuration
Add to your Claude Desktop config file:
{
"mcpServers": {
"deepwiki": {
"command": "node",
"args": [
"/path/to/mcp-deepwiki-server/dist/index.js"
],
"env": {
"GITHUB_TOKEN": "your_github_token_here",
"MCP_TIMEOUT": "45000",
"LOG_LEVEL": "info"
}
}
}
}Usage Examples
Repository Search
Search for Python machine learning repositories with the deepwiki_search toolExample Result:
Real repositories like
scikit-learn/scikit-learn,tensorflow/tensorflowRich metadata: stars, forks, topics, license information
DeepWiki URLs for documentation access
Documentation Fetching
Use deepwiki_fetch to get comprehensive documentation for facebook/reactAI-Powered Summaries
Generate a technical summary of the numpy documentation using deepwiki_summarizeAPI Reference
deepwiki_search
Search for GitHub repositories with DeepWiki documentation.
Parameters:
query(string, required): Search querylanguage(string, optional): Filter by programming languagetopics(array, optional): Filter by repository topicslimit(number, optional): Maximum results (default: 10, max: 50)
Example:
{
"name": "deepwiki_search",
"arguments": {
"query": "web framework",
"language": "JavaScript",
"topics": ["react", "frontend"],
"limit": 5
}
}deepwiki_fetch
Retrieve repository documentation from DeepWiki.
Parameters:
url(string, required): DeepWiki URL or owner/repo formatmode(enum, optional): 'aggregate', 'pages', or 'structured'maxDepth(number, optional): Maximum crawling depthincludeMetadata(boolean, optional): Include repository metadatacontentFilter(enum, optional): 'all', 'documentation', 'code', 'examples'
deepwiki_summarize
Generate AI-powered summaries of repository documentation.
Parameters:
url(string, required): Repository URLsummaryType(enum, optional): 'overview', 'technical', 'quickstart', 'api'maxLength(number, optional): Maximum summary length in words
Rate Limits & Performance
GitHub API Limits
Without Token: 60 requests/hour
With Token: 5,000 requests/hour
Automatic Handling: Exponential backoff and meaningful error messages
Performance Optimization
Content Caching: Reduces API calls for repeated requests
Size Limits: 500KB max content for Claude Desktop compatibility
Timeout Management: 45-second default timeout with configurable limits
Testing
Run All Tests
npm testUnit Tests Only
npm run test:unitIntegration Tests (requires GitHub token)
GITHUB_TOKEN=your_token npm run test:integrationTest Coverage
npm run test:coverageTroubleshooting
Common Issues
"Repository search failed" Error
Cause: Missing or invalid GitHub token
Solution: Add valid
GITHUB_TOKENto environment variablesCheck: Verify token has
public_reposcope
"GitHub API rate limit exceeded"
Cause: Too many requests without token or token quota exhausted
Solution: Add GitHub token or wait for rate limit reset
Prevention: Use caching and avoid rapid successive requests
"No repositories found"
Cause: Search query too specific or no matching repositories
Solution: Try broader search terms or remove filters
"DeepWiki content not ready"
Cause: Repository documentation still being generated
Solution: Wait a few minutes and retry, or use GitHub fallback
Debug Mode
LOG_LEVEL=debug npm startHealth Check
# Test basic functionality
npm run test:unit
# Test GitHub integration
GITHUB_TOKEN=your_token npm run test:integrationArchitecture
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Claude │ │ MCP DeepWiki │ │ GitHub API │
│ Desktop │◄──►│ Server │◄──►│ (Search) │
│ │ │ │ │ │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ DeepWiki │
│ (Documentation) │
└─────────────────┘Development
Setup Development Environment
# Install dependencies
npm install
# Run in development mode
npm run dev
# Lint code
npm run lint
# Fix linting issues
npm run lint:fixBuild for Production
npm run build
npm startEnvironment Variables
Variable | Required | Description |
| Yes | GitHub Personal Access Token for search |
| No | Request timeout in milliseconds (default: 45000) |
| No | Logging level: error, warn, info, debug |
| No | Maximum search results per query (default: 50) |
| No | HTTP request timeout (default: 30000) |
Contributing
Fork the repository
Create a feature branch:
git checkout -b feature/your-featureMake your changes
Run tests:
npm testCommit changes:
git commit -am 'Add your feature'Push to branch:
git push origin feature/your-featureSubmit a pull request
License
MIT License - see LICENSE file for details.
Support
Documentation: Check this README and inline code comments
Issues: Open an issue on GitHub with detailed error messages
Testing: Use
npm run test:unitfor quick validationLogs: Set
LOG_LEVEL=debugfor detailed debugging information
Available Tools
3 toolsdeepwiki_fetchDeepWiki Documentation FetcherC
Retrieves GitHub repository documentation from DeepWiki with enhanced content organization and filtering capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| contentFilter | No | Filter content by type (default: 'all') | |
| includeMetadata | No | Include repository metadata in output (default: false) | |
| maxDepth | No | Maximum depth for crawling pages (default: 10) | |
| mode | No | Output mode: 'aggregate' (combined content), 'pages' (JSON list), 'structured' (organized by content type) | |
| url | Yes | DeepWiki URL or GitHub repository identifier (e.g., 'https://deepwiki.com/owner/repo' or 'owner/repo') |
TDQS
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 'enhanced content organization and filtering capabilities' but lacks details on critical behaviors such as rate limits, authentication requirements, error handling, or what 'enhanced' entails. For a tool with 5 parameters and no annotations, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It avoids redundancy and waste, though it could be slightly more structured by explicitly separating purpose from capabilities. Overall, it's appropriately concise for the tool's complexity.
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?
Given the tool's complexity (5 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain the return format, error conditions, or how 'enhanced' features work, leaving gaps for the agent. With no output schema and minimal behavioral context, it fails to provide sufficient information for reliable tool 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 schema description coverage is 100%, providing detailed descriptions for all parameters. The description adds minimal value beyond the schema, mentioning 'filtering capabilities' which loosely relates to parameters like contentFilter and mode, but doesn't elaborate on their semantics or interactions. Baseline 3 is appropriate as the schema handles most 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 clearly states the tool's purpose with a specific verb ('Retrieves') and resource ('GitHub repository documentation from DeepWiki'), and mentions enhanced capabilities. However, it doesn't explicitly differentiate from sibling tools like deepwiki_search or deepwiki_summarize, which likely have different retrieval or processing approaches.
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 no guidance on when to use this tool versus its siblings (deepwiki_search, deepwiki_summarize). It mentions 'enhanced content organization and filtering capabilities' but doesn't specify what makes it preferable or when alternatives should be considered, leaving the agent without clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deepwiki_searchDeepWiki Repository SearchC
Search for GitHub repositories with documentation available on DeepWiki. Supports filtering by programming language and topics.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Filter by programming language (e.g., 'Python', 'JavaScript', 'Go') | |
| limit | No | Maximum number of results to return (default: 10, max: 50) | |
| query | Yes | Search query for repositories (e.g., 'machine learning', 'web framework', 'database') | |
| topics | No | Filter by repository topics/tags (e.g., ['python', 'api', 'web']) |
TDQS
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 describes the search functionality and filtering options but lacks critical behavioral details such as rate limits, authentication requirements, pagination behavior, or what the output looks like (since there's no output schema). This leaves significant gaps for an agent to understand how to interact with the tool effectively.
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, efficient sentence that directly states the tool's purpose and key features (searching GitHub repositories with DeepWiki documentation, filtering by language and topics). It's front-loaded with essential information and contains no redundant or unnecessary details.
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?
Given the complexity of a search tool with 4 parameters, no annotations, and no output schema, the description is insufficient. It lacks details on behavioral aspects (e.g., rate limits, auth), output format, error handling, and differentiation from sibling tools. While the schema covers parameters well, the overall context for an agent to use the tool correctly is incomplete.
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 description mentions filtering by programming language and topics, which aligns with the 'language' and 'topics' parameters in the schema. However, schema description coverage is 100%, meaning all parameters are already documented in the schema. The description adds minimal value beyond the schema, such as hinting at example values, but doesn't provide deeper semantic context or usage examples that aren't already covered.
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 clearly states the tool searches for GitHub repositories with DeepWiki documentation, specifying the action (search) and resource (repositories). It mentions filtering capabilities (programming language, topics) which adds specificity. However, it doesn't explicitly differentiate from sibling tools like deepwiki_fetch or deepwiki_summarize, which would be needed for 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.
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 its siblings (deepwiki_fetch, deepwiki_summarize). It mentions filtering capabilities but doesn't specify scenarios where this search is preferred over alternatives or any prerequisites. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deepwiki_summarizeDeepWiki Documentation SummarizerB
Generates AI-powered summaries of GitHub repository documentation with different focus types (overview, technical, quickstart, api).
| Name | Required | Description | Default |
|---|---|---|---|
| maxLength | No | Maximum length of summary in words (default: 1000) | |
| summaryType | No | Type of summary: overview (default), technical, quickstart, or api | |
| url | Yes | DeepWiki URL or GitHub repository identifier (e.g., 'https://deepwiki.com/owner/repo' or 'owner/repo') |
TDQS
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 AI-powered summarization but does not disclose details like rate limits, authentication needs, output format, or error handling. This is a significant gap for a tool with no annotation coverage.
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, efficient sentence that front-loads the core purpose and key features (AI-powered summaries, focus types). Every word earns its place with no redundancy or unnecessary details.
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?
Given the complexity of AI-powered summarization, no annotations, and no output schema, the description is incomplete. It lacks information on behavioral traits (e.g., processing time, limitations), output format, and error cases, making it inadequate for a tool with three parameters and no structured support.
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 parameters like 'url', 'summaryType', and 'maxLength'. The description adds minimal value by mentioning 'different focus types' which aligns with the 'summaryType' enum, but does not provide additional semantics beyond what the schema already covers.
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 clearly states the action ('Generates AI-powered summaries'), resource ('GitHub repository documentation'), and scope ('with different focus types'), distinguishing it from siblings like 'deepwiki_fetch' and 'deepwiki_search' which likely retrieve or search documentation rather than summarize it.
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 implies usage for summarizing documentation with specific focus types but does not explicitly state when to use this tool versus alternatives like 'deepwiki_fetch' or 'deepwiki_search', nor does it mention prerequisites or exclusions. The context is clear but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: fetch retrieves documentation, search finds repositories, and summarize generates AI summaries. There is no overlap in functionality, making tool selection straightforward for an agent.
All tools follow a consistent 'deepwiki_' prefix with descriptive action suffixes (fetch, search, summarize). This uniform naming pattern enhances predictability and readability.
Three tools is appropriate for a focused documentation server, covering core operations. It might be slightly lean, but each tool serves a distinct, valuable purpose without redundancy.
The tools cover key workflows: searching for repositories, fetching documentation, and summarizing content. Minor gaps may exist, such as advanced filtering or update operations, but the core domain is well-covered for typical agent tasks.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
An MCP server that gives your AI access to the source code and docs of all public github repos
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA server that allows AI assistants to browse and read files from specified GitHub repositories, providing access to repository contents via the Model Context Protocol.6MIT
- FlicenseBqualityDmaintenanceA Model Context Protocol server that enables AI models to interact with GitHub's API, allowing for repository creation and management with descriptions, topics, and website URLs through natural language commands.11
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI assistants like Claude to interact with GitHub repositories, issues, and pull requests.17MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI assistants to perform GitHub operations including repository management, file operations, issue tracking, and pull request creation.2
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/LoganZechella/mcp-deepwiki-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server