MCP服务器终端仪表盘

MCP-dashboard是一款终端仪表盘工具,用于管理和监控Model Context Protocol服务器,支持AI聊天和工具调用功能。

  • by NicksLameCode
  • Rust
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 NicksLameCode/mcp-dashboard

使用说明

mcp仪表板

MCP服务器的终端仪表板。现在使用AI聊天。

管理、监控和调试您的 模型上下文协议 无需离开终端,即可从单个窗格中访问服务器。 与人工智能讨论你的服务器,让它代表你调用工具。

特性 • 演出 • 安装 • 快速开始 • 标签页 • AI聊天 • 配置 • 键绑定


为什么选择mcp仪表板?

大多数MCP工具都是基于浏览器的,Python很重,或者需要Docker。 mcp仪表板 是一个Rust二进制文件,可以在几秒钟内安装并在任何地方运行——你的笔记本电脑、SSH服务器、CI运行器。

  • 零依赖 --没有Node,没有Python,没有Docker
  • 自动发现 来自Claude Desktop、Claude Code和Cursor的服务器
  • 持久连接 --每次健康检查都不再进行产卵/杀死过程
  • 代币成本估算 --查看每个服务器占用多少上下文窗口(此工具独有)
  • 工具执行 --直接从终端调用任何MCP工具
  • AI聊天 --与Claude、GPT、Gemini或Claude Code讨论您的服务器,并使用完整的代理工具执行

特性

特性 描述
仪表盘 实时服务器运行状况、工具计数、响应时间火花线、令牌估计
检查员 浏览工具,输入JSON参数,执行并内联查看结果
AI聊天 与人工智能就您的MCP服务器进行对话——5个提供商、流媒体、代理工具执行
协议日志 每个MCP方法调用都带有方向、定时和错误突出显示
服务器日志 从服务器进程实时捕获stderr以进行调试
自动发现 从以下位置查找服务器 ~/.claude/.mcp.json, ~/.cursor/mcp.json,克劳德桌面配置
HTTP传输 通过Streamable HTTP连接到远程MCP服务器,而不仅仅是本地stdio
多提供商AI 拟人克劳德、OpenAI/GPT、谷歌Gemini、克劳德代码CLI、游标CLI
代理工具 AI在聊天过程中直接调用MCP工具,结果内联+记录到协议选项卡
搜索/筛选 按名称筛选服务器 / --处理大型服务器集合
令牌估计 每台服务器的颜色编码上下文窗口成本(绿色/黄色/橙色/红色)
波形图 显示性能趋势的迷你响应时间图
帮助覆盖 媒体 ? 获取完整的密钥绑定参考

演出

MCP冷启动的隐性成本

当MCP客户端需要调用工具时,有两种方法:

  1. 冷启动: 生成服务器进程,执行MCP握手,拨打电话,关闭。这就是一次性脚本、CI管道和任何在调用之间无法保持服务器活动的工作流的情况。
  2. 持久连接: 连接一次,保持进程活动,在每次后续调用中重用连接。这是mcp仪表板的功能,也是IDE扩展(Claude Code、Cursor)在活动会话期间的功能。

差异很重要,因为 实际的工具调用速度很快,但启动速度很慢。 我们对真实的生产服务器进行了基准测试,以了解到底有多少。

基准:时间去哪儿了?

已通过包含的测试 mcp-latency 针对真实MCP服务器的基准测试工具。每一轮冷启动都会产生一个新的进程,初始化MCP,调用 list_tools,并关闭。每次热调用循环都会重用现有的持久连接。

Rust MCP服务器(db-tunnel,9个工具)

Cold start breakdown (20 rounds):
  Spawn + MCP Init:    128.6ms  (99% of total)
  list_tools call:       0.4ms  ( 1% of total)
  ─────────────────────────────
  Total per cold start:  129.9ms

Warm call (persistent connection, 50 rounds):
  list_tools call:       0.1ms

Node.js MCP服务器(mobile-api,10个工具)

Cold start breakdown (20 rounds):
  Spawn + MCP Init:    115.4ms  (94% of total)
  list_tools call:       2.8ms  ( 6% of total)
  ─────────────────────────────
  Total per cold start:  123.2ms

Warm call (persistent connection, 50 rounds):
  list_tools call:       0.5ms

模式很清楚: 94-99%的冷启动交互是进程生成和MCP初始化,而不是工具本身。

现实世界的影响:多次通话

每次额外的通话都会带来优势,因为您只需支付一次启动成本:

场景 冷启动(每次生成) 持久(连接一次) 节省的时间
1次工具调用 130ms 130ms 0ms(相同)
10次工具调用 1300ms 131毫秒 1.2秒
50次工具调用 6500毫秒 135毫秒 6.4秒
100次工具调用 130000毫秒 140毫秒 12.9秒

