mcpField
M
MCP Server Runner

MCP Server Runner

本地服务
github.com/yonaka15开发工具1984 周前更新

关于 MCP Server Runner

MCP Server Runner 是一个 WebSocket 服务,用于运行 Model Context Protocol(MCP)服务并通过 WebSocket 连接访问。它面向需要将 MCP 服务接入 Web 应用或其他网络客户端的开发者。项目目前处于开发中,API 可能变动。

主要功能

  1. 01通过 WebSocket 访问 MCP 服务
  2. 02管理 MCP 服务进程的启动
  3. 03客户端与服务之间双向传递消息
  4. 04支持优雅关闭与错误日志
  5. 05支持通过 JSON 文件配置多个服务
  6. 06提供 Docker 部署方式

适用场景

  1. 01将本地 MCP 服务接入 Web 应用
  2. 02通过网络让其他客户端调用 MCP 服务
  3. 03在容器中部署 MCP 服务

MCP 相关

该项目作为 WebSocket 与 MCP 服务之间的桥接层,启动 MCP 服务进程并转发双向消息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP 服务运行器

注意:此项目目前正在积极开发中,处于 WIP(开发中)状态。功能和 API 可能会发生重大变化。

这是一个用于运行 Model Context Protocol(MCP)服务的 WebSocket 服务实现。此应用可通过 WebSocket 连接访问 MCP 服务,从而便于与 Web 应用及其他支持网络的客户端集成。

开发状态

  • 🚧 开发中:此软件正在积极开发中
  • ⚠️ API 稳定性:API 和功能可能会随时变更,恕不另行通知
  • 🧪 测试:目前正在进行测试和完善
  • 📝 文档:文档正在积极更新

概述

MCP 服务运行器充当 WebSocket 客户端与 MCP 服务实现之间的桥梁。它可以:

  • 启动 MCP 服务进程
  • 管理 WebSocket 连接
  • 处理客户端与 MCP 服务之间的双向通信
  • 支持平稳关闭和错误处理

功能

  • 支持单客户端连接的 WebSocket 服务实现
  • 管理 MCP 服务实例的进程
  • 客户端与服务端之间的双向消息传递
  • 平稳关闭处理
  • 全面的错误日志记录
  • 跨平台支持(Unix/Windows)

先决条件

  • Rust 1.70 或更高版本
  • MCP 服务实现的可执行文件

配置

环境变量

可通过环境变量配置此应用:

PROGRAM=        # Path to the MCP server executable (required if no config file)
ARGS=           # Comma-separated list of arguments for the MCP server
HOST=0.0.0.0    # Host address to bind to (default: 0.0.0.0)
PORT=8080       # Port to listen on (default: 8080)
CONFIG_FILE=    # Path to JSON configuration file

其他环境变量将传递给 MCP 服务进程。

JSON 配置

也可以提供 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
}

可通过以下两种方式指定配置文件:

  1. 作为命令行参数:mcp-server-runner config.json
  2. 使用 CONFIG_FILE 环境变量:CONFIG_FILE=config.json mcp-server-runner

JSON 配置允许定义多个服务配置,并选择其中一个作为默认配置。

配置优先级
  1. 通过命令行指定的配置文件
  2. CONFIG_FILE 环境变量
  3. 环境变量(PROGRAM、ARGS 等)
  4. 默认值

用法

  1. 使用环境变量:

    export PROGRAM=npx
    export ARGS=-y,@modelcontextprotocol/server-github
    export PORT=8080
    export GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_***
    cargo run
    
  2. 使用配置文件:

    # Either specify the config file as an argument
    cargo run config.json
    
    # Or use the CONFIG_FILE environment variable
    CONFIG_FILE=config.json cargo run
    
  3. 连接到 WebSocket 服务:

    const ws = new WebSocket("ws://localhost:8080");
    

Docker 支持

提供了 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:平稳关闭处理

错误处理

  • MCP 服务的标准错误输出会被记录,但不会转发给客户端
  • WebSocket 连接错误会得到妥善处理
  • 进程错误会连同详细信息一起记录

限制

  • 一次仅支持一个客户端连接
  • 不支持 WebSocket SSL/TLS(如需安全连接,请使用反向代理)
  • 没有内置身份验证机制

贡献

  1. Fork 此仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add amazing feature')
  4. 推送到该分支(git push origin feature/amazing-feature)
  5. 发起 Pull Request

许可证

此项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

更多资源

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。