Skip to content

Sublime Text Plugin which connects to a local Model Context Protocol (MCP) server for AI-powered code generation, review, refactoring, and translation using OpenAI or Gemini.

License

Notifications You must be signed in to change notification settings

sdirishguy/MCPHelperSublimePlugin

Repository files navigation

MCPHelper – Sublime Text Plugin

This is a Sublime Text plugin that connects your editor to a local Model Context Protocol (MCP) server, letting you use OpenAI or Gemini-powered tools directly on selected code.

🔗 Model Context Protocol Introduction


✨ Features

  • Generate code from plain-text prompts
  • Review code for bugs, security flaws, or improvements
  • Refactor code to enhance readability, maintainability, and performance
  • Translate code between languages like Python, JavaScript, Bash, etc.
  • Configurable settings for MCP server URL, timeouts, and model parameters
  • Menu integration for easy access to all commands
  • Robust error handling with user-friendly error messages
  • Debug mode for troubleshooting

🖼️ Demo

Here's what the plugin looks like in Sublime Text:

MCP Helper Sublime Demo


🚀 Installation

Quick Start

  1. Download the plugin files from this repository

  2. Copy to your Sublime Text User packages folder:

    • Windows: %APPDATA%\Sublime Text\Packages\User\
    • macOS: ~/Library/Application Support/Sublime Text/Packages/User/
    • Linux: ~/.config/sublime-text/Packages/User/
  3. Restart Sublime Text

  4. Configure your MCP server (see Configuration section below)

Detailed Installation

For complete installation instructions, see INSTALLATION.md.


⚙️ Configuration

1. MCP Server Setup

Ensure your local MCP server is running and accessible at the configured URL (default: http://localhost:8000/mcp.json/)

2. Plugin Settings

Open Sublime Text settings:

  • Go to Preferences > Package Settings > MCPHelper > Settings
  • Or edit the settings file directly

Default settings:

{
  "mcp_server_url": "http://localhost:8000/mcp.json/",
  "timeout_seconds": 120,
  "show_debug_output": false,
  "default_model": "gpt-4o",
  "default_temperature": 0.2,
  "default_max_tokens": 512
}

3. MCP Server Tools

Your MCP server should have tools configured like:

@mcp.tool(name="llm_generate_code_openai", description="Generate code using OpenAI")
async def generate_code_openai(params: dict) -> dict:
    # Your OpenAI integration here
    return {"results": [{"data": "generated_code"}]}

📖 Usage

Command Palette

  1. Select code in any file

  2. Press Ctrl+Shift+P

  3. Choose one of:

    • MCP: Generate Code
    • MCP: Review Code
    • MCP: Refactor Code
    • MCP: Translate Code

Menu

  1. Select code in any file
  2. Go to MCP Helper menu
  3. Choose your desired action

Keyboard Shortcuts (Optional)

Add to your keybindings file (Preferences > Key Bindings):

[
  {
    "keys": ["ctrl+shift+g"],
    "command": "mcp_generate_code"
  },
  {
    "keys": ["ctrl+shift+r"],
    "command": "mcp_review_code"
  },
  {
    "keys": ["ctrl+shift+f"],
    "command": "mcp_refactor_code"
  },
  {
    "keys": ["ctrl+shift+t"],
    "command": "mcp_translate_code"
  }
]

🔧 Troubleshooting

Common Issues

  1. "Cannot connect to MCP server"

    • Ensure your MCP server is running
    • Check the URL in settings
    • Verify the server is accessible at the configured endpoint
  2. "MCP Tool Error"

    • Check your MCP server logs
    • Verify the tool names match your server configuration
    • Ensure API keys are properly configured in your MCP server
  3. "No text selected"

    • Select some code before running commands
    • Commands require text selection to work

Debug Mode

Enable debug output in settings:

{
  "show_debug_output": true
}

This will show detailed request/response information in the Sublime Text console.

Console Access

View debug output:

  1. Go to View > Show Console
  2. Look for messages starting with "MCP"

🧩 Extending

You can add new commands by subclassing McpBaseCommand and customizing build_params():

class McpCustomCommand(McpBaseCommand):
    TOOL_NAME = "your_custom_tool"
    
    def build_params(self, selected_text, extra_input=None):
        return {
            "prompt": f"Custom prompt: {selected_text}",
            "language": "python"
        }

📄 License

This project is licensed under the MIT License. See LICENSE for details.


👤 Author

David Donohue

Built to streamline LLM-assisted development with a local-first mindset.

⚠️ Important: This plugin requires a running MCP Server on your local machine. You must configure your own OpenAI or Gemini API keys in the MCP server. This plugin does not directly handle authentication or make API calls — it simply communicates with your local MCP server to trigger the tools you've defined.

About

Sublime Text Plugin which connects to a local Model Context Protocol (MCP) server for AI-powered code generation, review, refactoring, and translation using OpenAI or Gemini.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages