MCP注册表分析
用于跟踪模型上下文协议(MCP)服务器增长和分布的静态仪表板。
概述
该项目提供MCP注册表生态系统的实时可视化,跟踪服务器数量随时间的变化,并按类型(本地与远程)对其进行分类。数据通过自动化的GitHub Actions工作流每小时收集一次,并通过交互式Next.js仪表板显示。
特性
- 实时分析:查看总服务器数、本地服务器数和远程服务器数
- 时间序列可视化:由Recharts提供支持的交互式图表
- 灵活过滤:按服务器类型筛选(全部/本地/远程)
- 时间粒度:按小时、每天、每周或每月查看数据
- 响应式设计:针对320px至4K显示器进行了优化
- 深色主题:针对可读性进行了优化的现代深色UI
- 静态站点:快速加载时间(\
cd mcp-registry-growth
2. 安装依赖项:
npm install
3. 运行开发服务器:
npm run dev
4. 打开 [http://localhost:3000](http://localhost:3000) 在浏览器中
### 生产大楼
生成静态站点:
npm run build
静态文件将输出到 `out/` 目录。
## 数据收集
### 手动数据收集
手动运行bash聚合脚本:
bash scripts/aggregate-servers.sh
这将从MCP注册表API获取最新的服务器计数,并将带有时间戳的快照附加到 `data/snapshots.csv`.
### 自动收集
GitHub操作工作流(`.github/workflows/aggregate-data.yml`)在macOS运行器上每小时运行一次,以自动收集数据。工作流程:
1. 检出存储库
1. 执行bash脚本
1. 提交新快照并将其推送到仓库
1. 触发静态站点的重建
## 项目结构
mcp-registry-growth/ ├── app/ # Next.js app directory │ ├── about/ # About page │ ├── layout.tsx # Root layout │ ├── page.tsx # Dashboard page │ └── globals.css # Global styles ├── components/ │ ├── charts/ # Chart components │ ├── navigation/ # Navigation components │ └── ui/ # Reusable UI components ├── lib/ │ ├── types.ts # TypeScript type definitions │ ├── data-loader.ts # CSV parsing logic │ ├── data-aggregator.ts # Data aggregation logic │ └── utils.ts # Utility functions ├── scripts/ │ └── aggregate-servers.sh # Bash data collection script ├── data/ │ └── snapshots.csv # Time-series data storage └── .github/workflows/ └── aggregate-data.yml # Automated data collection workflow
## 数据模式
### CSV格式(`data/snapshots.csv`)
timestamp,total,local,remote 2025-10-28T00:00:00Z,150,95,65
- `timestamp`:ISO 8601时间戳
- `total`:唯一服务器的总数
- `local`:服务器数量 `packages` 财产
- `remote`:服务器数量 `remotes` 财产
## 分类逻辑
根据MCP注册表API响应中的属性对服务器进行分类:
### 分类规则
- **本地服务器**有一个...,有... `server.packages` 属性(可通过npm/docker安装)
- **远程服务器**有一个...,有... `server.remotes` 属性(可通过HTTP/SSE端点访问)
### 重要提示
1. **服务器可以属于这两个类别**:一些服务器同时提供本地安装包和远程端点
1. **CSV格式**: `timestamp,total,local,remote`
- `total`:注册表中的唯一服务器总数
- `local`:服务器数量 `packages` 财产
- `remote`:服务器数量 `remotes` 财产
- 注: `local + remote` 可能超过 `total` 由于服务器同时具有这两个属性
### 已验证的分布(截至2025年10月29日)
基于注册表中的1427台服务器:
- **仅限本地**:817台服务器(57.2%)
- **仅远程**:513台服务器(35.9%)
- **两者**:48台服务器(3.4%)
- **两者都不**:49台服务器(3.4%)-仅元数据条目
**具有这两个属性的示例服务器**:
- `ai.shawndurrani/mcp-merchant`
- `co.pipeboard/meta-ads-mcp`
## 发展
### 可用脚本
- `npm run dev` -启动开发服务器
- `npm run build` -为生产而建(静态出口)
- `npm run start` -为生产构建提供服务(注意:静态导出不需要此功能)
- `npm run lint` -运行ESLint
### 添加新功能
1. 遵循中的现有组件结构 `components/`
1. 从以下位置使用TypeScript类型 `lib/types.ts`
1. 与顺风课程保持黑暗主题的一致性
1. 确保响应式设计(在320px、768px、1024px、1920px下测试)
## 宪法原则
本项目遵循以下原则:
1. **静态站点**:无需运行时服务器,可部署到任何地方
1. **响应式设计**:支持所有设备尺寸(320px至4K)
1. **最小依赖性**:仅限基本套餐(总计\<2MB)
## 许可证
\[待添加许可证信息\]
## 贡献
\[添加投稿指南\]