这是一个符合 JSON-RPC 2.0 标准的服务器,以示例形式实现了模型上下文协议 (MCP) 的笔记管理功能。您可以对其进行修改,并将其作为样板代码应用到自己的项目中。该服务端支持跨平台开发,包含开发和发布构建配置、命令行界面和服务组件。
# 构建所有组件的所有平台
make dev
# 为特定平台构建
make dev-windows
make dev-linux
make dev-darwin
# 构建特定组件
make build-cmd
make build-service
# 构建所有组件的所有平台
make release-all
# 为特定平台构建
make release-windows
make release-linux
make release-darwin
# 运行命令行界面
make run-cmd
# 运行服务
make run-service
make help
二进制文件将创建在 bin
目录中:
bin/dev/
bin/release/
cmd
)命令行界面可让您直接访问服务器功能。
service
)服务组件能够实现系统级集成和后台运行功能。
服务器实现了一个笔记存储系统,具体包括:
note://
URI 方案,用于访问单个笔记可用提示命令:
summarize-notes
:创建所有存储笔记的摘要
style
("简洁"/"详细")可用工具命令:
add-note
:向服务器添加新的笔记
name
(字符串)、content
(字符串)要通过命令行界面配置,请执行以下命令:
# 设置 MCP 地址
export MCP_ADDR="http://localhost:8080"
# 设置 MCP 认证令牌
export MCP_TOKEN="your_token_here"
项目的文件夹结构如下所示:
notes-server/
├── cmd/
│ ├── main.go # 命令行入口
│ └── service.go # 服务实现
├── internal/
│ ├── handlers/ # 请求处理逻辑
│ └── models/ # 数据模型定义
└── go.mod # 模块依赖管理文件
要启用调试模式,请在运行时设置环境变量:
# 启用调试模式
export DEBUG=true
默认情况下,服务会在标准错误流中输出日志。
以下是 MCP 服务返回的错误代码:
错误代码 | 描述 | 标准 |
---|---|---|
100 | 通用错误 | No |
200 | 笔记相关错误 | Yes |
300 | 网络连接错误 | No |
400 | 参数验证错误 | Yes |
500 | 内部服务器错误 | Yes |
⚠️ 重要提示
- 在生产环境中,请确保设置适当的防火墙和安全策略。
- 使用环境变量管理敏感信息,避免直接硬编码。
- 定期备份数据以防止意外丢失。