几秒钟内生成生产就绪的 MCP 服务器 <br> 快速 • 现代 • 功能齐全
MCP Forge 是一个强大的构建 CLI 工具,它生成具有内置最佳实践的全功能模型上下文协议 (MCP) 服务器。停止编写样板代码,开始构建令人惊叹的人工智能集成!
# 安装
pip install mcp-forge
# 创建一个服务器
mcp-forge new my-awesome-server
# 就这样!🎉
您的服务器已准备好使用工具、资源、提示、身份验证、激发、采样等!
stdio、HTTP 和 SSE(服务器发送事件)。# 使用 pip
pip install mcp-forge
# 使用 uv(推荐用于生成的项目)
uv tool install mcp-forge
# 交互模式(推荐)
mcp-forge new my-server
# 带选项
mcp-forge new my-server \
--description "我的超棒 MCP 服务器" \
--with-prompts \
--with-sampling \
--with-elicitation
cd my-server
# 安装依赖项
uv sync
# 使用交互式演示客户端测试
python demo.py
# 运行自动化测试
python demo.py --mode test
# 启动用于 Claude Desktop 的服务器
python -m my_server.server --transport stdio
# 启动 HTTP 服务器
python -m my_server.server --transport http --port 8000
在 claude_desktop_config.json 中添加:
{
"mcpServers": {
"my-server": {
"command": "uv",
"args": ["--directory", "/path/to/my-server", "run", "my_server.server"]
}
}
}
重启 Claude Desktop,您的工具就准备好了!🎉
my-server/
├── my_server/
│ ├── server.py # 主入口点(所有传输方式)
│ ├── server_stdio.py # 仅 stdio 服务器
│ ├── server_http.py # 带身份验证的 HTTP 服务器
│ ├── server_sse.py # 带 SSL/TLS 的 SSE 服务器
│ ├── interfaces/ # 抽象基类
│ │ ├── tool.py
│ │ ├── resource.py
│ │ └── prompt.py
│ ├── services/ # 业务逻辑层
│ │ ├── tool_service.py
│ │ ├── resource_service.py
│ │ ├── prompt_service.py
│ │ ├── auth_service.py # OAuth 2.1(可选)
│ │ ├── root_service.py # 根目录(可选)
│ │ └── completion_service.py # 补全(可选)
│ ├── tools/ # 工具实现
│ │ ├── add_numbers.py # 基础算术
│ │ ├── weather_tool.py # 结构化输出
│ │ ├── reasoning_tool.py # 采样(可选)
│ │ ├── greeting_elicitation.py # 激发(可选)
│ │ └── ...
│ ├── resources/ # 资源实现
│ │ ├── hello_world.py
│ │ └── user_profile.py
│ └── prompts/ # 提示实现
│ ├── code_review.py
│ └── ...
├── demo.py # 交互式演示客户端
├── completions.py # 补全处理器(可选)
├── roots_config.py # 根目录配置(可选)
├── auth_config.py # 身份验证配置(可选)
├── pyproject.toml # uv 项目配置
└── README.md # 项目文档
# my_server/tools/calculator.py
from pydantic import BaseModel, Field
from my_server.interfaces.tool import Tool, ToolResponse, ToolContent
class CalculatorInput(BaseModel):
expression: str = Field(..., description="要评估的数学表达式")
class CalculatorTool(Tool):
name = "calculator"
description = "评估数学表达式"
input_model = CalculatorInput
async def execute(self, input_data: CalculatorInput) -> ToolResponse:
try:
result = eval(input_data.expression)
return ToolResponse(
content=[ToolContent.text(f"结果: {result}")]
)
except Exception as e:
return ToolResponse(
content=[ToolContent.text(f"错误: {e}")],
is_error=True
)
在 tools/__init__.py 和 server.py 中注册即可!
from fastmcp import Context
class ResearchTool(Tool):
name = "research"
description = "人工智能驱动的研究助手"
input_model = ResearchInput
async def execute(self, input_data: ResearchInput, ctx: Context) -> ToolResponse:
# 请求其他人工智能的帮助
response = await ctx.sample(
messages=[{"role": "user", "content": input_data.query}],
system_prompt="您是一位研究专家。",
temperature=0.7
)
# 报告进度
await ctx.report_progress(1.0, "研究完成")
return ToolResponse(content=[ToolContent.text(response.content)])
class TaskTool(Tool):
name = "create_task"
description = "创建任务并获得用户确认"
input_model = TaskInput
async def execute(self, input_data: TaskInput, ctx: Context) -> ToolResponse:
# 请求用户确认
result = await ctx.elicit(
"创建此任务?",
response_type=None # 只需确认
)
if result.action == "accept":
# 创建任务
return ToolResponse(content=[ToolContent.text("任务已创建!")])
else:
return ToolResponse(content=[ToolContent.text("已取消")])
class WeatherData(BaseModel):
temperature: float
humidity: int
condition: str
class WeatherTool(Tool):
name = "get_weather"
input_model = WeatherInput
output_model = WeatherData # 启用结构化输出!
async def execute(self, input_data: WeatherInput) -> ToolResponse:
weather = WeatherData(
temperature=72.5,
humidity=65,
condition="晴朗"
)
return ToolResponse.from_model(weather)
MCP Forge 支持不同的模板配置:
| 功能 | 描述 | 标志 |
|---|---|---|
| 提示 | 可重用的大规模语言模型模板 | --with-prompts / --no-prompts |
| 采样 | 人工智能到人工智能的协作 | --with-sampling / --no-sampling |
| 激发 | 交互式用户输入 | -with-elicitation / --no-elicitation |
| 根目录 | 文件系统边界 | --with-roots / --no-roots |
| 补全 | 参数自动补全 | --with-completion / --no-completion |
| 身份验证 | OAuth 2.1 系统 | --with-auth / --no-auth |
# 最小服务器(只有工具和资源)
mcp-forge new minimal-server --no-prompts --no-sampling --no-elicitation
# 全功能服务器(启用所有功能)
mcp-forge new full-server \
--with-prompts \
--with-sampling \
--with-elicitation \
--with-auth
# API 集成服务器(身份验证 + 补全)
mcp-forge new api-server --with-auth --with-completion
生成的服务器包括多种测试选项:
python demo.py
特点:
npx @modelcontextprotocol/inspector uv run -m my_server.server
浏览器端 GUI:
# 启动服务器
python -m my_server.server --transport http --port 8000
# 使用 curl 测试
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'
FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install uv && uv sync
EXPOSE 8000
CMD ["uv", "run", "python", "-m", "my_server.server", "--transport", "sse", "--port", "8000"]
[Unit]
Description=我的 MCP 服务器
After=network.target
[Service]
Type=simple
User=mcp
WorkingDirectory=/opt/my-server
ExecStart=/usr/local/bin/uv run python -m my_server.server --transport sse --port 8443
Restart=always
[Install]
WantedBy=multi-user.target
fly launch 并部署使用 MCP Forge 制作了什么酷炫的东西吗?我们很乐意看到!
分享您的项目:
#MCPForge获取帮助,分享项目,并与其他 MCP 开发者连接!
如果 MCP Forge 为您节省了时间和精力,请考虑支持其开发:
您的支持有助于维护和改进 MCP Forge,让每个人受益!🙏
</div>我们热爱贡献!这里有几种方式可以帮助:
# 克隆仓库
git clone https://github.com/KennyVaneetvelde/mcp-forge.git
cd mcp-forge
# 安装依赖项
pip install -e ".[dev]"
# 运行测试
pytest
# 检查代码
ruff check .
# 格式化代码
ruff format .
git checkout -b feature/amazing-feature)git commit -m '添加惊人的功能')git push origin feature/amazing-feature)请确保:
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
由 MCP Forge 团队制作 ❤️
⭐ 在 GitHub 上星标我们 • 💬 加入 Discord • ❤️ 在 PayPal 上支持
</div>