使用说明
Cronos402 MCP索引器
Cronos402生态系统的分析和服务器目录服务。
生产URL:https://indexer.cronos402.dev
概述
MCP Indexer为Cronos402生态系统提供数据持久性、分析和服务器发现。它从MCP服务器获取使用事件,计算质量分数,并维护可用服务器的公共目录。开发人员可以通过这个集中索引发现服务、监控性能和调节服务器列表。
建筑
- 框架:使用TypeScript的Express.js
- 数据库:用PostgreSQL喷洒ORM
- 分析:实时事件聚合
- 节制:行政控制审批系统
- 质量评分:自动化性能指标
特性
- 从MCP服务器接收使用事件
- 实时分析和指标
- 公共服务器目录
- 质量分数计算
- 审核和批准工作流程
- 性能跟踪(成功率、延迟、错误)
- 搜索和过滤
- 管理员审核工具
设置
- 复制
.env.example到.env:
DATABASE_URL=postgresql://user:password@localhost:5432/cronos402
INGESTION_SECRET=your-ingestion-secret
MODERATION_SECRET=your-moderation-secret
PORT=3010
- 运行迁移:
pnpm db:generate
pnpm db:migrate
- 启动服务器:
pnpm install
pnpm dev
API终点
公共端点
POST/摄入/事件
从MCP服务器接收使用事件。
请求:
{
"serverId": "server-123",
"toolName": "get_weather",
"success": true,
"latencyMs": 145,
"errorType": null,
"timestamp": "2024-01-22T12:00:00Z"
}
标题:
Authorization: Bearer ${INGESTION_SECRET}
POST/索引/运行
触发服务器的手动索引。
GET/事件/摘要
获取服务器的事件摘要。
查询参数:
origin(必填):服务器源URL
答复:
{
"totalEvents": 1000,
"successRate": 0.98,
"avgLatencyMs": 150,
"p95LatencyMs": 250,
"errorRate": 0.02
}
GET/服务器
列出可用的MCP服务器。
查询参数:
include:approved|all(默认:已批准)sort:score|recent(默认值:分数)limit:结果数(默认值:20)offset:分页偏移量(默认值:0)
答复:
{
"servers": [
{
"id": "server-123",
"name": "Weather API",
"description": "Get weather data for any city",
"url": "https://api.example.com/mcp",
"qualityScore": 95,
"status": "approved",
"createdAt": "2024-01-01T00:00:00Z"
}
],
"total": 50,
"limit": 20,
"offset": 0
}
GET/server/:id
获取详细的服务器信息。
答复:
{
"id": "server-123",
"name": "Weather API",
"description": "Get weather data for any city",
"url": "https://api.example.com/mcp",
"qualityScore": 95,
"status": "approved",
"stats": {
"totalCalls": 10000,
"successRate": 0.98,
"avgLatency": 150,
"p95Latency": 250
},
"tools": [
{
"name": "get_weather",
"description": "Get current weather",
"callCount": 5000
}
]
}
管理端点
要求 Authorization: Bearer ${MODERATION_SECRET}
POST/servers/:id/中等
更新审核状态。
请求:
{
"status": "approved" | "rejected" | "flagged" | "disabled",
"reason": "Optional moderation reason"
}
POST/评分/重新计算
重新计算所有服务器的质量分数。
适度状态
- 待定:新提交,等待审查
- 批准:已核实并公开上市
- 拒绝:不适合目录
- 残疾的:管理员暂时禁用
- 标记:需要注意
质量评分
从0到100计算,基于:
- 成功率 (40%):成功呼叫的百分比
- 延迟P95 (30%):第95百分位响应时间
- 错误率 (20%):错误百分比
- 运行时间 (10%):服务器可用性
公式:
const score =
(successRate * 40) +
(latencyScore * 30) +
((1 - errorRate) * 20) +
(uptime * 10);
发展
# Install dependencies
pnpm install
# Start development server
pnpm dev
# Build for production
pnpm build
# Start production server
pnpm start
数据库操作
# Generate migrations
pnpm db:generate
# Run migrations
pnpm db:migrate
# Open Drizzle Studio
pnpm db:studio
数据库模式
核心表:
servers-已注册的MCP服务器usage_events-来自服务器的事件日志server_stats-汇总统计数据moderation_log-管理员操作历史记录quality_scores-计算绩效得分
部署
生产建设
pnpm build
NODE_ENV=production pnpm start
码头工人
FROM node:20-alpine
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN npm install -g pnpm && pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
EXPOSE 3010
CMD ["pnpm", "start"]
环境要求
- PostgreSQL数据库
- HTTPS端点
- 安全摄入秘密
- 管理员审核密码
监控
GET /health-服务健康检查GET /metrics-普罗米修斯指标- 数据库查询监控
- 事件摄取率跟踪
整合
服务器注册
服务器在发送第一个事件时自动注册:
import axios from 'axios';
await axios.post('https://indexer.cronos402.dev/ingest/event', {
serverId: 'my-server',
toolName: 'my_tool',
success: true,
latencyMs: 100
}, {
headers: {
'Authorization': `Bearer ${INGESTION_SECRET}`
}
});
客户端发现
查找可用服务器:
const response = await fetch(
'https://indexer.cronos402.dev/servers?include=approved&sort=score'
);
const { servers } = await response.json();
资源
- 文档: docs.cronos402.dev/indexer
- 仪表盘: 网站 cronos402.dev
- 软件开发工具包: npmjs.com/package/cronos402
- GitHub: github/Cronos402/mcp-indexer
许可证
麻省理工学院