https://github.com/josedacosta/mcp-jetbrains-code-inspections
MCP server for JetBrains IDE code inspections with automatic IDE detection and unified inspection profile
https://github.com/josedacosta/mcp-jetbrains-code-inspections
code-inspection code-quality developer-tools ide-integration intellij jetbrains linting mcp mcp-server static-analysis typescript webstorm
Last synced: about 1 month ago
JSON representation
MCP server for JetBrains IDE code inspections with automatic IDE detection and unified inspection profile
- Host: GitHub
- URL: https://github.com/josedacosta/mcp-jetbrains-code-inspections
- Owner: josedacosta
- License: other
- Created: 2025-08-05T06:43:59.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-08-26T11:34:46.000Z (10 months ago)
- Last Synced: 2025-08-26T14:59:04.107Z (10 months ago)
- Topics: code-inspection, code-quality, developer-tools, ide-integration, intellij, jetbrains, linting, mcp, mcp-server, static-analysis, typescript, webstorm
- Language: TypeScript
- Homepage: https://josedacosta.github.io/mcp-jetbrains-code-inspections/
- Size: 1.01 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# ๐ MCP JetBrains Code Inspections
[](https://opensource.org/licenses/OSL-3.0)
[](https://nodejs.org)
[](https://www.typescriptlang.org/)
[](https://josedacosta.github.io/mcp-jetbrains-code-inspections/)
[](https://github.com/modelcontextprotocol/sdk)
[](https://www.jetbrains.com)
[](https://makeapullrequest.com)
> [!CAUTION]
>
> ## โ ๏ธ Deprecated Notice
>
> [](https://github.com/josedacosta/mcp-jetbrains-code-inspections#deprecated-notice)
>
> **This project is deprecated but still functional.** Starting from version 2025.2, JetBrains IDEs (WebStorm, IntelliJ IDEA, PyCharm, etc.) now include a built-in MCP server that provides native integration with external clients like Claude Desktop, Cursor, VS Code, and others.
>
> ### ๐ Migration Options
>
> | IDE Version | Recommended Solution | Link |
> | -------------------- | -------------------- | --------------------------------------------------------------------------------- |
> | **2025.2+** | Built-in MCP server | [Official Documentation](https://www.jetbrains.com/help/webstorm/mcp-server.html) |
> | **Earlier versions** | JetBrains MCP plugin | [Plugin Marketplace](https://plugins.jetbrains.com/plugin/26071-mcp-server) |
>
> ### โ
Native Integration Benefits
>
> - **Direct IDE control** without external tools
> - **25+ tools** comprehensive tool set
> - **Better performance** and reliability
> - **Official support** from JetBrains
>
> > [!IMPORTANT]
> > The native `get_file_problems` tool requires setting `errorsOnly: false` for similar functionality to this project. The `get_project_problems` tool only returns critical errors.
>
> ๐ **[View Migration Guide & Comparison โ](https://josedacosta.github.io/mcp-jetbrains-code-inspections/deprecated/jetbrains-native-mcp)**
A **Model Context Protocol (MCP)** server that provides JetBrains IDE code inspections with automatic IDE selection and a unified inspection profile that works across all file types.
> [!TIP]
> ๐ **Full Documentation Available**: Visit our comprehensive docs at [josedacosta.github.io/mcp-jetbrains-code-inspections](https://josedacosta.github.io/mcp-jetbrains-code-inspections/)
## ๐ฏ Quick Start
> [!NOTE]
> Get started in under 2 minutes!
```bash
# Clone the repository
git clone https://github.com/josedacosta/mcp-jetbrains-code-inspections.git
cd mcp-jetbrains-code-inspections
# Install and build
yarn install && yarn build
# Test with MCP Inspector
yarn inspect
```
Then configure your MCP client (Claude Desktop, Cursor, etc.) with the [configuration below](#๏ธ-configuration).
## โจ Features
### ๐ Core Features
- ๐ **Automatic IDE Detection**
Intelligently selects the best JetBrains IDE
- โก **Configurable Timeout**
Default 120s, adjustable for large projects
- ๐ **Cross-IDE Compatible**
Works with all JetBrains IDEs
### ๐ง Advanced Capabilities
- ๐ **Smart Output Formats**
Markdown for LLMs, JSON for tools
- ๐ฏ **Concurrent Execution**
Run even when IDE is open
- ๐ **Universal Profiles**
One profile for all languages
- ๐ฌ **Built-in Prompts**
Pre-configured prompts for common tasks
- ๐ **Server Resources**
Access profiles, config, and IDE info
## ๐ฆ Installation
> [!NOTE]
> **Prerequisites**: Node.js โฅ20 and a JetBrains IDE installed
### Step-by-step Installation
1. **Install dependencies**:
```bash
yarn install
```
2. **Build the server**:
```bash
yarn build
```
3. **Configure MCP** (see [โ๏ธ Configuration](#๏ธ-configuration) section below)
> [!TIP]
> Use `yarn inspect` after installation to test the server with the MCP Inspector
## ๐ Usage
### ๐ MCP Features
The server provides three types of MCP features:
#### ๐จ Tools
- **get_jetbrains_code_inspections**: Runs code inspections on specified files or directories
#### ๐ฌ Prompts
- **analyze-project**: Analyze a project for code quality issues
- **check-file**: Check a specific file for issues
- **fix-issues**: Get suggestions to fix detected issues
#### ๐ Resources
- **inspection://profiles**: List of available inspection profiles
- **inspection://config**: Current MCP server configuration
- **inspection://ides**: List of detected JetBrains IDEs on the system
### ๐ Running the Server
> [!TIP]
> For development, use `yarn dev` which includes hot-reload for faster iteration.
```bash
# ๐ Run in development mode (with hot-reload)
yarn dev
# ๐ฆ Run the built server (production)
yarn start
# ๐งช Use MCP Inspector for interactive testing
yarn inspect
```
### โ๏ธ Configuration
The code inspections server can be configured through environment variables in `.mcp.json`:
```json
{
"mcpServers": {
"mcp-jetbrains-code-inspections": {
"command": "node",
"args": ["./dist/index.js"],
"env": {
"EXCLUDE_INSPECTIONS": "SpellCheckingInspection"
}
}
}
}
```
### ๐ Available Parameters
#### ๐ง Tool Parameter (Required)
> [!IMPORTANT]
> The tool accepts only one parameter from the LLM:
| Parameter | Type | Description | Required | Example |
| --------- | -------- | --------------------------------- | -------- | ----------------------------- |
| `path` | `string` | File or directory path to inspect | โ
Yes | `"src/index.ts"` or `"./src"` |
#### ๐ Configuration via Environment Variables
> [!NOTE]
> All configurations are managed through environment variables in `.mcp.json`. These settings control how the inspection server operates.
๐ Available Environment Variables (click to expand)
| Environment Variable | Type | Description | Default |
| --------------------- | -------------------- | --------------------------------------------------------- | ------------------------- |
| `FORCE_INSPECT_PATH` | `string` | Force specific IDE inspect tool (disables auto-detection) | Auto-detected |
| `FORCE_PROJECT_ROOT` | `string` | Force project root directory (disables auto-detection) | Auto-detected |
| `FORCE_PROFILE_PATH` | `string` | Force inspection profile path (disables defaults) | Project defaults |
| `INSPECTION_TIMEOUT` | `number` | Maximum analysis time (ms) | `120000` |
| `EXCLUDE_INSPECTIONS` | `string` | Comma-separated inspection codes to exclude | `SpellCheckingInspection` |
| `ONLY_INSPECTIONS` | `string` | Only include these inspection codes | - |
| `RESPONSE_FORMAT` | `'markdown'\|'json'` | Output format for diagnostics | `'markdown'` |
| `DEBUG` | `boolean` | Enable debug logging | `false` |
> [!TIP]
> ๐ For detailed configuration options, see [Configuration Documentation](docs/configuration/).
## ๐งช Testing
### 1๏ธโฃ Interactive MCP Test
```bash
yarn test:mcp
```
This runs an interactive test that allows you to test the MCP server functionality directly.
### 2๏ธโฃ Test with MCP Inspector (recommended)
```bash
# Launch the inspector (no installation needed)
yarn inspect
# Or for development mode with hot reload
yarn inspect:dev
```
The inspector opens a web interface where you can:
- View available tools, prompts, and resources
- Test get_jetbrains_code_inspections tool interactively
- Use pre-configured prompts for common tasks
- Access server resources (profiles, config, detected IDEs)
- See requests/responses in real-time
## โ๏ธ How It Works
### ๐ฏ Automatic IDE Selection
> [!NOTE]
> The server intelligently detects and selects the most appropriate JetBrains IDE for your project.
**Priority order:**
1. **IntelliJ IDEA** - Ultimate Java/Kotlin IDE
2. **WebStorm** - JavaScript/TypeScript specialist
3. **PyCharm** - Python development
4. **PhpStorm** - PHP development
5. **GoLand** - Go programming
6. **Rider** - .NET development
7. **CLion** - C/C++ development
8. **RubyMine** - Ruby/Rails
9. **DataGrip** - Database management
10. **DataSpell** - Data science
11. **AppCode** - iOS/macOS development
> [!TIP]
> Use `FORCE_INSPECT_PATH` to override auto-detection and specify a particular IDE.
### ๐ Isolated Configuration
> [!IMPORTANT]
> **Key Innovation**: The server uses temporary isolated configuration directories with `-Didea.config.path` and `-Didea.system.path` JVM properties. This allows inspections to run even when the IDE is already open!
**Benefits:**
- โ
No IDE conflicts
- โ
Parallel execution support
- โ
Clean, isolated analysis
- โ
No interference with your active IDE sessions
### ๐ป Example Output
๐ View Example Output (click to expand)
```console
๐ Searching for available JetBrains IDE inspect tools...
Following priority order: IntelliJ IDEA > WebStorm > PyCharm > PhpStorm > GoLand > ...
โ
WebStorm - Found and selected!
Path: /Applications/WebStorm.app/Contents/bin/inspect.sh
Note: Using isolated configuration - works even if IDE is already running
๐ Analysis Results:
โ ๏ธ Warning: Unused variable 'config' at line 42
โ Error: Missing semicolon at line 156
๐ก Info: Consider using const instead of let at line 78
```
## ๐ ๏ธ Troubleshooting
### โ "JetBrains IDE inspect tool not found"
> [!WARNING]
> This error occurs when no JetBrains IDE can be found in standard installation locations.
**Solutions:**
- โ
Verify that a JetBrains IDE is installed in `/Applications/` or `~/Applications/`
- โ
Ensure the `inspect.sh` file is executable
- โ
Use `FORCE_INSPECT_PATH` environment variable to specify the exact path
### โ ๏ธ "No inspection profile found"
> [!CAUTION]
> Without an inspection profile, the tool cannot analyze your code properly.
**Steps to fix:**
1. Open the project in a JetBrains IDE
2. Go to **Settings** โ **Inspections**
3. Configure and save an inspection profile
4. Alternatively, use `FORCE_PROFILE_PATH` to specify a custom profile
### โฑ๏ธ Timeout Issues
> [!TIP]
> Default timeout is 120 seconds. Large projects may need more time.
**Solutions:**
- ๐ Increase timeout: Set `INSPECTION_TIMEOUT=300000` (5 minutes)
- ๐ Check that the IDE is not currently indexing
- ๐ฆ For very large projects, consider inspecting specific directories
### ๐ซ "Only one instance can be run at a time"
> [!NOTE]
> โ
**This is no longer an issue!** The server automatically handles this by using isolated configuration directories, allowing inspections to run even when the IDE is already open.
## ๐ Documentation
> [!TIP]
> ๐ Visit our comprehensive documentation at [josedacosta.github.io/mcp-jetbrains-code-inspections](https://josedacosta.github.io/mcp-jetbrains-code-inspections/)
**Available sections:**
| Section | Description |
| ------------------------------------------------------------------------------------------------------- | ---------------------------------- |
| ๐ **[Getting Started](https://josedacosta.github.io/mcp-jetbrains-code-inspections/getting-started/)** | Installation and prerequisites |
| โ๏ธ **[Configuration](https://josedacosta.github.io/mcp-jetbrains-code-inspections/configuration/)** | Environment variables and profiles |
| ๐ **[Usage Guide](https://josedacosta.github.io/mcp-jetbrains-code-inspections/usage/)** | Basic and advanced usage |
| ๐ฌ **[Technical Details](https://josedacosta.github.io/mcp-jetbrains-code-inspections/technical/)** | Architecture and IDE detection |
| ๐ก **[Guides](https://josedacosta.github.io/mcp-jetbrains-code-inspections/guides/)** | Best practices and troubleshooting |
## ๐ JetBrains Documentation
> [!TIP]
> Learn more about JetBrains code inspections and the command-line inspector:
| Resource | Description |
| -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| ๐ **[Code Inspection Overview](https://www.jetbrains.com/help/webstorm/code-inspection.html)** | Learn about code inspections, severity levels, and inspection profiles |
| ๐ง **[Command-Line Code Inspector](https://www.jetbrains.com/help/webstorm/command-line-code-inspector.html)** | Detailed documentation on using the inspect.sh/inspect.bat tool |
## ๐ค Contributing
> [!NOTE]
> We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for full details.
**What we're looking for:**
- ๐ Bug fixes and issue reports
- โจ New features and enhancements
- ๐ Documentation improvements
- ๐งช Test coverage expansion
- ๐ Language/IDE support
### ๐ Quick Start for Contributors
> [!IMPORTANT]
> We follow [Conventional Commits](https://www.conventionalcommits.org/) and use GitHub Flow.
```bash
# 1. Fork and clone the repository
git clone https://github.com/YOUR-USERNAME/mcp-jetbrains-code-inspections.git
# 2. Create a feature branch
git checkout -b feat/amazing-feature
# 3. Make your changes and commit
git commit -m 'feat(scope): add amazing feature'
# 4. Push to your fork
git push origin feat/amazing-feature
# 5. Open a Pull Request
```
> [!TIP]
> See [CONTRIBUTING.md](CONTRIBUTING.md) for branch naming, commit message standards, and PR guidelines.
## ๐ท๏ธ Keywords
๐ SEO Keywords (click to expand)
**MCP & AI Integration:**
`MCP server` โข `Model Context Protocol` โข `Claude Code integration` โข `MCP JetBrains` โข `Claude AI code inspection` โข `MCP tools` โข `Claude Code extensions` โข `MCP inspector` โข `Anthropic MCP` โข `Claude.ai code analysis` โข `LLM code analysis` โข `AI code review`
**JetBrains IDEs:**
`JetBrains code inspection` โข `WebStorm MCP` โข `IntelliJ IDEA MCP integration` โข `PyCharm MCP server` โข `PhpStorm code inspection` โข `GoLand analysis` โข `Rider code quality` โข `CLion inspection` โข `RubyMine linter` โข `DataGrip SQL analysis` โข `Android Studio inspection` โข `RustRover analysis`
**Technical Terms:**
`JetBrains command line inspector` โข `inspect.sh` โข `automated code inspection` โข `JetBrains unified profile` โข `IDE code diagnostics` โข `static code analysis` โข `inspection severity levels` โข `inspection profiles` โข `Node.js MCP server` โข `MCP environment variables` โข `code problems detection`
---
**Made with โค๏ธ by the Runtima Team**
[](https://github.com/josedacosta/mcp-jetbrains-code-inspections)
[](https://github.com/josedacosta)