关于 MCP Connector
MCP Connector 是一个轻量服务,用于运行和管理多个 MCP 服务,主要面向 TypingMind 用户。它可在本地或远程服务器上通过 REST API 提供 MCP 服务的连接能力。
主要功能
- 01通过 REST API 启动和管理多个 MCP 客户端
- 02支持 Bearer Token 认证
- 03支持 HTTPS 配置
- 04可自定义工具调用超时时间
- 05提供 /mcp-connect 代理转发请求
适用场景
- 01在本地电脑运行 MCP 服务并接入 TypingMind
- 02在远程服务器上持续运行 MCP 服务
- 03通过 Docker 部署 MCP Connector
MCP 相关
该项目作为 MCP 服务的运行与管理层,通过 /start、/clients 等接口启动、查询和停止 MCP 客户端,并通过 /clients/:id/call_tools 调用其工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Connector
MCP Connector 是一款轻量级服务,可运行和管理多个 Model Context Protocol(MCP)服务,专为与 TypingMind 集成而设计。它提供了一种简单的方法,可在本地计算机或远程服务上运行 MCP 服务,从而通过简单的 REST API 将自定义 AI 模型或工具连接到 TypingMind。
如何在本地设备上运行
你可以使用 npx 快速启动 MCP Connector(无需安装):
npx @typingmind/mcp@latest <auth-token>
- 将
<auth-token>替换为 TypingMind 提供的身份验证令牌。
你也可以通过环境变量提供身份验证令牌:
MCP_AUTH_TOKEN=<auth-token> npx @typingmind/mcp@latest
使用 TypingMind 时,请保持进程运行。
HTTPS 支持
要启用 HTTPS,请设置以下环境变量:
CERTFILE=./path/to/certificate.crt KEYFILE=./path/to/privatekey.key npx @typingmind/mcp@latest <auth-token>
CERTFILE:SSL 证书文件的路径KEYFILE:SSL 私钥文件的路径
设置这两个变量后,服务将使用 HTTPS,而非 HTTP。
如何在服务上运行
如果你更愿意在远程服务上运行 MCP Connector:
-
安装 Node.js(版本 14 或更高版本)。
-
使用
npx运行服务:npx @typingmind/mcp@latest <auth-token>要使用 HTTPS 运行:
CERTFILE=./path/to/certificate.crt KEYFILE=./path/to/privatekey.key npx @typingmind/mcp@latest <auth-token>另外,如需持续运行(例如关闭 SSH 后仍继续运行),可以使用 pm2 或
screen/tmux等进程管理器:pm2 start npx -- @typingmind/mcp@latest <auth-token>
如何使用 Docker 运行
你也可以使用 Docker 运行 MCP Connector。
-
构建 Docker 镜像: 进入项目根目录(即
Dockerfile所在目录)并运行:docker build -t mcp-connector .(你可以将
mcp-connector替换为自己喜欢的镜像标签。) -
运行 Docker 容器:
-
基本运行方式(HTTP): 将
<auth-token>替换为你的实际令牌。此命令会以分离模式(-d)运行容器,并将容器的默认端口50880映射到主机上的相同端口。docker run -d -p 50880:50880 --name mcp-connector-instance mcp-connector <auth-token> -
使用其他端口: 如果你需要使用其他端口(例如,将主机上的 8080 映射到容器内的 12345),请使用
-p标志进行映射,并设置-e PORT环境变量:docker run -d -p 8080:12345 -e PORT=12345 --name mcp-connector-instance mcp-connector <auth-token> -
使用 HTTPS 运行: 要启用 HTTPS,你需要提供证书和密钥文件,并设置
CERTFILE和KEYFILE环境变量。将主机上的证书文件挂载到容器内(例如挂载到/certs目录),并通过环境变量提供文件路径。请记得映射相应的端口。docker run -d \ -p 50880:50880 \ -e PORT=50880 \ -e CERTFILE=/certs/certificate.crt \ -e KEYFILE=/certs/privatekey.key \ -v /path/to/your/certificate.crt:/certs/certificate.crt:ro \ -v /path/to/your/privatekey.key:/certs/privatekey.key:ro \ --name mcp-connector-instance \ mcp-connector <auth-token>(将
/path/to/your/certificate.crt和/path/to/your/privatekey.key替换为主机上的实际路径。:ro标志会将文件以只读方式挂载。) -
查看日志: 如需查看正在运行的容器的日志:
docker logs mcp-connector-instance -
停止容器:
docker stop mcp-connector-instance -
移除容器:
docker rm mcp-connector-instance
-
如何连接到 TypingMind
要将 MCP Connector 连接到 TypingMind:
- 按照 www.typingmind.com/mcp 上的说明操作。
- 在 TypingMind MCP 集成页面中,粘贴 MCP Connector 服务地址(
http://localhost:<port>或服务器的 IP 地址和端口)以及身份验证令牌。
配置工具调用超时
你可以使用 TIMEOUT 环境变量设置自定义的工具调用超时时间(以毫秒为单位):
# Set timeout to 2 minutes (120000ms)
TIMEOUT=120000 npx @typingmind/mcp@latest <auth-token>
# Or combine with auth token environment variable
TIMEOUT=120000 MCP_AUTH_TOKEN=<auth-token> npx @typingmind/mcp@latest
# Default timeout is 60 seconds (60000ms) if not specified
npx @typingmind/mcp@latest <auth-token>
REST API 端点
所有 API 端点都需要通过启动服务时提供的 Bearer 令牌进行身份验证。
| 端点 | 方法 | 描述 |
|---|---|---|
/ping | GET | 健康检查;返回 { status: "ok" } |
/start | POST | 启动一个或多个 MCP 客户端;请求体:{ mcpServers: { ... } } |
/restart/:id | POST | 重启指定客户端 |
/clients | GET | 列出所有正在运行的 MCP 客户端及其工具 |
/clients/:id | GET | 获取指定客户端的信息 |
/clients/:id/tools | GET | 列出客户端可用的工具 |
/clients/:id/call_tools | POST | 调用客户端的工具;请求体:{ name, arguments } |
/clients/:id | DELETE | 停止并删除客户端 |
/mcp-connect | POST | 代理 fetch 请求;请求体:{ url, options? } |
注意:
- 所有请求都需要包含
Authorization: Bearer <auth-token>标头。 - 可用端口:服务将选择端口
50880或50881,请确保系统中这些端口可用。你也可以使用PORT环境变量指定其他端口。
/mcp-connect 端点
/mcp-connect 端点充当 fetch 请求的代理,让你可以通过 MCP Connector 服务发送 HTTP 请求。这适用于连接远程 MCP 服务或发送跨域请求。
请求体:
url(必填):要获取的 URLoptions(可选):Fetch 选项对象(method、headers、body 等)
响应:
- 该端点会流式传输来自目标 URL 的响应,包括状态码、标头和正文
- 某些标头会被过滤,以避免解码问题(Content-Encoding、Content-Length、Transfer-Encoding 和 CORS 标头)
- 所有代理标头都会通过
Access-Control-Expose-Headers暴露,以兼容 CORS
示例:
curl -X POST http://localhost:50880/mcp-connect \
-H "Authorization: Bearer <auth-token>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/api/endpoint",
"options": {
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"body": "{\"key\": \"value\"}"
}
}'
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。