|
| 1 | +# Jetbrains MCP Server |
| 2 | + |
| 3 | +A model context protocol server to work with JetBrains IDEs: IntelliJ, PyCharm, WebStorm, etc. Also, works with Android Studio |
| 4 | + |
| 5 | +[What is an MCP Server?](https://www.anthropic.com/news/model-context-protocol) |
| 6 | + |
| 7 | +## Characteristics |
| 8 | +Attribute|Details| |
| 9 | +|-|-| |
| 10 | +**Image Source**|Official Image |
| 11 | +|**Author**|[GannaChernyshova](https://github.com/GannaChernyshova) |
| 12 | +**Repository**|https://github.com/GannaChernyshova/mcp-jetbrains |
| 13 | +**Dockerfile**|https://github.com/GannaChernyshova/mcp-jetbrains/blob/main/Dockerfile |
| 14 | +**Docker Image built by**|Docker Inc. |
| 15 | +**Docker Scout Health Score**|  |
| 16 | +**Licence**|Apache License 2.0 |
| 17 | + |
| 18 | +## Available Tools |
| 19 | +Tools provided by this Server|Short Description |
| 20 | +-|- |
| 21 | +`create_new_file_with_text`|Creates a new file at the specified path within the project directory and populates it with the provided text| |
| 22 | +`execute_action_by_id`|Executes an action by its ID in JetBrains IDE editor| |
| 23 | +`execute_terminal_command`|Executes a specified shell command in the IDE's integrated terminal| |
| 24 | +`find_commit_by_message`|Searches for a commit based on the provided text or keywords in the project history| |
| 25 | +`find_files_by_name_substring`|Searches for all files in the project whose names contain the specified substring| |
| 26 | +`get_all_open_file_paths`|Lists full path relative paths to project root of all currently open files| |
| 27 | +`get_all_open_file_texts`|Returns text of all currently open files in the JetBrains IDE editor| |
| 28 | +`get_debugger_breakpoints`|Retrieves a list of all line breakpoints currently set in the project| |
| 29 | +`get_file_text_by_path`|Retrieves the text content of a file using its path relative to project root| |
| 30 | +`get_open_in_editor_file_path`|Retrieves the absolute path of the currently active file| |
| 31 | +`get_open_in_editor_file_text`|Retrieves the complete text content of the currently active file| |
| 32 | +`get_progress_indicators`|Retrieves the status of all running progress indicators| |
| 33 | +`get_project_dependencies`|Get list of all dependencies defined in the project| |
| 34 | +`get_project_modules`|Get list of all modules in the project with their dependencies| |
| 35 | +`get_project_vcs_status`|Retrieves the current version control status of files in the project| |
| 36 | +`get_run_configurations`|Returns a list of run configurations for the current project| |
| 37 | +`get_selected_in_editor_text`|Retrieves the currently selected text from the active editor| |
| 38 | +`get_terminal_text`|Retrieves the current text content from the first active terminal| |
| 39 | +`list_available_actions`|Lists all available actions in JetBrains IDE editor| |
| 40 | +`list_directory_tree_in_folder`|Provides a hierarchical tree view of the project directory structure| |
| 41 | +`list_files_in_folder`|Lists all files and directories in the specified project folder| |
| 42 | +`open_file_in_editor`|Opens the specified file in the JetBrains IDE editor| |
| 43 | +`replace_current_file_text`|Replaces the entire content of the currently active file| |
| 44 | +`replace_file_text_by_path`|Replaces the entire content of a specified file with new text| |
| 45 | +`replace_selected_text`|Replaces the currently selected text in the active editor| |
| 46 | +`replace_specific_text`|Replaces specific text occurrences in a file with new text| |
| 47 | +`run_configuration`|Run a specific run configuration in the current project| |
| 48 | +`search_in_files_content`|Searches for a text substring within all files in the project| |
| 49 | +`toggle_debugger_breakpoint`|Toggles a debugger breakpoint at the specified line in a project file| |
| 50 | +`wait`|Waits for a specified number of milliseconds| |
| 51 | + |
| 52 | +--- |
| 53 | +## Tools Details |
| 54 | + |
| 55 | +#### Tool: **`create_new_file_with_text`** |
| 56 | +Creates a new file at the specified path within the project directory and populates it with the provided text |
| 57 | +#### Tool: **`execute_action_by_id`** |
| 58 | +Executes an action by its ID in JetBrains IDE editor |
| 59 | +#### Tool: **`execute_terminal_command`** |
| 60 | +Executes a specified shell command in the IDE's integrated terminal |
| 61 | +#### Tool: **`find_commit_by_message`** |
| 62 | +Searches for a commit based on the provided text or keywords in the project history |
| 63 | +#### Tool: **`find_files_by_name_substring`** |
| 64 | +Searches for all files in the project whose names contain the specified substring |
| 65 | +#### Tool: **`get_all_open_file_paths`** |
| 66 | +Lists full path relative paths to project root of all currently open files |
| 67 | +#### Tool: **`get_all_open_file_texts`** |
| 68 | +Returns text of all currently open files in the JetBrains IDE editor |
| 69 | +#### Tool: **`get_debugger_breakpoints`** |
| 70 | +Retrieves a list of all line breakpoints currently set in the project |
| 71 | +#### Tool: **`get_file_text_by_path`** |
| 72 | +Retrieves the text content of a file using its path relative to project root |
| 73 | +#### Tool: **`get_open_in_editor_file_path`** |
| 74 | +Retrieves the absolute path of the currently active file |
| 75 | +#### Tool: **`get_open_in_editor_file_text`** |
| 76 | +Retrieves the complete text content of the currently active file |
| 77 | +#### Tool: **`get_progress_indicators`** |
| 78 | +Retrieves the status of all running progress indicators |
| 79 | +#### Tool: **`get_project_dependencies`** |
| 80 | +Get list of all dependencies defined in the project |
| 81 | +#### Tool: **`get_project_modules`** |
| 82 | +Get list of all modules in the project with their dependencies |
| 83 | +#### Tool: **`get_project_vcs_status`** |
| 84 | +Retrieves the current version control status of files in the project |
| 85 | +#### Tool: **`get_run_configurations`** |
| 86 | +Returns a list of run configurations for the current project |
| 87 | +#### Tool: **`get_selected_in_editor_text`** |
| 88 | +Retrieves the currently selected text from the active editor |
| 89 | +#### Tool: **`get_terminal_text`** |
| 90 | +Retrieves the current text content from the first active terminal |
| 91 | +#### Tool: **`list_available_actions`** |
| 92 | +Lists all available actions in JetBrains IDE editor |
| 93 | +#### Tool: **`list_directory_tree_in_folder`** |
| 94 | +Provides a hierarchical tree view of the project directory structure |
| 95 | +#### Tool: **`list_files_in_folder`** |
| 96 | +Lists all files and directories in the specified project folder |
| 97 | +#### Tool: **`open_file_in_editor`** |
| 98 | +Opens the specified file in the JetBrains IDE editor |
| 99 | +#### Tool: **`replace_current_file_text`** |
| 100 | +Replaces the entire content of the currently active file |
| 101 | +#### Tool: **`replace_file_text_by_path`** |
| 102 | +Replaces the entire content of a specified file with new text |
| 103 | +#### Tool: **`replace_selected_text`** |
| 104 | +Replaces the currently selected text in the active editor |
| 105 | +#### Tool: **`replace_specific_text`** |
| 106 | +Replaces specific text occurrences in a file with new text |
| 107 | +#### Tool: **`run_configuration`** |
| 108 | +Run a specific run configuration in the current project |
| 109 | +#### Tool: **`search_in_files_content`** |
| 110 | +Searches for a text substring within all files in the project |
| 111 | +#### Tool: **`toggle_debugger_breakpoint`** |
| 112 | +Toggles a debugger breakpoint at the specified line in a project file |
| 113 | +#### Tool: **`wait`** |
| 114 | +Waits for a specified number of milliseconds |
| 115 | +## Use this MCP Server |
| 116 | + |
| 117 | +```json |
| 118 | +{ |
| 119 | + "mcpServers": { |
| 120 | + "jetbrains": { |
| 121 | + "command": "docker", |
| 122 | + "args": [ |
| 123 | + "run", |
| 124 | + "-i", |
| 125 | + "--rm", |
| 126 | + "-e", |
| 127 | + "IDE_PORT", |
| 128 | + "mcp/jetbrains" |
| 129 | + ], |
| 130 | + "env": { |
| 131 | + "IDE_PORT": "8090" |
| 132 | + } |
| 133 | + } |
| 134 | + } |
| 135 | +} |
| 136 | +``` |
| 137 | + |
| 138 | +[Why is it safer to run MCP Servers with Docker?](https://www.docker.com/blog/the-model-context-protocol-simplifying-building-ai-apps-with-anthropic-claude-desktop-and-docker/) |
0 commit comments