注意:此项目正处于积极开发中,并且处于WIP(进行中)状态。功能和API可能会有显著变化。
一个用于运行模型上下文协议(MCP)服务器的WebSocket服务器实现。该应用程序使MCP服务器可以通过WebSocket连接访问,便于与Web应用程序和其他网络客户端集成。
MCP Server Runner充当WebSocket客户端和MCP服务器实现之间的桥梁。它:
应用程序可以通过环境变量进行配置:
PROGRAM= # MCP服务器可执行文件的路径(如果未指定配置文件,则需要)
ARGS= # MCP服务器参数的逗号分隔列表
HOST=0.0.0.0 # 绑定的主机地址(默认:0.0.0.0)
PORT=8080 # 监听的端口(默认:8080)
CONFIG_FILE= # JSON配置文件的路径
其他环境变量将传递给MCP服务器进程。
或者,您可以提供一个JSON配置文件:
{
"servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/workspace"
]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your_token_here"
}
}
},
"default_server": "filesystem",
"host": "0.0.0.0",
"port": 8080
}
您可以以两种方式指定配置文件:
mcp-server-runner config.jsonCONFIG_FILE环境变量:CONFIG_FILE=config.json mcp-server-runnerJSON配置允许您定义多个服务器配置并选择一个作为默认值。
CONFIG_FILE环境变量PROGRAM,ARGS等)使用环境变量:
export PROGRAM=npx
export ARGS=-y,@modelcontextprotocol/server-github
export PORT=8080
export GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_***
cargo run
使用配置文件:
# 要么将配置文件作为参数指定
cargo run config.json
# 或者使用CONFIG_FILE环境变量
CONFIG_FILE=config.json cargo run
连接到WebSocket服务器:
const ws = new WebSocket("ws://localhost:8080");
提供了Dockerfile和docker-compose.yml用于容器化部署:
docker-compose up --build
构建项目:
cargo build
运行测试:
cargo test
启用调试日志运行:
RUST_LOG=debug cargo run
应用程序遵循模块化架构:
main.rs:应用程序入口点和服务器设置config/:配置加载和管理process/:进程管理和I/O处理websocket/:WebSocket连接管理state.rs:全局状态管理shutdown.rs:优雅关闭处理git checkout -b feature/amazing-feature)git commit -m '添加惊人的功能')git push origin feature/amazing-feature)本项目根据MIT许可证发布 - 查看LICENSE文件了解详情。