@dachibob/mcp-proxy
v1.31.0
Published
A MCP proxy to redirect requests to JetBrains IDEs
Downloads
85
Readme
@dachibao/mcp-proxy
The server proxies requests from client to JetBrains IDE.
Features
- Automatic IDE Discovery: Automatically finds and connects to running JetBrains IDEs
- Multi-IDE Support: Supports multiple IDE instances simultaneously
- Multi-Project Support: Execute operations across different projects concurrently
- Async Run Configurations: Start long-running processes and monitor them in real-time (v1.31+)
- Smart Configuration: Use
mcp-infocommand to automatically generate configuration - Version Management: Synced with Git tags for consistent versioning
Quick Setup
1. Install MCP Server plugin
https://plugins.jetbrains.com/plugin/26071-mcp-server
2. Auto-discover your IDEs
npx @dachibao/mcp-proxy mcp-infoThis will scan for running JetBrains IDEs and provide ready-to-use configuration commands.
3. Add to Claude Desktop
Run the generated commands from step 2, for example:
claude mcp add "webstorm-my-project" "npx" "@dachibao/mcp-proxy" -e "IDE_PORT=63342"VS Code Installation
For one-click installation, click one of the install buttons below:
Manual Installation
Add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing Ctrl + Shift + P and typing Preferences: Open User Settings (JSON).
{
"mcp": {
"servers": {
"dachibao": {
"command": "npx",
"args": ["-y", "@dachibao/mcp-proxy"]
}
}
}
}Optionally, you can add it to a file called .vscode/mcp.json in your workspace:
{
"servers": {
"dachibao": {
"command": "npx",
"args": ["-y", "@dachibao/mcp-proxy"]
}
}
}Usage with Claude Desktop
To use this with Claude Desktop, add the following to your claude_desktop_config.json.
The full path on MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json, on Windows: %APPDATA%/Claude/claude_desktop_config.json.
{
"mcpServers": {
"dachibao": {
"command": "npx",
"args": ["-y", "@dachibao/mcp-proxy"]
}
}
}After installing the MCP Server Plugin, and adding the JSON to the config file, restart Claude Desktop, and make sure the Jetbrains product is open before restarting Claude Desktop.
Multi-Project Support
Overview
Starting from MCP Server Plugin v1.29+, all project-specific APIs require a projectName parameter to specify which project to operate on. This enables true multi-project concurrent operations.
API Changes
- Public APIs: 3 APIs (
get_all_open_projects,list_tools,get_dispatcher_status) work globally withoutprojectName - Project-Specific APIs: 33+ APIs now require
projectNameparameter for project targeting
Example Usage
Before (Single Project)
{
"pathInProject": "src/main.kt"
}After (Multi-Project)
{
"pathInProject": "src/main.kt",
"projectName": "my-kotlin-project"
}Discovering Projects
Use the get_all_open_projects API to discover available projects:
{
"tool": "get_all_open_projects"
}Returns:
{
"projects": [
{
"name": "my-kotlin-project",
"path": "/path/to/project",
"modules": ["main", "test"]
},
{
"name": "another-project",
"path": "/path/to/another",
"modules": ["app", "core"]
}
]
}Common Operations with Project Names
File Operations
💡 Performance Tip: For local development, consider using direct file system operations instead of MCP APIs for file operations when possible. This provides better performance for large files or bulk operations.
// Read file from specific project
{
"tool": "get_file_text_by_path",
"pathInProject": "src/Example.kt",
"projectName": "my-kotlin-project"
}
// Create file in specific project
{
"tool": "create_new_file_with_text",
"pathInProject": "src/NewClass.kt",
"text": "class NewClass { }",
"projectName": "my-kotlin-project"
}Terminal Operations
// Execute command in specific project
{
"tool": "execute_terminal_command",
"command": "gradle build",
"projectName": "my-kotlin-project"
}Search Operations
// Search in specific project
{
"tool": "search_in_files_content",
"searchText": "TODO",
"projectName": "my-kotlin-project"
}Async Run Configuration Operations (v1.31+)
// Start a run configuration and get processId immediately
{
"tool": "run_configuration",
"configName": "Application",
"projectName": "my-kotlin-project"
}
// Monitor process output and status by processId
{
"tool": "get_configuration_process_content",
"processId": "1704398400123",
"projectName": "my-kotlin-project"
}Benefits of Async Run Configurations:
- Non-blocking: Start long-running processes without waiting for completion
- Real-time monitoring: Check process output and status at any time
- Concurrent execution: Run multiple configurations simultaneously across projects
- Process lifecycle management: Track process status, exit codes, and output
Benefits
- Concurrent Operations: Work on multiple projects simultaneously
- Project Isolation: Operations are isolated to the specified project context
- Clear Targeting: Explicit project specification prevents accidental operations on wrong projects
Configuration
If you're running multiple IDEs with MCP server and want to connect to the specific one, add to the MCP server configuration:
"env": {
"IDE_PORT": "<port of IDE's built-in webserver>"
}By default, we connect to IDE on 127.0.0.1 but you can specify a different address/host:
"env": {
"HOST": "<host/address of IDE's built-in webserver>"
}To enable logging add:
"env": {
"LOG_ENABLED": "true"
}Troubleshooting
Node.js Version Requirements
Problem: Error message: Cannot find module 'node:path'
Solution:
MCP Proxy doesn't work on Node 16.
Upgrade your Node.js installation to version 18 or later. Make sure that command in config points to the correct Node.js version.
Try to use the full path to the latest version of NodeJS.
MacOS: Plugin Unable to Detect Node.js Installed via nvm
Problem: On MacOS, if you have Node.js installed through nvm (Node Version Manager), the MCP Server Plugin might be unable to detect your Node.js installation.
Solution: Create a symbolic link in /usr/local/bin pointing to your nvm npx executable:
which npx &>/dev/null && sudo ln -sf "$(which npx)" /usr/local/bin/npxThis one-liner checks if npx exists in your path and creates the necessary symbolic link with proper permissions.
Using MCP with External Clients or Docker Containers (LibreChat, Cline, etc.)
Problem: When attempting to connect to the JetBrains MCP proxy from external clients, Docker containers, or third-party applications (like LibreChat), requests to endpoints such as http://host.docker.internal:6365/api/mcp/list_tools may return 404 errors or fail to connect. Solution: There are two key issues to address:
- Enable External Connections:
In your JetBrains IDE, enable "Can accept external connections" in the Settings | Build, Execution, Deployment | Debugger.
- Configure with LAN IP and Port:
Use your machine's LAN IP address instead of host.docker.internal
Explicitly set the IDE_PORT and HOST in your configuration
Example configuration for LibreChat or similar external clients:
mcpServers:
intellij:
type: stdio
command: sh
args:
- "-c"
- "IDE_PORT=YOUR_IDEA_PORT HOST=YOUR_IDEA_LAN_IP npx -y @dachibao/mcp-proxy"Replace:
YOUR_IDEA_PORT with your IDE's debug port (found in IDE settings)
YOUR_IDEA_LAN_IP with your computer's local network IP (e.g., 192.168.0.12)
How to build
- Tested on macOS
brew install node pnpm- Run
pnpm buildto build the project
