README
🚀 Party Time MCP 服务器
Party Time MCP 服务器是一个简单的 MCP 服务器,当被询问当前时间时,会回复 “It's Party Time”,为用户带来别样的体验。
🚀 快速开始
这是对 MCP 协议的简单实现,服务器直接从标准输入读取并写入到标准输出。它注册了一个名为 get-time 的单个工具,并在调用该工具时始终以 “It's Party Time” 响应。服务器实现了 MCP 协议,能够处理 JSON - RPC 消息并适当回应。
📦 安装指南
macOS 安装说明
1. 构建可执行文件
首先构建可执行文件:
mix deps.get
mix escript.build
这将在项目目录中创建一个名为 party_time_mcp 的可执行文件。
确保它有执行权限:
chmod +x ./party_time_mcp
2. 配置 Claude 桌面
- 打开你的 Claude 配置文件:
nano ~/.config/claude/settings.json
- 在文件末尾添加以下内容以启用实验性功能:
{
"experimental_features": {
"custom_mcp_server": true
}
}
- 保存并退出编辑器。
3. 启动 Claude 桌面
启动 Claude 桌面后,它将自动连接到您指定的 MCP 服务器。默认情况下,它会在 localhost:5001 上查找服务器。
💻 使用示例
测试
要验证您的 MCP 服务器是否正常工作,可以运行以下命令:
curl -X POST http://localhost:5001 -H "Content-Type: application/json" -d '{"jsonrpc": "2.0", "method": "tools/list"}'
如果一切正常,您应该会看到类似以下的响应:
{
"jsonrpc": "2.0",
"result": ["get-time"],
"id": "some-id"
}
🔧 技术细节
近期修复
通知处理
服务器已更新以正确处理 Claude 桌面发送的 notifications/initialized 消息。此消息由客户端发送,以确认接收了 server/initialized 通知。
所做的更改:
- 添加了对
notifications/initialized消息的支持 - 服务器现在正确处理此通知而不产生错误
JSON 解析错误
服务器已更新以修复在 Claude 桌面中出现的 JSON 解析错误。问题是由于服务器将日志消息输出到标准输出,与 JSON 响应混在一起,导致 JSON 解析器困惑。 所做的更改:
- 禁用所有日志记录以避免干扰 JSON 输出
- 只有干净的 JSON 响应现在发送到标准输出
- 移除了重复的启动消息
- 在每个 JSON 响应后添加换行符以提高解析效果
Mix.env() 错误修复
服务器已更新以修复运行时出现的 UndefinedFunctionError: function Mix.env/0 is undefined 错误。此问题是因为在 escript 中没有可用的 Mix 模块。
所做的更改:
- 用编译时常量替换运行时的
Mix.env()调用 - 服务器现在正确确定是否处于测试模式,而无需依赖于 Mix
📚 详细文档
故障排除
如果您遇到与 Party Time MCP 服务器相关的问题,请参考以下常见问题和解决方案:
UndefinedFunctionError: function Mix.env/0 is undefined
如果看到类似错误提示,则表示可执行文件构建有误。此错误是因为在 escript 中没有可用的 Mix 模块。 解决方法:
mix escript.build
权限问题
如果尝试运行可执行文件时出现权限被拒绝的错误,请赋予其执行权限:
chmod +x ./party_time_mcp
配置文件问题
如果服务器找不到或无法读取配置文件,请检查文件是否存在且具有正确的权限。
JSON 错误
如果您看到 JSON 解析错误,请确保输入到服务器的消息是有效的 JSON - RPC 2.0 格式。服务器期望消息格式如下:
{
"jsonrpc": "2.0",
"id": "some-id",
"method": "method-name",
"params": {}
}
对于不需要响应的通知(无回复的消息),应省略 id 字段:
{
"jsonrpc": "2.0",
"method": "notification-name"
}
微信扫一扫