返回 MCP 目录
public公开dns本地运行

party-time-mcp

一个简单的MCP服务器,当询问时间时返回'派对时间'

article

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 桌面

  1. 打开你的 Claude 配置文件:
nano ~/.config/claude/settings.json
  1. 在文件末尾添加以下内容以启用实验性功能:
{
  "experimental_features": {
    "custom_mcp_server": true
  }
}
  1. 保存并退出编辑器。

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"
}
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端