mcp-create
65
The MCP Create Server is a service designed for dynamic management of Model Context Protocol (MCP) servers. It enables the creation, execution, and management of MCP servers, primarily using TypeScript, and supports integration with Claude Desktop. Key features include tool execution and server code management.
MCP Create Server
A dynamic MCP server management service that creates, runs, and manages Model Context Protocol (MCP) servers dynamically. This service itself functions as an MCP server and launches/manages other MCP servers as child processes, enabling a flexible MCP ecosystem.
Key Features
- Dynamic creation and execution of MCP server code
- Support for TypeScript only (JavaScript and Python support planned for future releases)
- Tool execution on child MCP servers
- Server code updates and restarts
- Removal of unnecessary servers
Installation
Note: Docker is the recommended way to run this service
Docker Installation (Recommended)
# Build Docker image
docker build -t mcp-create .
# Run Docker container
docker run -it --rm mcp-create
Manual Installation (TypeScript Only)
# Clone repository
git clone https://github.com/tesla0225/mcp-create.git
cd mcp-create
# Install dependencies
npm install
# Build
npm run build
# Run
npm start
Integration with Claude Desktop
Add the following to your Claude Desktop configuration file (claude_desktop_config.json
):
{
"mcpServers": {
"mcp-create": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp-create"]
}
}
}
Available Tools
Tool Name | Description | Input Parameters | Output |
---|---|---|---|
create-server-from-template | Create MCP server from template | language: string | { serverId: string, message: string } |
execute-tool | Execute tool on server | serverId: string toolName: string args: object | Tool execution result |
get-server-tools | Get list of server tools | serverId: string | { tools: ToolDefinition[] } |
delete-server | Delete server | serverId: string | { success: boolean, message: string } |
list-servers | Get list of running servers | none | { servers: string[] } |
Usage Examples
Creating a New Server
{
"name": "create-server-from-template",
"arguments": {
"language": "typescript"
}
}
Executing a Tool
{
"name": "execute-tool",
"arguments": {
"serverId": "ba7c9a4f-6ba8-4cad-8ec8-a41a08c19fac",
"toolName": "echo",
"args": {
"message": "Hello, dynamic MCP server!"
}
}
}
Technical Specifications
- Node.js 18 or higher
- TypeScript (required)
- Dependencies:
- @modelcontextprotocol/sdk: MCP client/server implementation
- child_process (Node.js built-in): Child process management
- fs/promises (Node.js built-in): File operations
- uuid: Unique server ID generation
Security Considerations
- Code Execution Restrictions: Consider sandboxing as the service executes arbitrary code
- Resource Limitations: Set limits on memory, CPU usage, number of files, etc.
- Process Monitoring: Monitor and forcibly terminate zombie or runaway processes
- Path Validation: Properly validate file paths to prevent directory traversal attacks
License
MIT