README
🚀 基于Go的MCP服务器服务
这是一个符合JSON-RPC 2.0协议的服务器实现,专为模型上下文协议(MCP)的笔记管理而设计(以示例形式呈现)。您可以将此代码作为样板,修改后用于自己的项目。该项目支持跨平台开发,包含命令行界面和服务组件,适用于开发和发布构建。
✨ 主要特性
- 提供符合JSON-RPC 2.0协议的API。
- 支持跨平台,包括Windows、Linux和macOS。
- 实现线程安全的笔记管理。
- 具备开发和发布构建配置。
- 包含命令行界面和服务组件。
📦 安装指南
先决条件
- 需要Go 1.21或更高版本。
- 需安装GNU Make或其他兼容构建工具。
- 安装Git以获取版本信息。
构建命令
开发构建(包含调试符号和竞态检测)
# 构建所有组件的所有平台
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/ - 发布构建:
dist/
💻 使用示例
基础用法
提示
summarize-notes:创建所有存储笔记的摘要。- 可选参数:
style("brief"/"detailed") - 结合当前所有笔记并根据风格偏好显示结果,且线程安全的笔记访问。
- 可选参数:
工具
add-note:向服务器添加新的笔记。- 必要参数:
name(字符串)、content(字符串) - 线程安全的状态更新,返回确认信息。
- 必要参数:
📚 详细文档
组件
命令行界面 (cmd)
命令行界面提供对笔记服务器功能的直接访问。
服务 (service)
服务组件实现系统级集成和后台运行功能。
资源
服务器实现了一个笔记存储系统,包括:
- 自定义
note://URI方案,用于访问单个笔记。 - 资源元数据(名称、描述、MIME类型)。
- 线程安全的并发访问。
配置
在以下位置查找配置文件:
$XDG_CONFIG_HOME/mcnotes.json
默认情况下,这相当于:
~/.config/mcnotes.json
项目结构图
.
├── README.md # 项目说明文档
├── go.mod # Go模块文件
├── go.sum # Go依赖项检查和认证文件
├── cmd/
│ ├── add-note/
│ │ └── main.go # 添加笔记的主程序
├── service/
│ └── server.go # 服务端实现
└── resources/
└── note_manager.go # 笔记管理器
配置示例
{
"debug": false,
"port": 8080,
"database": {
"driver": "sqlite3",
"path": "notes.db"
}
}
错误代码
| 错误代码 | 描述 | | ---- | ---- | | -32700 | 解析错误 | | -32601 | 方法不存在 | | -32603 | 参数错误 |
🔧 技术细节
该项目实现了一个符合JSON-RPC 2.0协议的服务器,用于模型上下文协议(MCP)的笔记管理。它支持跨平台开发,包含命令行界面和服务组件,具备线程安全的笔记管理功能。服务器实现了自定义 note:// URI方案和资源元数据管理,支持线程安全的并发访问。
📄 许可证
此项目在MIT License下开源。
⚠️ 重要提示
如有其他问题,请参考官方文档。
Scan to join WeChat group