JetBrains_mcp-server-plugin

The JetBrains_mcp-server-plugin is a plugin developed in Kotlin that serves as an extension for JetBrains products. This plugin enhances integration with specific servers, providing developers with an efficient working environment. While its features may be limited, it allows for customization according to specific needs.

GitHub Stars

0

User Rating

Not Rated

Favorites

0

Views

18

Forks

0

Issues

0

README

official JetBrains project

JetBrains MCP Server Plugin

JetBrains MCP (Model Context Protocol) Server Plugin enables seamless integration between Large Language Models (LLMs) and JetBrains IDEs. This plugin provides the server-side implementation for handling MCP requests and exposes extension points for implementing custom tools.

Prerequisites
Custom Tools Implementation

The plugin provides an extension point system that allows third-party plugins to implement their own MCP tools. Here's how to implement and register your custom tools:

1. Creating a Custom Tool

Create a class that extends AbstractMcpTool:

class MyCustomTool : AbstractMcpTool<MyArgs>() {
    override val name: String = "myCustomTool"
    override val description: String = "Description of what your tool does"

    override fun handle(project: Project, args: MyArgs): Response {
        // Implement your tool's logic here
        return Response.ok("Result")
    }
}

// Define your arguments data class
@Serializable
data class MyArgs(
    val param1: String,
    val param2: Int
)
2. Registering Your Tool

To register your tool, add it as an extension in your plugin.xml:

<idea-plugin>
    <!-- Your plugin config -->
    <depends>com.intellij.mcpServer</depends>
    
    <extensions defaultExtensionNs="com.intellij.mcpServer">
        <mcpTool implementation="com.example.MyCustomTool"/>
    </extensions>
</idea-plugin>
3. Tool Implementation Guidelines

Your tool implementation should follow these guidelines:

  • Tool names should be descriptive and use lowercase with optional underscores
  • Create a data class for your tool's arguments that matches the expected JSON input
  • Use the Response class appropriately:
    • Response(result) for successful operations
    • Response(error = message) for error cases
  • Utilize the provided Project instance for accessing IDE services
How to Publish Update
  1. Update settings.gradle.kts to provide a new version
  2. Create release on Github, the publishing task will be automatically triggered
Contributing

We welcome contributions! Please feel free to submit a Pull Request.