DeepWiki OMNeT++ MCP Server
by tabgab
README.md
# DeepWiki OMNeT++ MCP Server
A custom MCP (Model Context Protocol) server that queries multiple repositories on DeepWiki, providing comprehensive answers about OMNeT++ and INET Framework development.
## β¨ Features
This MCP server provides three powerful tools for OMNeT++ and INET documentation:
1. **omnetpp_ask_question** - Ask natural language questions about OMNeT++ and INET
- Searches across **multiple repositories simultaneously**
- Returns merged results with clear source attribution
2. **omnetpp_read_wiki_structure** - Retrieve the complete documentation structure
- Gets wiki topics from all configured repositories
3. **omnetpp_read_wiki_contents** - Fetch detailed contents for specific topics
- Queries all repositories for comprehensive coverage
### π― Multi-Repository Support
The server now queries **both repositories in parallel**:
- `omnetpp/omnetpp` - OMNeT++ simulation framework
- `inet-framework/inet` - INET Framework for network simulations
Results are merged with clear headers showing which repository provided each answer. See [MULTI_REPO_SETUP.md](MULTI_REPO_SETUP.md) for details.
## Installation
1. Install dependencies:
```bash
npm install
```
2. Build the project:
```bash
npm run build
```
The compiled server will be in the `dist/` directory.
## Configuration
Configure the MCP server based on your IDE/client:
### For Cline (VS Code Extension) β RECOMMENDED
1. Open VS Code Command Palette (`Cmd+Shift+P` on macOS, `Ctrl+Shift+P` on Windows/Linux)
2. Type "Preferences: Open User Settings (JSON)"
3. Or directly edit:
- **macOS**: `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`
- **Windows**: `%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json`
- **Linux**: `~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`
4. Add this configuration (replace the path with your actual project location):
```json
{
"mcpServers": {
"deepwiki-omnetpp": {
"command": "node",
"args": [
"/absolute/path/to/MCP4omnetpp/dist/index.js"
],
"disabled": false,
"autoApprove": []
}
}
}
```
5. **Reload VS Code**: `Cmd+Shift+P` β "Developer: Reload Window"
### For Windsurf IDE
1. Open Windsurf settings
2. Navigate to MCP Servers configuration
3. Add a new server with:
- **Name**: `deepwiki-omnetpp`
- **Command**: `node`
- **Args**: `["/absolute/path/to/MCP4omnetpp/dist/index.js"]`
4. Restart Windsurf
### For Claude Desktop
**macOS**: Edit `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: Edit `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"deepwiki-omnetpp": {
"command": "node",
"args": [
"/absolute/path/to/MCP4omnetpp/dist/index.js"
]
}
}
}
```
Restart Claude Desktop after saving.
### For Cursor IDE
1. Open Cursor Settings
2. Navigate to Extensions β MCP Configuration
3. Add the server configuration:
```json
{
"deepwiki-omnetpp": {
"command": "node",
"args": ["/absolute/path/to/MCP4omnetpp/dist/index.js"]
}
}
```
4. Restart Cursor
### For Zed Editor
Edit your Zed configuration file and add:
```json
{
"context_servers": {
"deepwiki-omnetpp": {
"command": "node",
"args": ["/absolute/path/to/MCP4omnetpp/dist/index.js"]
}
}
}
```
### Important Notes
- **Replace `/absolute/path/to/MCP4omnetpp/`** with the actual absolute path to your project
- On **Windows**, use double backslashes: `C:\\Users\\YourName\\MCP4omnetpp\\dist\\index.js`
- Ensure **Node.js is installed** and accessible in your PATH
- After configuration changes, **always restart/reload** your IDE/client
### Verifying Installation
After reloading, check that the tools are available:
1. Look for these tools in your MCP client:
- `omnetpp_ask_question`
- `omnetpp_read_wiki_structure`
- `omnetpp_read_wiki_contents`
2. Test with a simple query:
```
Use tool: omnetpp_read_wiki_structure
```
## Usage
Once configured, you'll have access to these tools in your MCP client:
### Ask a Question
```
Use tool: omnetpp_ask_question
Parameters: { "question": "How do I create a simple network in OMNeT++?" }
```
### Get Wiki Structure
```
Use tool: omnetpp_read_wiki_structure
Parameters: {}
```
### Read Wiki Contents
```
Use tool: omnetpp_read_wiki_contents
Parameters: { "topic": "getting-started" }
```
## How It Works
This server acts as an intelligent proxy with multi-repository support:
1. **Receives tool calls** from MCP clients (Claude, Cline, Windsurf, etc.)
2. **Queries multiple repositories in parallel**:
- `omnetpp/omnetpp` (OMNeT++ core framework)
- `inet-framework/inet` (INET network simulation)
3. **Connects to DeepWiki API** via Streamable HTTP transport
4. **Merges results** from all repositories with clear attribution
5. **Returns comprehensive answers** combining insights from both sources
### Architecture
```
βββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β MCP Client β stdio β This MCP Proxy β HTTP β DeepWiki API β
β (Cline/etc) ββββββββββΆβ (Multi-Repo) ββββββββββΆβ (Public) β
βββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β
βββΆ Query: omnetpp/omnetpp
βββΆ Query: inet-framework/inet
(Parallel)
```
### Benefits
β
**No manual repository specification** - Automatically queries relevant repos
β
**Comprehensive answers** - Get information from both OMNeT++ and INET
β
**Fast parallel queries** - All repositories queried simultaneously
β
**Fault tolerant** - One repo failing doesn't break the entire query
β
**Clear source attribution** - Know which repo provided each answer
See [MULTI_REPO_SETUP.md](MULTI_REPO_SETUP.md) for more details on adding repositories.
## Development
- **Source**: `src/index.ts`
- **Build**: `npm run build`
- **Output**: `dist/index.js`
## Technical Details
- Built with the official `@modelcontextprotocol/sdk` (v1.25.3)
- Uses JSON Schema for tool definitions (compatible with all MCP clients)
- Uses **Streamable HTTP transport** to connect to DeepWiki
- Proxies requests to `https://mcp.deepwiki.com/mcp`
- **Multi-repository querying**: Queries multiple repos in parallel using `Promise.allSettled()`
- **Current repositories**: `omnetpp/omnetpp` and `inet-framework/inet`
- **Fault tolerant**: Failed queries don't break the entire response
- **Result merging**: Combines answers with clear repository headers
- **Note**: SSE transport was deprecated by DeepWiki in January 2026
### Adding More Repositories
Edit `src/index.ts` and modify the `REPOS` array:
```typescript
const REPOS = [
"omnetpp/omnetpp",
"inet-framework/inet",
"your-org/your-repo" // Add more here
];
```
Then rebuild with `npm run build` and reload your MCP client.
## Troubleshooting
### Server Not Starting
- Ensure Node.js is installed and accessible
- Check that the path in the configuration points to the correct `dist/index.js` file
- Verify the build completed successfully
### No Tools Available
- Restart your MCP client (Claude Desktop or VSCode with Cline)
- Check the MCP client logs for connection errors
### API Errors
- The DeepWiki API must be accessible
- Check your internet connection
- Verify the official DeepWiki MCP service is operational
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues