MCP服务器管理器

一款自托管的MCP服务器管理器,具有Web界面,设计为在TrueNAS Fangtooth上作为自定义应用运行,支持通过浏览器添加、启动、停止和监控MCP服务器。

  • by braynshock
  • HTML
  • 本地部署
  • 更新于
在 GitHub 查看 braynshock/mcp-station

使用说明

MCP站

一个带有web UI的自托管MCP(模型上下文协议)服务器管理器,旨在作为自定义应用程序在 TrueNAS方牙.

想想Docker Desktop的MCP工具包,但它是自托管在NAS上的。


特性

  • Web用户界面 --从浏览器添加、启动、停止和监视MCP服务器
  • 实时更新 --服务器发送事件流状态实时更改和记录
  • 代理作曲家 --将服务器分组到具有单个端点的命名代理中
  • 市场 --从官方MCP注册表浏览并一键安装
  • 工具资源管理器 --查看正在运行的服务器公开的所有工具
  • 端点日志 --实时检查MCP流量
  • 自动重启 --发生故障的服务器会以指数级回退自动重启
  • 双重运输 --支持传统SSE(/mcp/sse)以及新的流式HTTP(/mcp)运输
  • TrueNAS原生 --作为Docker Compose自定义应用程序运行;配置在您的数据集上持续存在
  • REST API -UI所做的一切都可以通过API获得

快速开始

TrueNAS方牙

  1. 首选 Apps → 自定义应用程序→ 安装
  2. 粘贴以下内容 compose.yaml 进入撰写编辑器
  3. 设置环境变量:
    • AUTH_TOKEN -API访问的秘密令牌
    • DATA_PATH --TrueNAS数据集的路径,例如。 /mnt/tank/mcp-station
  4. 点击 安装 --该应用程序将在 http://truenas.local:3000

本地开发

git clone https://github.com/braynshock/mcp-station
cd mcp-station

cp .env.example .env
# Edit .env as needed

cd backend
npm install
npm run dev

打开http://localhost:3000


配置

所有配置都存储在 config.json 里面 DATA_PATH。服务器在重新启动时热重新加载配置。

看 backend/config/config.example.json 对于完整的模式。

环境变量

变量 默认值 描述
PORT 3000 端口UI和API侦听
AUTH_TOKEN changeme API身份验证的承载令牌(设置为时已禁用身份验证 changeme)
DATA_PATH ./data 保存配置和日志的地方
FILES_PATH (可选) 文件系统MCP sidecar容器的路径

添加MCP服务器

通过用户界面

点击 添加服务器 并填写:

  • 名字 --显示名称
  • 类型 — npm, docker, local,或 remote
  • 命令 --npm包、Docker镜像、二进制路径或SSE/HTTP URL
  • 环境 -环境变量的JSON对象(API键等)
  • 运输 — stdio (默认为本地), sse,或 http

通过API

curl -X POST http://localhost:3000/api/servers \
  -H "Authorization: Bearer your-token" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Brave Search",
    "type": "npm",
    "command": "@modelcontextprotocol/server-brave-search",
    "transport": "stdio",
    "env": { "BRAVE_API_KEY": "sk-..." }
  }'

MCP端点

可流式HTTP(推荐——MCP规范2025-03-26)

与OpenWebUI和支持最新MCP规范的任何客户端兼容:

POST http://<host>:3000/mcp
GET  http://<host>:3000/mcp   (optional SSE stream)

传统苏格兰和南方能源公司运输

对于LiteLLM、Claude Desktop、Cursor和较旧的MCP客户端:

http://<host>:3000/mcp/sse

两个端点都聚合了所有正在运行的工具 stdio-将基于服务器的连接转换为单个多路复用连接。

LiteLLM配置示例:

mcp_servers:
  - name: mcp-station
    url: http://192.168.0.160:3000/mcp/sse
    # If AUTH_TOKEN is set:
    # headers:
    #   Authorization: "Bearer <your-token>"
    # or append ?token=<your-token> to the URL

REST API

方法 路径 描述
GET /health 健康检查
GET /api/stats 统计摘要(服务器、工具、代理、今天的通话)
GET /api/servers 列出所有服务器
POST /api/servers 注册新服务器
GET /api/servers/:id 获取服务器
PATCH /api/servers/:id 更新服务器
DELETE /api/servers/:id 删除服务器
POST /api/servers/:id/start 启动服务器
POST /api/servers/:id/stop 停止服务器
GET /api/servers/:id/logs 获取服务器日志
GET /api/tools 列出运行服务器中的所有工具
GET /api/agents 列出代理
POST /api/agents 创建代理
PATCH /api/agents/:id 更新代理
DELETE /api/agents/:id 删除代理
GET /api/marketplace 浏览MCP注册表(支持光标分页)
GET /api/endpoint-logs 获取MCP端点流量日志
GET /api/events SSE实时UI事件流
POST /mcp MCP流式HTTP——JSON-RPC处理程序
GET /mcp MCP流式HTTP——可选SSE流
DELETE /mcp MCP流式HTTP--终止会话
GET /mcp/sse MCP传统SSE传输
POST /mcp/messages MCP遗留SSE——消息处理程序

除以下路线外的所有路线 /health 和 /mcp/messages 需要 Authorization: Bearer <AUTH_TOKEN> (或 ?token=<AUTH_TOKEN>)何时 AUTH_TOKEN 设置为非默认值。


Docker镜像

每次推送时,Docker镜像都会自动构建并发布到GitHub容器注册表 main:

docker pull ghcr.io/braynshock/mcp-station:latest

建筑

┌─────────────────────────────────────────┐
│            TrueNAS Fangtooth            │
│                                         │
│  ┌─────────────────────────────────┐    │
│  │      mcp-station container      │    │
│  │                                 │    │
│  │  Express (port 3000)            │    │
│  │  ├── GET /          → Web UI    │    │
│  │  ├── /api/*         → REST API  │    │
│  │  ├── /api/events    → UI SSE    │    │
│  │  ├── POST /mcp      → HTTP MCP  │    │
│  │  ├── GET /mcp/sse   → SSE MCP   │    │
│  │  └── POST /mcp/messages → MCP   │    │
│  │                                 │    │
│  │  Process Manager (JSON-RPC)     │    │
│  │  ├── server-filesystem (stdio)  │    │
│  │  ├── server-brave-search (stdio)│    │
│  │  └── github-mcp (docker)        │    │
│  └────────────────┬────────────────┘    │
│                   │ :3000               │
└───────────────────┼─────────────────────┘
                    │
          Claude Desktop / Cursor / LiteLLM / OpenWebUI
          (connects via /mcp or /mcp/sse)

路线图

  • [x] MCP多路复用——所有运行服务器的单一端点
  • [x] Marketplace--从MCP注册表一键安装
  • [x] 工具资源管理器--查看服务器上的所有可用工具
  • [x] MCP流式HTTP传输(2025-03-26规范,兼容OpenWebUI)
  • [x] 端点日志--检查MCP流量
  • []每个代理的工具级访问控制
  • []OAuth/多用户支持
  • []导入/导出配置
  • []一键式服务器更新

贡献

PR欢迎。对于较大的更改,请先打开一个问题。


许可证

麻省理工学院