注: 对持久连接的第一次调用仍需支付全部启动成本(约130ms)。节省来自调用2到N,它们完全跳过spawn和init。

对于 代理AI会话 在模型链接10-20个工具调用的情况下,这将把几秒钟的开销变成了毫秒。

吞吐量突发

在持久连接上,调用可以与服务器处理它们的速度一样快:

服务器 10个快速呼叫 吞吐量
生锈(db-tunnel) 0.8毫秒 总计 12629次呼叫/秒
Node.js(mobile-api) 6.0毫秒 总计 1673次呼叫/秒

什么时候最重要?

  • 脚本和CI 每次调用都会生成一个服务器——持久连接每次调用可节省约130毫秒
  • AI代理循环 对于许多连续的工具调用,10+调用从几秒钟到几毫秒不等
  • 健康监测 --每10秒检查服务器状态花费0.1ms,而不是130ms
  • 仪表板的检查器选项卡 --无重启开销的快速工具迭代

像Claude Code这样的IDE扩展在活动会话期间已经保持了持久连接,因此对于IDE中的单个交互式调用,延迟差异不那么明显。仪表板对IDE用户的优势更多地在于 多服务器可见性、健康监控和AI聊天选项卡 比原始每次通话速度更快。

自己运行基准测试

基准测试工具包括:

cargo run --release --bin mcp-latency -- /path/to/your/mcp-server [args...]

# Examples:
cargo run --release --bin mcp-latency -- node dist/index.js
cargo run --release --bin mcp-latency -- /path/to/rust-mcp-server --flag

它运行20个冷启动轮和50个热呼叫轮,然后显示百分位数和吞吐量的完整细分。

安装

货物(推荐)

cargo install mcp-dashboard

家酿

brew tap nickslamecode/mcp-dashboard
brew install mcp-dashboard

预构建二进制文件

下载自 GitHub发布.

来自源头

git clone https://github.com/NicksLameCode/mcp-dashboard.git
cd mcp-dashboard
cargo install --path .

快速开始

# Just run it -- servers are auto-discovered from Claude/Cursor configs
mcp-dashboard

就是这样。如果您在Claude Desktop、Claude Code或Cursor中配置了MCP服务器,它们将自动显示。

要手动添加服务器,请编辑 ~/.config/mcp-dashboard/servers.json (首次运行时创建):

[
  {
    "name": "my-server",
    "command": "node",
    "args": ["dist/index.js"],
    "cwd": "/path/to/server"
  }
]

标签页

1--仪表板

主要观点。服务器列表,包括状态指示器、工具/资源/提示计数、令牌成本估算和源徽章。详图面板显示:

  • 服务器名称、正常运行时间和响应时间
  • 响应时间火花线(最近60次检查)
  • 代币成本明细(工具/资源/提示)
  • 可浏览的工具、资源和提示列表(循环使用 Tab)

2--检查员

交互式工具执行。从左侧面板中选择一个工具,查看其输入模式,键入JSON参数,然后按 Enter 执行。结果与错误突出显示一致。

3--协议

每个MCP协议操作的时间顺序日志-- initialize, tools/list, tools/call等等。显示方向(→ 发送, ← 已接收)、服务器名称、方法、结果摘要和往返时间。

4--日志

从子进程捕获的每服务器stderr输出。选择一个服务器以查看其调试输出。可用于诊断启动失败、格式错误的响应或服务器端错误。

5--聊天(新增)

仪表板内置了一个完整的人工智能对话界面。与AI讨论您的MCP服务器,让它代表您调用工具。

5个AI提供商:

提供者 它如何连接 工具执行
人物克劳德 使用流式处理API x-api-key 原住民 tool_use 砌块
OpenAI/GPT 流式处理API(也可与Ollama、LM Studio、Azure一起使用) 函数调用
谷歌双子座 使用流式处理API key param 即将推出
克劳德代码 子流程通过 claude --print 通过提示上下文
光标 通过CLI执行子进程 通过提示上下文

多服务器上下文: 选择AI知道的服务器。按 Tab 循环, Space 切换。AI可以看到所选服务器的完整工具模式、资源URI、提示定义和连接状态。

代理工具执行: AI可以在对话过程中直接调用MCP工具。当它发生时:

  • 工具调用+参数显示在聊天中
  • 该工具对真实的MCP服务器执行(超时30秒)
  • 结果以内联方式显示,并记录到“协议”选项卡中
  • AI继续与工具结果进行对话

流动: 使用块光标实时传输响应流。按 Esc 取消中流。

快速启动:

# Set your API key
export ANTHROPIC_API_KEY="sk-ant-..."

# Launch the dashboard, press 5 for Chat
mcp-dashboard

或在中配置所有提供程序 ~/.config/mcp-dashboard/ai.json (首次运行时自动创建)。

配置

Stdio服务器(默认)

