关于 go-mcp-server-service
这是一个用于笔记管理的 Go MCP 服务示例和项目模板,包含命令行与服务组件,并提供开发和发布构建配置。
主要功能
- 01符合 JSON-RPC 2.0 的 API
- 02线程安全的笔记存储
- 03使用自定义 URI 的笔记资源
- 04添加笔记工具与总结提示词
- 05命令行和后台服务组件
适用场景
- 01以笔记管理示例构建 Go MCP 服务
- 02存储笔记并供 MCP 客户端访问
MCP 相关
向 MCP 客户端提供自定义 `note://` URI 笔记资源、`add-note` 工具和 `summarize-notes` 提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
go-mcp-server-service
一个符合 JSON-RPC 2.0 标准的服务器示例,用于实现模型上下文协议(MCP)并管理笔记
这是一个示例。你可以修改它,并将其用作自己项目的模板。它支持跨平台开发,并包含命令行界面和服务组件,可用于开发版和发布版构建。
功能
- 符合 JSON-RPC 2.0 标准的 API
- 跨平台支持(Windows、Linux、macOS)
- 线程安全的笔记管理
- 开发版和发布版构建配置
- 服务和命令行界面组件
组件
命令行界面(cmd)
命令行界面可直接访问笔记服务的功能。
服务(service)
服务组件支持系统级集成和后台运行。
资源
服务器实现了一个笔记存储系统,具有以下特性:
- 用于访问单条笔记的自定义
note://URI 方案 - 包含名称、描述和 MIME 类型的资源元数据
- 线程安全的并发访问
提示词
可用的提示词:
summarize-notes:汇总所有已存储的笔记- 可选的
style参数(“brief”/“detailed”) - 根据风格偏好汇总所有当前笔记
- 线程安全的笔记访问
- 可选的
工具
可用的工具:
add-note:向服务器添加一条新笔记- 必需参数:
name(字符串)、content(字符串) - 线程安全的状态更新
- 返回确认消息
- 必需参数:
构建
先决条件
- Go 1.21 或更高版本
- GNU Make 或兼容的构建工具
- Git(用于版本信息)
构建命令
开发版构建(包含调试符号和竞态检测):
# Build all components for all platforms
make dev
# Build for specific platform
make dev-windows
make dev-linux
make dev-darwin
# Build specific components
make build-cmd
make build-service
发布版构建(已优化并剥离符号):
# Build all components for all platforms
make release-all
# Build for specific platform
make release-windows
make release-linux
make release-darwin
在本地运行:
# Run command-line interface
make run-cmd
# Run service
make run-service
查看所有可用目标:
make help
构建输出
二进制文件会生成在 bin 目录中:
- 开发版构建:
bin/dev/<platform>/ - 发布版构建:
bin/release/<platform>/
配置
Claude Desktop 集成
在 Claude Desktop 的配置文件中配置笔记服务器:
位置
- MacOS:
~/Library/Application\ Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
开发配置
{
"mcpServers": {
"notes-server": {
"command": "./bin/dev/<platform>/notes-server",
"args": []
}
}
}
发布配置(服务示例)
{
"mcpServers": {
"notes-server": {
"command": "./bin/release/<platform>/notes-service",
"args": []
}
}
}
开发
项目结构
.
├── cmd/ # Command-line interface
├── service/ # Service implementation
├── internal/
│ └── server/ # Core server implementation
│ ├── operations.go # Server operations
│ ├── server.go # Main server logic
│ └── types.go # Type definitions
├── Makefile # Build configuration
└── README.md
调试
由于服务器通过 stdio 运行,我们建议使用 MCP Inspector 进行调试:
npx @modelcontextprotocol/inspector ./bin/dev/<platform>/notes-server
Inspector 会提供一个用于调试界面的 URL。
错误代码
服务器实现了标准 JSON-RPC 2.0 错误代码,以及自定义代码:
| 代码 | 描述 | 标准 |
|---|---|---|
| -32700 | 解析错误 | 是 |
| -32600 | 请求无效 | 是 |
| -32601 | 找不到方法 | 是 |
| -32602 | 参数无效 | 是 |
| -32603 | 内部错误 | 是 |
| -32001 | 找不到资源 | 否 |
| -32002 | 不支持的操作 | 否 |
许可证
MIT 许可证
Copyright (c) 2024 Andrew Lee Donelson
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。