Skip to main content
Glama

Edit MCP

README.md6.23 kB
# Edit-MCP: Model Context Protocol Server for Microsoft Edit Edit-MCP is a Model Context Protocol (MCP) server that integrates with Microsoft's Edit tool to provide advanced file editing capabilities to AI systems. It follows a hybrid architecture that combines direct file system operations for performance with Microsoft Edit integration for complex editing tasks. ## Overview The Edit-MCP server acts as a sophisticated coordinator between AI systems and file editing operations. It exposes a standardized MCP interface that allows AI models to: - Read and write files - Search and replace text - Format code - Perform complex editing operations - Coordinate multi-file edits - And more... ## Architecture Edit-MCP follows a hybrid architecture with the following components: ### 1. Core MCP Server - Handles MCP protocol communication - Routes operations to appropriate subsystems - Manages file state and metadata - Coordinates between multiple Edit instances - Provides caching and optimization ### 2. File System Manager - Performs direct file operations for simple tasks - Handles basic CRUD operations - Provides text search and simple find/replace - Manages file metadata operations - Supports batch operations across multiple files ### 3. Edit Instance Manager - Manages Microsoft Edit processes for complex operations - Handles complex editing scenarios - Coordinates multi-file operations - Manages Edit's TUI interactions programmatically ### 4. Operation Router - Decides which subsystem handles each operation - Routes simple operations to File System Manager - Routes complex operations to Edit Instance Manager - Coordinates hybrid operations between both subsystems ## Installation ### Prerequisites - Node.js 16 or higher - Microsoft Edit installed and available in your PATH ### Install from Source ```bash # Clone the repository git clone https://github.com/mixelpixx/edit-mcp.git cd edit-mcp # Install dependencies npm install # Build the project npm run build ``` ## Usage ### Starting the Server You can start the Edit-MCP server using either stdio or HTTP transport: ```bash # Start with stdio transport (for direct integration with AI systems) npm run stdio # Start with HTTP transport (for web-based integration) npm run http ``` ### Command Line Options ``` Usage: edit-mcp [options] Options: -V, --version output the version number -p, --port <port> Port to listen on for HTTP transport (default: "3000") -e, --edit-path <path> Path to the Edit executable -m, --max-instances <number> Maximum number of Edit instances (default: "5") -t, --timeout <milliseconds> Timeout for Edit instances in milliseconds (default: "300000") -c, --config <path> Path to configuration file -d, --debug Enable debug logging -s, --stdio Use stdio transport instead of HTTP -h, --help display help for command ``` ### Configuration You can configure Edit-MCP using a JSON configuration file: ```json { "editExecutable": "/path/to/edit", "maxEditInstances": 5, "instanceTimeout": 300000, "simpleOperationThreshold": 1000, "complexityFactors": { "fileSize": 0.3, "operationType": 0.4, "contextRequirement": 0.3 } } ``` ## Available Tools Edit-MCP provides the following tools: ### File System Tools - `read_file`: Read the contents of a file - `write_file`: Write content to a file - `list_files`: List files in a directory - `find_in_file`: Find occurrences of a pattern in a file ### Edit Tools - `format_code`: Format code in a file - `complex_find_replace`: Perform advanced find and replace operations - `interactive_edit_session`: Start an interactive editing session ### Hybrid Tools - `smart_refactor`: Intelligently refactor code across multiple files - `backup_and_edit`: Create backups of files before editing them ## HTTP Transport Edit-MCP now supports HTTP transport in addition to stdio, allowing remote access and REST API endpoints. ### Starting with HTTP Transport ```bash # Start with default HTTP port (3000) edit-mcp # Start with custom port edit-mcp --port 8080 # Start with configuration file edit-mcp --config config.http.example.json ``` ### REST API Endpoints #### Health Check ```bash GET /health ``` #### JSON-RPC Endpoint ```bash POST /jsonrpc Content-Type: application/json { "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "read_file", "arguments": { "path": "example.txt" } }, "id": 1 } ``` #### REST API Endpoints - `GET /api/tools` - List available tools - `POST /api/tools/:toolName` - Call a specific tool - `GET /api/files/:path` - Read file content - `PUT /api/files/:path` - Write file content - `GET /api/list/:directory` - List files in directory - `POST /api/search` - Search for patterns in files - `POST /api/format` - Format code - `POST /api/refactor` - Refactor symbols across files - `GET /api/docs` - API documentation ### Authentication Enable API key authentication by setting `authEnabled: true` in your config: ```json { "authEnabled": true, "apiKey": "your-secure-api-key" } ``` Include the API key in requests: - Header: `X-API-Key: your-secure-api-key` - Query parameter: `?apiKey=your-secure-api-key` ### CORS Configuration Configure allowed origins in your config file: ```json { "corsOrigins": ["http://localhost:*", "https://yourdomain.com"] } ``` ### Rate Limiting Configure rate limiting to prevent abuse: ```json { "rateLimitWindowMs": 900000, // 15 minutes "rateLimitMax": 100 // 100 requests per window } ``` ## Development ### Building the Project ```bash # Build the project npm run build # Watch for changes and rebuild npm run watch ``` ### Running in Development Mode ```bash # Run with hot reloading npm run dev ``` ## License MIT ## Acknowledgements - Microsoft for the Edit tool - The Model Context Protocol community

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mixelpixx/edit-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server