🚀 新升级! 使用Golang重写的高性能MCP Prompt服务器,提供更好的性能、更强的稳定性和更丰富的功能。
💡 提示 如果你喜欢这个项目,请给它一个 ⭐ 支持!如果有任何问题,欢迎提出问题或参与讨论。
mcp-prompt-server-go/
├── main.go # 主程序入口
├── go.mod # Go模块定义
├── Makefile # 构建脚本
├── internal/ # 内部包
│ ├── mcp/ # MCP协议实现
│ │ └── models.go # MCP数据模型
│ ├── prompt/ # 提示管理
│ │ ├── models.go # 提示数据模型
│ │ └── manager.go # 提示管理器
│ └── server/ # 服务器实现
│ └── stdio.go # 标准输入输出服务器
├── prompts/ # 提示模板目录
│ ├── gen_title.yaml # 标题生成
│ ├── gen_summarize.yaml # 内容总结
│ ├── gen_html_web_page.yaml # 网页生成
│ └── ... # 更多模板
├── tools/ # 工具目录
│ └── test_mcp.go # 测试工具
└── bin/ # 构建输出目录
# 安装依赖并构建
make build
# 运行服务器
make run
# 开发模式(自动重载)
make dev
# 安装依赖
go mod tidy
# 构建
go build -o bin/mcp-prompt-server main.go
# 运行
./bin/mcp-prompt-server
启动后,你应该看到类似以下输出:
2024/01/15 10:30:00 成功从 /path/to/prompts 加载了 19 个提示
2024/01/15 10:30:00 注册了 19 个提示工具
2024/01/15 10:30:00 注册了管理工具:reload_prompts, get_prompt_names
2024/01/15 10:30:00 启动了对 /path/to/prompts 的文件监控
2024/01/15 10:30:00 正在启动 MCP Prompt Server v2.0.0...
2024/01/15 10:30:00 MCP Prompt Server 在标准输入输出上运行...
# 运行内置测试工具
go run tools/test_mcp.go
prompt# 获取二进制文件路径
make build
echo "$(pwd)/bin/mcp-prompt-server"
编辑 ~/.cursor/mcp_config.json:
{
"mcpServers": {
"Prompt Server": {
"command": "node",
"args": ["/path/to/mcp-prompt-server-go/bin/mcp-prompt-server"],
"transport": "stdio"
}
}
}
编辑 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"prompt-server": {
"command": "/path/to/mcp-prompt-server/bin/mcp-prompt-server",
"transport": "stdio"
}
}
}
服务器内置了丰富的提示模板,包括:
客户端调用方法:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_prompt_names",
"arguments": {}
}
}
返回结果示例:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [{
"type": "text",
"text": "可用的prompts (19):\n- gen_html_web_page\n- writing_assistant\n- code_review\n- ..."
}]
}
}
快速测试命令:
# 测试get_prompt_names功能
./test_get_prompt_names.sh
# 或者直接调用
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{}}}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_prompt_names","arguments":{}}}' | ./bin/mcp-prompt-server
修改prompts目录中的任何YAML/JSON文件,服务器会自动检测并重新加载,无需重启。
使用 get_prompt_names 工具查看:
prompts/ 目录下创建一个新的YAML/JSON文件name: my_new_prompt
description: 这是一个新的提示描述
arguments:
- name: input_text
description: 输入文本
required: false
type: string
messages:
- role: user
content:
type: text
text: |
请处理以下内容:{{input_text}}
输出格式:...
# 代码格式化
make fmt
# 静态分析
make vet
# 运行测试
make test
# 测试覆盖率
make test-coverage
# 运行MCP测试
go run tools/test_mcp.go
# 创建生产版本
make build-prod
# 创建发布包
make package
启动失败
# 检查Go版本
go version
# 重新构建
make clean && make build
提示未加载
# 检查文件格式
使用yaml语法验证器检查YAML文件
# 查看日志
./bin/mcp-prompt-server 2>&1 | grep -i warning
客户端连接问题
# 测试服务器
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | ./bin/mcp-prompt-server
程序提供了详细的日志信息:
INFO:正常操作信息WARNING:非致命错误(如无效的提示文件)ERROR:严重错误| 特性 | Node.js 版本 | Go 版本 | 升级 |
|---|---|---|---|
| 启动时间 | ~2.5秒 | ~0.5秒 | 80% ↑ |
| 内存占用 | ~45MB | ~18MB | 60% ↓ |
| 并发处理 | 有限 | 优秀 | 显著改进 |
| 文件监控 | 基本 | 高效 | 更加稳定 |
| 提示数量 | 11 | 19 | 73% ↑ |
git checkout -b feature/amazing-featuregit commit -m '添加神奇的功能'git push origin feature/amazing-featureMIT 许可证 - 详情见 LICENSE 文档