使用说明
MCP图集
MCP Atlas是多MCP系统的可观察性仪表板。它记录实时请求流,重建跟踪,测量延迟,跟踪服务健康状况,构建依赖关系图,并显示异常。
此存储库目前支持两种实用模式:
- 本地实时模式:Atlas在三个轻量级的类似MCP的服务上代理真实的HTTP请求
- Blaxel集成模式:Atlas可以连接到Blaxel沙盒MCP端点并发现工作区MCP功能
视频演示
https://github.com/user-attachments/assets/87a1d2d5-9ff5-4f31-92f7-3c10b5a88d16
实施了什么
- 现场本地服务
Search MCP,Memory MCP,以及File MCP - Atlas代理,转发请求并从真实流量中发出遥测数据
- 带轨迹重建的内存遥测存储
- 概述、拓扑、运行状况和日志页面
- 故障、慢跳、慢跟踪、降级服务和离线服务的异常检测
- 从日志导出为Excel兼容的CSV
- Blaxel沙盒连接状态端点
- 经过身份验证的后端Blaxel MCP连接器
- Blaxel工作区MCP服务器发现端点
仓库的规划
-
apps/serverAtlas后端。Express+Socket。IO、遥测聚合、Atlas代理路由、Blaxel集成。 -
apps/webReact+Vite前端仪表板。 -
functions/atlas-blaxel-mcp可部署的自定义Blaxel MCP服务器通过可流式HTTP公开托管的Atlas工具。 -
services/search-mcp轻量级本地搜索服务。 -
services/memory-mcp轻量级本地内存服务。 -
services/file-mcp轻量级本地文件服务。 -
logs运行时日志(如果手动启动后台进程)。
建筑
本地直播流
Browser
|
v
MCP Atlas Web
|
v
Atlas Proxy (apps/server)
|
+--> Search MCP (4001)
+--> Memory MCP (4002)
+--> File MCP (4003)
Atlas代理是可观察性层。它
- 接收请求
- 分配
traceId和requestId - 将呼叫转发到下游服务
- 测量延迟
- 记录跳转成功或失败
- 重建痕迹
- 通过Socket流式传输仪表板快照。输入
Blaxel集成流程
MCP Atlas Server
|
+--> Blaxel Sandbox API / SDK
+--> Blaxel Sandbox MCP endpoint
+--> Blaxel Workspace MCP function discovery API
Atlas目前以三种方式使用Blaxel:
- 连接或创建沙盒
- 连接到经过身份验证的沙盒MCP端点
- 从Blaxel列出工作区MCP服务器功能
- 调用托管的自定义Blaxel MCP函数,并将这些请求记录为Atlas遥测
港口
预期本地端口:
5173web前端4000Atlas代理/后端4001搜索MCP4002存储器MCP4003文件MCP
入门指南
先决条件
- Node.js 22+
- npm 11+
安装
npm install
运行一切
从存储库根目录:
npm run dev
这将开始:
- 网络上
http://localhost:5173 - Atlas代理打开
http://localhost:4000 - 在上搜索MCP
http://localhost:4001 - 内存MCP打开
http://localhost:4002 - 打开MCP文件
http://localhost:4003
构建
npm run build
环境变量
看 .env.示例.
主要变量:
-
BL_API_KEYBlaxel API密钥。 -
BL_WORKSPACEBlaxel工作区名称或ID。 -
BLAXEL_SANDBOX_NAME要创建或重新连接的沙盒名称。 -
BLAXEL_SANDBOX_IMAGE沙盒基础图像。 -
BLAXEL_SANDBOX_MEMORY_MB沙盒内存(MB)。 -
BLAXEL_SANDBOX_PORT暴露的沙盒端口。 -
BLAXEL_SANDBOX_REGION沙盒区域。 -
BLAXEL_MCP_URL沙盒或托管MCP服务器的完整MCP端点URL。
备注
.env被忽视了。- 后端显式加载根目录
.env - 前端在开发过程中使用Vite代理到达后端
本地服务
搜索MCP
路线:
POST /tool
有效载荷示例:
{
"query": "alignment dashboard"
}
存储器MCP
路线:
POST /tool
有效载荷示例:
{
"topic": "alignment dashboard",
"userId": "u1"
}
文件MCP
路线:
POST /tool
有效载荷示例:
{
"filename": "atlas-notes.txt"
}
强制故障有效载荷:
{
"filename": "atlas-notes.txt",
"forceFailure": true
}
Atlas后端API
健康和快照
GET /healthGET /api/snapshot
本地服务注册表
GET /api/services
代理路由
POST /proxy/search-mcpPOST /proxy/memory-mcpPOST /proxy/file-mcp
演示流程
POST /api/demo/agent-task
这将生成一个实时多跳跟踪:
Gateway MCP -> Search MCP -> Memory MCP -> File MCP
Blaxel集成
-
GET /api/integrations/blaxel沙盒连接状态。 -
GET /api/integrations/blaxel/mcp/ping服务器端对配置的MCP端点进行了ping身份验证。 -
GET /api/integrations/blaxel/mcp/tools列出配置的Blaxel MCP端点中的工具。 -
POST /api/integrations/blaxel/mcp/tools/:toolName在配置的Blaxel MCP端点上调用特定工具。 -
GET /api/integrations/blaxel/functions从Blaxel列出工作区MCP服务器功能。 -
GET /api/integrations/blaxel/functions/:functionName/test测试连接到已发现的工作区MCP功能并列出其工具。 -
GET /api/integrations/blaxel/functions/:functionName/tools列出由发现或配置的托管Blaxel MCP函数暴露的工具。 -
POST /api/integrations/blaxel/functions/:functionName/tools/:toolName通过Atlas调用托管的Blaxel MCP工具,并将跟踪遥测数据发送到仪表板中。
前端功能
概述
- 顶级指标
- 异常摘要
- 交通趋势图
- 对齐见解
- Blaxel MCP注册表
- 拓扑快照
- 最新追踪
拓扑学
- 依赖图
- 集群切换
- 动画集群视图
- 边缘列表
健康
- 服务健康表
- 延迟图表
- 故障压力视图
日志
- 最近跟踪列表
- 逐跳跟踪详细信息
- 将所选跟踪导出为Excel兼容
.csv
遥测模型
核心事件类型:
HEARTBEATREQUEST_RECEIVEDREQUEST_FORWARDEDREQUEST_COMPLETEDREQUEST_FAILED
核心领域包括:
traceIdrequestIdsourceMcptargetMcpeventTypestatuslatencyMstimestamperrorMessage
所有遥测数据当前都存储在内存中。还没有数据库。
异常检测
Atlas目前提出了以下异常情况:
- 失败的跟踪
- 慢跳
- 缓慢的端到端跟踪
- p95潜伏期延长
- 高故障率
- 离线服务
这些计算公式如下:
Blaxel笔记
为什么浏览器访问 /mcp 退货401
Blaxel MCP端点需要身份验证标头。在浏览器中直接打开MCP URL将返回:
{
"error": "Unauthorized",
"message": "Authentication required"
}
这是意料之中的。
Atlas通过从后端连接并发送来解决这个问题:
Authorization: Bearer <BL_API_KEY>X-Blaxel-Workspace: <BL_WORKSPACE>
当前Blaxel状态
在实施时:
- 沙盒MCP端点连接正常
- 来自沙盒MCP工作的工具列表
- 工作区功能发现端点工作
- 部署后,Atlas可以调用托管的Blaxel MCP函数
- 如果工作区中没有部署MCP功能,则工作区功能列表可能为空
如果 GET https://api.blaxel.ai/v0/functions 为您的工作区返回一个空数组,即使存在猜测的URL,Atlas也不会将托管的MCP函数视为活动的。在这种状态下,对托管端点的请求通常会失败 Workload not found,这表示该功能未在Blaxel上成功部署。
托管自定义MCP服务器
该仓库现在包括一个可部署的托管MCP服务器,位于:
它公开了四个工具:
atlasSearchatlasMemoryatlasFileatlasAgentTask
部署配置位于:
部署后预期的托管终结点:
https://run.blaxel.ai/<workspace>/functions/mcp-atlas-tools/mcp
建议从该文件夹部署流:
bl serve --hotreload
bl deploy
部署后,Atlas将发现 mcp-atlas-tools 从Blaxel或合成其预期的URL BLAXEL_ATLAS_FUNCTION_NAME 并在 Blaxel MCP Registry.
已知限制
- 遥测数据仅存储在内存中
- 还没有PostgreSQL或Supabase持久化
- Atlas本身没有身份验证层
- 本地服务是类似HTTP MCP的服务,而不是完整的MCP协议服务器
- 前端的捆绑包大小仍然很大
- Blaxel工作区发现仅列出已部署的MCP功能;它本身不会产生痕迹
- 此环境中未安装Blaxel CLI,因此必须在登录Blaxel后从您的计算机运行部署
建议的后续步骤
- 在PostgreSQL或Supabase中持久化跟踪和度量
- 添加跨跟踪的过滤和搜索
- 将外部真实MCP流量摄入Atlas遥测方案
- 将本地服务、沙盒MCP工具和工作区MCP功能统一到一个可观察的注册表中
- 为Blaxel MCP调用添加更丰富的每工具遥测
- 通过路由级代码拆分减小前端包大小
有用的命令
运行所有服务:
npm run dev
构建一切:
npm run build
仅运行后端:
npm run dev -w @mcp-atlas/server
只运行前端:
npm run dev -w @mcp-atlas/web
只运行一个服务:
npm run dev -w @mcp-atlas/search-mcp
文件引用
主后端:
- apps/server/src/index.ts
- apps/server/src/store.ts
- apps/server/src/services.ts
- apps/server/src/blaxel.ts
- apps/server/src/blaxel-mcp.ts
- apps/server/src/blaxel-functions.ts
前端:
本地服务: