/ Directory / Playground / JetBrains IDEs
● Official JetBrains ⚡ Instant

JetBrains IDEs

by JetBrains · JetBrains/mcp-jetbrains

Give your agent the same code intelligence your IntelliJ has — refactoring, find-usages, inspections, run configs.

Official JetBrains MCP proxy. Pairs with the MCP Server plugin installed in your IDE (IntelliJ, PyCharm, WebStorm, Rider, etc.). The agent sees project structure through the IDE's indexed model — not just filesystem — so refactors, find-usages, and inspections all work.

Why use it

Key features

Live Demo

What it looks like in practice

jetbrains.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "jetbrains": {
      "command": "npx",
      "args": [
        "-y",
        "@jetbrains/mcp-proxy"
      ]
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "jetbrains": {
      "command": "npx",
      "args": [
        "-y",
        "@jetbrains/mcp-proxy"
      ]
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "jetbrains": {
      "command": "npx",
      "args": [
        "-y",
        "@jetbrains/mcp-proxy"
      ]
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "jetbrains": {
      "command": "npx",
      "args": [
        "-y",
        "@jetbrains/mcp-proxy"
      ]
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "jetbrains",
      "command": "npx",
      "args": [
        "-y",
        "@jetbrains/mcp-proxy"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "jetbrains": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@jetbrains/mcp-proxy"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add jetbrains -- npx -y @jetbrains/mcp-proxy

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use JetBrains IDEs

Rename a symbol safely across the whole project

👤 Java / Kotlin / Python / C# engineers ⏱ ~10 min intermediate

When to use: You want to rename a symbol but grep-and-replace would miss string references or dynamic calls.

Prerequisites
  • MCP Server plugin installed in the IDE — plugins.jetbrains.com/plugin/26071-mcp-server — or built-in if on 2025.2+
  • Project opened and indexed in the IDE — Open the project; wait for indexing to complete (status bar)
Flow
  1. Find the symbol
    Find the definition and all usages of getCurrentUser in the project. Include test files.✓ Copied
    → IDE-accurate usage list with file:line
  2. Dry-run the rename
    Show me what renaming to getAuthenticatedUser would change. Flag any string literals or reflection-based calls I'll need to fix manually.✓ Copied
    → Preview diff + manual-fix list
  3. Apply the refactor
    Apply the rename. Then run the affected tests.✓ Copied
    → Refactor done, tests green

Outcome: A safe rename with IDE-level accuracy, covered by the IDE's existing refactoring engine.

Pitfalls
  • Reflection-based or string-built references aren't caught — After refactor, grep for the old name as a string — the IDE warns but doesn't auto-fix these
  • IDE not fully indexed, results are partial — Wait for the progress bar to clear before running; ask the IDE for index status first
Combine with: git

Run a specific test and iterate on failures

👤 Any engineer using JetBrains IDEs ⏱ ~15 min intermediate

When to use: You want the agent to write code, run the matching test, fix failures, iterate — without leaving the chat.

Prerequisites
  • Run configuration for the test exists in the IDE — Right-click test file → Run — IDE saves the config
Flow
  1. Run the specific test
    Run the CartCalculatorTest class. Return pass/fail per method with failure messages.✓ Copied
    → Structured test result
  2. Fix failures
    For each failing test, read the source, identify the bug, propose a minimal fix.✓ Copied
    → File:line + proposed change
  3. Loop
    Apply the fix and re-run until green. Don't modify tests, only production code.✓ Copied
    → All tests passing

Outcome: TDD-at-agent-speed with the IDE's compile + run infrastructure.

Pitfalls
  • Agent modifies tests to make them pass — Explicit prompt: 'do not touch test files'; review the diff before committing

Onboard to an unfamiliar codebase via IDE navigation

👤 New hires, code reviewers ⏱ ~30 min beginner

When to use: You need to understand how X is used without bouncing around 20 files manually.

Flow
  1. Start at an entrypoint
    Find the HTTP handler for POST /checkout. Show me the call hierarchy — what it calls, depth 3.✓ Copied
    → Call tree with file:line nodes
  2. Find tests
    Find all tests that exercise the checkout flow. Open each and summarize what they cover.✓ Copied
    → Test coverage map
  3. Explain the flow
    Write a 1-page explainer: endpoint → validation → payment → persistence → response. Reference files with line numbers.✓ Copied
    → Onboarding-quality explainer

Outcome: A concrete mental model of a subsystem in 30 minutes instead of a day.

Pitfalls
  • Agent invents class/method names that don't exist — Every claim must link to file:line — if it can't, it's hallucinated; call it out and re-query
Combine with: git

Combinations

Pair with other MCPs for X10 leverage

jetbrains + git

IDE-level refactor + verify commit is clean

Rename fetchUser to loadUser project-wide. Then show me the git diff — confirm tests still pass and commit.✓ Copied
jetbrains + github

Reviewing a PR with IDE navigation instead of GitHub's web UI

Check out PR #234's branch. Walk through the diff using find_usages to understand what each changed method is called from.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
get_project_structure Overview when starting in a new project free
find_usages symbol Impact analysis before changes free
search_in_files text, scope? Full-text search across project free
get_symbol_info symbol or file:line Resolve what something is free
run_configuration config_name Execute a saved run config (test, app, script) free (local)
apply_refactoring refactor type + params Rename, extract method, inline, move free
get_diagnostics file_path? Catch issues the IDE already knows about free

Cost & Limits

What this costs to run

API quota
None — local IDE
Tokens per call
Call hierarchies can be large; limit depth explicitly
Monetary
Free — MCP is free; you need a JetBrains license anyway
Tip
Rely on IDE operations (find_usages, refactor) over raw filesystem reads — cheaper tokens and more accurate

Security

Permissions, secrets, blast radius

Credential storage: None — local IDE
Data egress: None to JetBrains; MCP is localhost-only between IDE and client

Troubleshooting

Common errors and fixes

Connection refused / MCP can't reach IDE

The IDE must be open with the plugin enabled. Check Settings → Tools → MCP Server; port is usually 63342 or auto-assigned.

Verify: curl http://localhost:63342/api/mcp
Tools return 'Project not found'

No project open in the IDE, or multiple projects open and agent is asking about the wrong one. Focus the correct window.

Refactor reports files changed but they look the same

IDE buffers aren't saved to disk yet. Call a 'save all' tool or Cmd+S in the IDE.

find_usages misses references

Indexing hasn't completed. Wait for the IDE status bar to show 'Indexing complete'.

Alternatives

JetBrains IDEs vs others

AlternativeWhen to use it insteadTradeoff
VSCode MCP (various community)You're on VSCode instead of JetBrainsDifferent IDE, different ecosystem — not a direct swap
language-server MCPsYou want IDE-agnostic code intelligence via LSPLSP gives basic symbol info but not refactoring or run configs

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills