关于 Unichat MCP Server in TypeScript
Unichat MCP 服务通过统一工具或预设提示词向多家 AI 服务发送请求,面向需要在 MCP 工作流中使用不同供应商模型的用户。需要相应的供应商 API 密钥。
主要功能
- 01向多家 AI 服务发送请求
- 02提供统一的 `unichat` 工具
- 03包含代码审查等预设提示词
- 04支持 STDIO 与 SSE 传输
适用场景
- 01通过 MCP 调用不同供应商的模型
- 02使用提示词审查或解释代码
MCP 相关
服务通过 MCP 提供 `unichat` 工具及代码相关提示词,并支持 STDIO 和 SSE 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
TypeScript 版 Unichat MCP 服务
也提供 Python 版
通过工具或预定义提示词,使用 MCP 协议向 OpenAI、MistralAI、Anthropic、xAI、Google AI 或 DeepSeek 发送请求。需要供应商 API 密钥。
支持通过参数使用 STDIO 和 SSE 传输机制。
工具
该服务实现了一个工具:
unichat:向 unichat 发送请求- 接受必填的字符串参数 "messages"
- 返回响应
提示词
code_review- 审查代码是否符合最佳实践,并检查潜在问题和改进空间
- 参数:
code(字符串,必填):要审查的代码"
document_code- 为代码生成文档,包括文档字符串和注释
- 参数:
code(字符串,必填):要添加注释的代码"
explain_code- 详细解释一段代码的工作原理
- 参数:
code(字符串,必填):要解释的代码"
code_rework- 根据要求修改提供的代码
- 参数:
changes(字符串,可选):要应用的更改"code(字符串,必填):要修改的代码"
开发
从源代码全新安装
前提条件:Git、Node.js 和 npm。请使用 Node.js 24,以匹配仓库的发布工作流;package.json 未声明受支持的 Node.js 版本范围。安装时请包含开发依赖,因为构建需要 TypeScript。
克隆仓库,并从已提交的 package-lock.json 还原依赖:
git clone https://github.com/amidabuddha/unichat-ts-mcp-server.git
cd unichat-ts-mcp-server
npm ci
npm ci 会自动运行 prepare,后者会调用 npm run build。该脚本会删除生成的 build/ 目录,使用 tsconfig.json 将 src/ 编译到 build/,并将 build/index.js 标记为可执行文件。启用生命周期脚本(默认设置)时,无需单独进行首次构建。请保留 package-lock.json 并安装开发依赖;此工作流中不要使用 --ignore-scripts 或 --omit=dev。
运行前,请在进程环境中设置 UNICHAT_MODEL 和 UNICHAT_API_KEY,或使用 手动安装 部分所示的 MCP 客户端 env 配置。请将两个占位符替换为受支持的模型及其供应商 API 密钥。例如,在 POSIX shell 中:
export UNICHAT_MODEL="YOUR_PREFERRED_MODEL_NAME"
export UNICHAT_API_KEY="YOUR_VENDOR_API_KEY"
node build/index.js --stdio
该服务会读取进程环境;不会自动加载 .env 文件。STDIO 需要 MCP 客户端与进程通信。若要改为通过 SSE 运行本地构建,请使用 node build/index.js --sse(默认端点:http://localhost:3001/sse)。远程访问请参阅下方的 SSE 主机配置。
常规开发
所有命令均从仓库根目录运行。要在源文件更改时自动重新编译:
npm run watch
此命令会运行 tsc --watch,在监视期间重新编译受影响的文件。它不会启动或重启服务。编译完成后,请重启服务或重新连接 MCP 客户端,以便使用上面的环境设置启动更新后的构建。
要单次构建:
npm run build
此脚本每次都会重新创建 build/;编辑期间如需增量重新编译,请使用监视模式。常规源文件更改不需要删除依赖项或重新安装所有内容。如果拉取更新后依赖清单和锁文件发生变化,请再次运行 npm ci。
package.json 中没有自动化测试脚本。构建会执行 TypeScript 检查;如需在构建后手动检查 MCP,请按调试部分所述,设置所需环境变量后运行 npm run inspector。
清理现有检出版本并重新构建
请先停止所有正在运行的监视进程和服务。在仓库根目录中,恢复锁定的依赖项并从头构建:
npm ci
npm ci 会替换整个 node_modules/,随后 prepare 会运行构建脚本,该脚本只会删除并重新生成 build/。即使其中一个或两个目录已被删除,也可以这样操作。无需单独删除目录或再次运行构建命令。
如果依赖项已安装且与锁文件一致,并且只需清理并重新构建生成的输出,请运行:
npm run build
这些工作流会保留 src/、配置、.env 文件、生成目录之外的用户数据以及 package-lock.json。build/ 中仅保留生成的文件。请勿使用 git clean,也不要为项目重建清除全局 npm 缓存或工具链。
发布
发布是单独的版本发布操作。仓库的发布工作流会在安装和构建后使用 npm publish。本地安装、开发和清理后重新构建均无需发布。
安装
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 Unichat MCP Server:
npx -y @smithery/cli install unichat-ts-mcp-server --client claude
手动安装
要与 Claude Desktop 配合使用,请添加服务配置:
MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
本地运行:
{
"mcpServers": {
"unichat-ts-mcp-server": {
"command": "node",
"args": [
"{{/path/to}}/unichat-ts-mcp-server/build/index.js"
],
"env": {
"UNICHAT_MODEL": "YOUR_PREFERRED_MODEL_NAME",
"UNICHAT_API_KEY": "YOUR_VENDOR_API_KEY"
}
}
}
运行已发布版本:
{
"mcpServers": {
"unichat-ts-mcp-server": {
"command": "npx",
"args": [
"-y",
"unichat-ts-mcp-server"
],
"env": {
"UNICHAT_MODEL": "YOUR_PREFERRED_MODEL_NAME",
"UNICHAT_API_KEY": "YOUR_VENDOR_API_KEY"
}
}
}
默认以 STDIO 运行,也可使用参数
--stdio。要以 SSE 运行,请添加参数--sse
npx -y unichat-ts-mcp-server --sse
默认情况下,SSE 传输会将 Host 标头与 localhost、127.0.0.1 和 [::1] 进行校验。对于远程 SSE 部署,请将 MCP_ALLOWED_HOSTS 设置为以逗号分隔的允许主机名列表。
支持的模型:
可在此处查看当前支持、可用作
"YOUR_PREFERRED_MODEL_NAME"的模型列表。请确保将相应的供应商 API 密钥添加为"YOUR_VENDOR_API_KEY"
示例:
"env": {
"UNICHAT_MODEL": "gpt-5.4-mini",
"UNICHAT_API_KEY": "YOUR_OPENAI_API_KEY"
}
调试
由于 MCP 服务通过 stdio 通信,调试可能颇具挑战。我们建议使用 MCP Inspector,它可通过包脚本运行:
npm run inspector
Inspector 会提供一个 URL,供你在浏览器中访问调试工具。
如果在 SSE 模式下测试时遇到超时,请在 Inspector 界面中将请求 URL 更改为:http://localhost:3001/sse?timeout=600000
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
