Skip to main content
Glama

Edit MCP

MIT License

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

# 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:

# 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:

{ "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

# 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
GET /health
JSON-RPC Endpoint
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:

{ "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:

{ "corsOrigins": ["http://localhost:*", "https://yourdomain.com"] }

Rate Limiting

Configure rate limiting to prevent abuse:

{ "rateLimitWindowMs": 900000, // 15 minutes "rateLimitMax": 100 // 100 requests per window }

Development

Building the Project

# Build the project npm run build # Watch for changes and rebuild npm run watch

Running in Development Mode

# Run with hot reloading npm run dev

License

MIT

Acknowledgements

  • Microsoft for the Edit tool
  • The Model Context Protocol community
-
security - not tested
A
license - permissive license
-
quality - not tested

Edit MCP

Related MCP Servers

View all related MCP servers

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