使用说明
MCP注册表分析
用于跟踪模型上下文协议(MCP)服务器增长和分布的静态仪表板。
概述
该项目提供MCP注册表生态系统的实时可视化,跟踪服务器数量随时间的变化,并按类型(本地与远程)对其进行分类。数据通过自动化的GitHub Actions工作流每小时收集一次,并通过交互式Next.js仪表板显示。
特性
- 实时分析:查看总服务器数、本地服务器数和远程服务器数
- 时间序列可视化:由Recharts提供支持的交互式图表
- 灵活过滤:按服务器类型筛选(全部/本地/远程)
- 时间粒度:按小时、每天、每周或每月查看数据
- 响应式设计:针对320px至4K显示器进行了优化
- 深色主题:针对可读性进行了优化的现代深色UI
- 静态站点:快速加载时间(<3s),静态发电
技术栈
前端
- Next.js 14(带静态导出的应用路由器)
- TypeScript
- Tailwind CSS
- Recharts(数据可视化)
- Radix UI(可访问组件)
基础设施
- Bash(数据收集脚本)
- GitHub Actions(用于每小时数据聚合的macOS运行器)
- CSV文件存储(时间序列快照)
入门指南
先决条件
- Node.js 18+和npm
- Bash和jq(用于运行聚合脚本)
- Git
安装
- 克隆存储库:
git clone <repository-url>
cd mcp-registry-growth
- 安装依赖项:
npm install
- 运行开发服务器:
npm run dev
- 打开 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运行器上每小时运行一次,以自动收集数据。工作流程:
- 检出存储库
- 执行bash脚本
- 提交新快照并将其推送到仓库
- 触发静态站点的重建
项目结构
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端点访问)
重要提示
- 服务器可以属于这两个类别:一些服务器同时提供本地安装包和远程端点
- CSV格式:
timestamp,total,local,remotetotal:注册表中的唯一服务器总数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-merchantco.pipeboard/meta-ads-mcp
发展
可用脚本
npm run dev-启动开发服务器npm run build-为生产而建(静态出口)npm run start-为生产构建提供服务(注意:静态导出不需要此功能)npm run lint-运行ESLint
添加新功能
- 遵循中的现有组件结构
components/ - 从以下位置使用TypeScript类型
lib/types.ts - 与顺风课程保持黑暗主题的一致性
- 确保响应式设计(在320px、768px、1024px、1920px下测试)
宪法原则
本项目遵循以下原则:
- 静态站点:无需运行时服务器,可部署到任何地方
- 响应式设计:支持所有设备尺寸(320px至4K)
- 最小依赖性:仅限基本套餐(总计<2MB)
许可证
[待添加许可证信息]
贡献
[添加投稿指南]
