关于 mcp-chat
mcp-chat 是用于测试和评估 MCP 服务及 Agent 的开源客户端,支持命令行交互和 Web 聊天。它可显示工具调用参数与结果,便于调试服务。
主要功能
- 01交互式命令行聊天
- 02Web 界面聊天
- 03连接本地或远程 MCP 服务
- 04选择模型并自定义系统提示词
- 05保存聊天记录和命令历史
- 06查看工具调用参数与输出
适用场景
- 01开发中测试本地 MCP 服务
- 02检查 MCP 工具调用结果
- 03通过 Web 界面配置服务并聊天
MCP 相关
作为 MCP 客户端,它连接本地命令启动的服务或 Streamable HTTP 端点,也可读取 Claude Desktop 配置。它在聊天中呈现工具调用参数和结果。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-chat
用于测试和评估 MCP 服务及 Agent 的开源通用 MCP 客户端
快速开始
确保已在环境中导出 ANTHROPIC_API_KEY,或将其放在项目根目录的 .env 文件中。可在 Anthropic 控制台密钥页面 注册并获取 API 密钥。
一个简单的用例:通过 CLI 启动交互式聊天提示词,并运行文件系统 MCP 服务:
npx mcp-chat --server "npx -y @modelcontextprotocol/server-filesystem /Users/$USER/Desktop"
这将打开一个聊天提示词,你可以用它与服务交互并和大模型聊天。
配置
你也可以直接指定 claude_desktop_config.json(Mac):
npx mcp-chat --config "~/Library/Application Support/Claude/claude_desktop_config.json"
或(Windows):
npx mcp-chat --config "%APPDATA%\Claude\claude_desktop_config.json"
Web 模式
https://github.com/user-attachments/assets/b7e8a648-8084-4955-8cdf-fc6eb141572e
你也可以通过指定 --web 标志以 Web 模式运行 mcp-chat(确保已在环境中导出 ANTHROPIC_API_KEY):
npx mcp-chat --web
在 Web 模式下,你可以开始新的聊天、向模型发送消息,并通过 UI 动态配置 MCP 服务——无需在命令行中指定。此外,通过 Web UI 创建的聊天会像通过 CLI 创建的聊天一样,保存在 ~/.mcpchats/chats 中。
功能
- 通过 CLI 以交互模式运行,或使用
-p直接传入提示词 - 使用
--web通过 Web 界面与模型聊天 - 在生产环境或开发期间连接到任意 MCP 服务(JS、Python、Docker)
- 使用
-m选择模型 - 使用
--system自定义系统提示词 - 将聊天记录及设置保存到
~/.mcpchat/chats,包括 Web 聊天记录 - 在
~/.mcpchat/history中保存和恢复命令 - 在聊天中直接查看工具调用输出和参数,帮助调试 MCP 服务
CLI 用法
使用 -p 标志通过 CLI 运行提示词:
npx mcp-chat --server "npx mcp-server-kubernetes" -p "List the pods in the default namespace"
这会使用 kubenertes MCP 服务运行提示词,并在收到响应后将其输出到 stdout,然后退出。
使用 -m 标志通过 CLI 选择要聊天的模型:
npx mcp-chat --server "npx mcp-server-kubernetes" -m "claude-3.5"
使用模型 claude-3.5 进行聊天。请注意,目前仅支持 Anthropic 模型。
自定义系统提示词:
可使用 --system 标志指定系统提示词:
npx mcp-chat --system "Explain the output to the user in pirate speak." --server "npx mcp-server-kubernetes" -p "List the pods in the default namespace"
远程 MCP 服务
将 Streamable HTTP 端点 URL 传给 --server,以替代本地命令:
npx mcp-chat --server "https://example.com/mcp" -p "What tools do you have available?"
任何 http:// 或 https:// 服务字符串都会被视为 Streamable HTTP 端点,CLI 和 Web 模式的聊天设置均如此。目前不支持旧版 SSE 端点和需要身份验证的服务。
环境变量
Mcp-chat 支持将环境变量传递给 MCP 服务。不过,MCP 规范并未对此作出标准化,其他客户端可能不会传递动态环境变量值。关于标准 stdio MCP 客户端的更多信息,请参阅此处。
KUBECONFIG="~/.kube/config" npx mcp-chat --server "npx mcp-server-kubernetes"
面向 MCP 服务开发者
你可以传入本地构建的 Python 或 Node MCP 服务,使用 mcp-chat 进行测试:
Node JS:
# Directly executing built script
npx mcp-chat --server "/path/to/mcp-server-kubernetes/dist/index.js"
# Using node / bun
npx mcp-chat --server "node /path/to/mcp-server-kubernetes/dist/index.js"
Python:
# Python: Using uv
npx mcp-chat --server "uv --directory /path/to/mcp-server-weather/ run weather.py"
# Using python / python3 - make sure to run in venv or install deps globally
npx mcp-chat --server "/path/to/mcp-server-weather/weather.py"
开发
安装依赖并运行 CLI:
git clone https://github.com/Flux159/mcp-chat
bun install
bun run dev
开发 mcp-chat 时,如果要连接 MCP 服务,请先构建,然后使用服务标志运行 CLI:
npm run build && node dist/index.js --server "npx mcp-server-kubernetes" -p "List the pods in the default namespace"
测试:
bun run test
构建:
bun run build
发布:
bun run publish
发布 Docker:
bun run dockerbuild
项目结构
├── src/
│ ├── index.ts # Main client implementation & CLI params
│ ├── constants.ts # Default constants
│ ├── interactive.ts # Interactive chat prompt handling & logic
├── test/ # Test files
│ ├── cli.test.ts # Test CLI params
│ ├── config.test.ts # Test config file parsing
发布新版本
前往 releases 页面,点击 “Draft New Release”,再点击 “Choose a tag”,然后输入遵循 “v{major}.{minor}.{patch}” semver 格式的新版本号来创建新标签。接着填写发布标题 “Release v{major}.{minor}.{patch}”,并在必要时填写说明/更新日志,最后点击 “Publish Release”。
这将创建一个新标签,并通过 cd.yml 工作流触发新的发布构建。构建成功后,新版本将发布到 npm。请注意,无需手动更新 package.json 中的版本,因为工作流会自动更新 package.json 文件中的版本号,并将提交推送到 main。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。