A powerful Model Context Protocol (MCP) server that creates other MCP servers! This meta-server provides tools for dynamically generating FastMCP server configurations and Python code.
pip install mcp-server-creator
uvx mcp-server-creator
python -m mcp_server_creator
- Dynamic Server Creation: Create new MCP server configurations on the fly
- Tool Builder: Add custom tools with parameters, return types, and implementations
- Resource Manager: Add static and dynamic resources with template support
- Code Generation: Generate complete, runnable Python code for your servers
- File Export: Save generated servers directly to Python files
- Example Templates: Built-in example server to demonstrate capabilities
The MCP Server Creator is itself an MCP server that can be used with Claude Desktop or any MCP client.
Add to your claude_desktop_config.json
:
{
"mcpServers": {
"mcp-server-creator": {
"command": "uvx",
"args": ["mcp-server-creator"]
}
}
}
from mcp_server_creator import create_server, add_tool, generate_server_code
# Create a new server configuration
result = create_server(
name="My API Server",
description="A custom API integration server",
version="1.0.0"
)
# Add a tool
add_tool(
server_id="my_api_server",
tool_name="fetch_data",
description="Fetch data from the API",
parameters=[{"name": "endpoint", "type": "str"}],
return_type="dict",
implementation='return {"data": f"Fetched from {endpoint}"}'
)
# Generate the code
code = generate_server_code("my_api_server")
print(code)
create_server
: Create a new MCP server configurationlist_servers
: List all server configurations in memoryget_server_details
: Get detailed information about a specific server
add_tool
: Add a tool to an existing server- Supports both sync and async tools
- Custom parameter definitions with types and defaults
- Automatic import management
add_resource
: Add a resource to an existing server- Static resources for fixed data
- Dynamic resource templates with parameters
- Custom MIME types
generate_server_code
: Generate complete Python code for a serversave_server
: Save generated server code to a filecreate_example_server
: Create a complete example Weather Service
import asyncio
from mcp_server_creator import create_server, add_tool, add_resource, save_server
async def create_weather_service():
# Create the server
create_server(
name="Weather Service",
description="Get weather information",
version="1.0.0"
)
# Add a weather tool
add_tool(
server_id="weather_service",
tool_name="get_weather",
description="Get current weather for a city",
parameters=[
{"name": "city", "type": "str"},
{"name": "units", "type": "str", "default": '"celsius"'}
],
return_type="dict",
is_async=True,
implementation='''
# Your weather API logic here
return {
"city": city,
"temperature": 20,
"units": units,
"condition": "sunny"
}'''
)
# Add a resource
add_resource(
server_id="weather_service",
uri="weather://{city}/current",
name="Current Weather",
description="Get current weather data",
is_template=True,
implementation='return {"city": city, "weather": "sunny"}'
)
# Save to file
await save_server("weather_service", "weather_service.py")
# Run the creation
asyncio.run(create_weather_service())
git clone https://github.com/GongRzhe/mcp-server-creator.git
cd mcp-server-creator
pip install -e .
python test_mcp_creator.py
- Python 3.8+
- FastMCP >= 0.1.0
MIT License - see LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
GongRzhe - gongrzhe@gmail.com