[
  {
    "name": "my-server",
    "command": "/path/to/binary",
    "args": ["--flag", "value"],
    "cwd": "/working/directory",
    "env": { "API_KEY": "sk-..." },
    "config_path": "/path/to/.mcp.json"
  }
]

HTTP服务器

[
  {
    "name": "remote-server",
    "transport": "http",
    "url": "http://localhost:8080/mcp"
  }
]

配置参考

字段 必填 描述
name 是 显示名称
command 仅限Stdio 要运行的二进制或命令
args 无 命令行参数
cwd 否 工作目录
env 否 环境变量
transport 没有 stdio (默认)或 http
url 仅限HTTP 服务器端点URL
config_path 否 配置文件的路径(使用打开 e)

AI聊天提供商

聊天选项卡从以下内容读取 ~/.config/mcp-dashboard/ai.json (首次运行时自动创建默认值):

{
  "default_provider": "anthropic",
  "anthropic": {
    "api_key": "",
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 4096
  },
  "openai": {
    "api_key": "",
    "base_url": "https://api.openai.com/v1",
    "model": "gpt-4o",
    "max_tokens": 4096
  },
  "gemini": {
    "api_key": "",
    "model": "gemini-2.0-flash",
    "max_tokens": 4096
  },
  "claude_code": {
    "command": "claude",
    "args": ["--print", "--output-format", "json"]
  },
  "cursor": {
    "command": "cursor",
    "args": ["--chat"]
  }
}

环境变量回退 --如果 api_key 如果配置中为空,则检查这些环境变量:

提供者 环境变量
人类学 ANTHROPIC_API_KEY
OpenAI OPENAI_API_KEY
双子座 GEMINI_API_KEY

这 openai.base_url 字段支持任何与OpenAI兼容的端点——将其指向Ollama(http://localhost:11434/v1)、LM Studio、Azure OpenAI或任何其他兼容的API。

自动发现

服务器会从以下位置自动发现:

源 配置路径
克劳德代码 ~/.claude/.mcp.json, ~/.claude/mcp.json
光标 ~/.cursor/mcp.json
克劳德桌面 ~/.config/claude/claude_desktop_config.json

发现的服务器与手动服务器一起显示在仪表板中,并带有源代码徽章。重复项(相同的命令+参数)会自动进行重复数据消除。

键绑定

全球

关键 行动
1 2 3 4 5 切换选项卡
j / k 导航列表
J / K 滚动细节面板
r 全部刷新/重新连接
c 切换连接
e 在中编辑配置 $EDITOR
/ 搜索/筛选服务器
? 帮助覆盖
q 退出

检查员(表2)

关键 行动
i 编辑JSON参数
Enter 执行工具
Esc 退出输入模式

聊天(选项卡5)

关键 行动
i 进入输入模式
Enter 发送消息
Esc 退出输入/取消流媒体
p 循环AI提供商
n 新对话
Tab 循环服务器上下文
Space 在上下文中切换服务器
J / K 滚动消息

搜索模式

关键 行动
类型 按名称筛选
Enter 保留过滤器
Esc 清除过滤器

运作原理

     ┌──────────────┐
     │  Claude API   │
     │  OpenAI API   │◄──── streaming SSE ────┐
     │  Gemini API   │                        │
     └──────────────┘                         │
     ┌──────────────┐                         │
     │ claude --print│◄── subprocess ──┐      │
     │ cursor --chat │                 │      │
     └──────────────┘                  │      │
                        ┌──────────────┴──────┴──┐
                        │      mcp-dashboard      │
                        │  (persistent connections │
                        │   + AI chat + agentic)   │
                        └─────┬───────┬───────┬────┘
                              │       │       │
                     stdio    │  stdio│  HTTP │
                              │       │       │
                        ┌─────▼─┐ ┌───▼───┐ ┌─▼──────────┐
                        │Server │ │Server │ │Remote Server│
                        │  (A)  │ │  (B)  │ │    (C)      │
                        └───────┘ └───────┘ └─────────────┘
  1. 连接 --生成stdio服务器或打开HTTP连接
  2. 初始化 --MCP握手超时15秒
  3. 发现 --并行查询工具、资源和提示
  4. 监视器 --每10秒对现有连接进行一次健康检查
  5. 捕捉 --实时从子进程流式传输stderr
  6. 检测 --每500毫秒轮询一次服务器死亡,标记为错误
  7. 聊天 --流式传输AI响应,注入MCP上下文,代表AI执行工具

内置于 rmcp (MCP协议)和 骑 (终端UI)。

贡献

欢迎捐款。请先打开一个问题,讨论您想更改的内容。

git clone https://github.com/NicksLameCode/mcp-dashboard.git
cd mcp-dashboard
cargo run

许可证

根据以下任一方式获得许可 Apache许可证2.0 或 MIT许可证 由您选择。