使用说明
🌐 SlashMCP.com:代理中心
发现和连接模型上下文协议(MCP)服务器的最快方法。
一个用于模型上下文协议(MCP)服务的综合注册表和管理平台。此monorepo包含用于发现、管理和与MCP代理和服务交互的前端和后端应用程序。
📋 目录
🎯 概述
SlashMCP.com是一个平台,旨在帮助开发人员发现、注册和管理模型上下文协议服务。它提供了一个用户友好的界面,用于浏览可用的MCP代理、查看其详细信息和管理服务注册。
✨ 特性
核心功能
- 服务注册中心:使用元数据注册和管理MCP服务
- 搜索和筛选:按名称、端点或状态查找服务
- 服务管理:创建、更新和删除服务条目
- 服务详情:查看有关每项服务的全面信息
- 集成状态系统:三层状态跟踪(活动、集成前、离线)
- 自动化集成:MCP服务器的批量注册和集成脚本
- 一键安装:只需单击一下,即可将STDIO服务器直接安装到Cursor或Claude Desktop
- 聊天界面:通过聊天界面(默认登录页面)与MCP代理交互
- 语音转录:使用OpenAI Whisper API实时语音转文本
- 文件分析:使用Google Gemini Vision对PDF、图像和文本文件进行人工智能分析
- 屏幕截图:使用浏览器API捕获和分析屏幕内容
- 图像生成:使用Nano Banana MCP(双子座供电)从自然语言生成图像
- 图像显示:通过自动blob URL转换直接在聊天中查看生成的图像
- STDIO服务器支持:完全支持基于STDIO的MCP服务器(如Nano Banana MCP)
- HTTP服务器支持:支持具有自定义标头的基于HTTP的MCP服务器
- Apache Pulsar编排器:绕过Gemini进行高信号查询的智能工具路由
- 自动工具发现:注册时STDIO服务器的自动工具发现
- 实时进度:实时作业进度更新的服务器发送事件(SSE)
- 多层回退:用于可靠人工智能生成的强大API后退策略
- 现代用户界面:使用Next.js和Tailwind CSS构建,提供响应式体验
🆕 最新升级(2024年12月)
谷歌地图MCP集成(新增-2024年12月)
- 地点搜索:查找咖啡店、餐馆、唱片店等
search_places工具 - 天气数据:通过以下方式获取实时天气、温度和预报
lookup_weather工具 - 路线规划:使用以下公式计算方向和行驶时间
compute_routes工具 - 智能参数格式化:自动设置Google Maps API的查询格式(textQuery for place,location object for weather)
- 增强的地图链接:使用地点ID在谷歌地图中显示准确的企业名称
- MCP访问已启用:需要
gcloud beta services mcp enable mapstools.googleapis.com用于API访问
Apache Pulsar编排器(从Kafka迁移至2025年1月)
- 智能刀具路径:自动将高信号查询(如“下一场音乐会什么时候”、“天气怎么样……”)直接路由到适当的MCP工具,而无需调用Gemini
- Gemini配额保护:绕过Gemini API进行确定性查询,为复杂推理任务节省配额
- 快速路径匹配:关键字和语义匹配在<50ms内将查询路由到工具
- 天气查询路由:将温度/天气查询发送到谷歌地图
lookup_weather工具 - 地点查询路由:将基于位置的搜索路由到谷歌地图
search_places工具 - 异步处理:基于Apache Pulsar的事件驱动架构,用于可扩展编排
- SSE支持:处理来自MCP服务器(如Exa)的服务器发送事件(SSE)响应
- 共享结果消费者:始终准备就绪的消费者消除了超时问题
- 状态端点:通过以下方式检查编排器运行状况
/api/orchestrator/status - 多租户:Pulsar内置的命名空间隔离,可实现更好的资源管理
- 地理复制就绪:本机支持跨区域邮件复制
它是如何工作的:
- 用户查询通过以下方式输入
/api/orchestrator/query - Ingress Gateway标准化并发布到Pulsar主题
- MCP匹配器执行快速关键字/语义匹配
- 执行协调器调用匹配的工具
- 结果发布到
orchestrator-results并返回给客户
设置(Apache Pulsar 3.2.0):
# Start Pulsar (Docker)
docker compose up -d pulsar
# Initialize namespaces and topics
npm run init-pulsar
# Enable in backend .env
ENABLE_PULSAR=true
PULSAR_SERVICE_URL=pulsar://localhost:6650
PULSAR_HTTP_URL=http://localhost:8080
PULSAR_NAMESPACE=mcp-core/default
看 Pulsar设置指南 和 编排器架构 了解详情。
一键安装
- 游标深度链接支持:使用自动深度链接导航将STDIO服务器直接安装到Cursor
- 克劳德桌面剪贴板:单击复制到剪贴板进行Claude Desktop配置
- 智能客户端检测:自动禁用HTTP服务器的一键选项(需要手动设置)
- 权限预览:安装前查看服务器功能和权限
- 优化用户体验:绕过受支持客户端的通用对话框,提供即时安装
基于纳米香蕉MCP的图像生成
- Gemini驱动的图像生成:与Nano Banana MCP完全集成,用于AI图像生成
- 同步和异步支持:处理即时结果和异步作业轮询
- Base64到Blob转换:将大型base64图像自动转换为blob URL(修复414个错误)
- 聊天中的图像显示:生成的图像直接显示在聊天界面中
- API密钥管理:通过UI或API轻松配置API密钥
- 配额错误处理:API配额问题的用户友好错误消息
- 新增:启发式保护可防止意外生成图像,除非明确请求或覆盖(后端路由
POST /api/mcp/tools/generate).
- 新增:启发式保护可防止意外生成图像,除非明确请求或覆盖(后端路由
MCP服务器集成系统(新增-2024年12月)
- 三层状态系统:主动、预集成和离线状态跟踪
- 自动化集成:前20名MCP服务器的批量注册脚本
- 包装验证:STDIO服务器的自动npm包验证
- 健康检查:HTTP服务器的HTTP端点运行状况监视
- 集成状态服务:基于工具、软件包和运行状况的智能状态确定
- 集成脚本:
register-top-20:从清单中批量注册服务器integrate-top-20:验证软件包并发现工具verify-integration:检查所有服务器集成状态test-mcp-servers:使用工具调用测试活动服务器
看 MCP集成指南 了解详情。
STDIO服务器支持
- 完整的STDIO协议:使用JSON-RPC完全支持基于STDIO的MCP服务器
- 自动工具发现:注册STDIO服务器时会自动发现工具
- 按需发现:如果工具未预先注册,则按需发现工具
- 背景发现:如果初始发现超时,工具发现将在后台继续
- 环境变量传递:STDIO进程的安全环境变量注入
- 状态机:STDIO通信的强大状态管理(初始化→ 已初始化→ 呼唤→ 完成)
服务器身份验证(SEP-1302)
- 动态身份提供者:注册表现在支持
/.well-known/mcp-server-identity标准 - 自动验证:发布服务器时,注册表会自动ping身份端点以验证所有权
- 加密签名:验证来自服务器身份终结点的已签名元数据
- 同一性地位:跟踪每个注册服务器的验证状态和元数据
任务管理仪表板(SEP-1686)
- 持久请求跟踪:监视跨MCP服务器的长时间运行的异步操作
- 任务仪表板新
/tasks路由提供对所有持久任务的实时监控 - 状态监控:跟踪任务进度、完成状态和错误
- 自动刷新:具有可配置自动刷新功能的实时更新
- 任务筛选:按服务器、状态或类型筛选任务
- 安全分数概述:查看所有已注册服务器的信任分数
信任评分引擎
- 安全扫描:分析注册服务器安全问题的后台工作人员
- npm审计集成:扫描依赖关系以查找已知漏洞(基础设施就绪)
- 基于LLM的代码分析:人工智能驱动的代码扫描,以实现安全最佳实践(基础设施就绪)
- 安全评分:每台服务器的0-100评分系统
- 扫描结果:通过API存储和访问详细的安全分析结果
- 定期扫描:对所有活动服务器进行自动安全扫描
API终点
新端点
GET /api/tasks-列出所有持久任务GET /api/tasks/:id-获取特定任务的详细信息GET /api/tasks/server/:serverId-获取服务器的任务POST /api/tasks-创建新的持久任务PATCH /api/tasks/:taskId/progress-更新任务进度POST /api/security/scan/:serverId-触发安全扫描GET /api/security/scores-获取所有安全评分GET /api/security/score/:serverId-获取服务器的安全评分
编排器端点
POST /api/orchestrator/query-向智能编排器提交查询GET /api/orchestrator/status-检查编排器运行状况和服务状态
📁 存储库结构
mcp-registry/
├── app/ # Frontend Next.js application
│ ├── chat/ # Chat interface pages
│ ├── settings/ # Settings pages
│ └── page.tsx # Main registry page
├── components/ # React components
│ ├── ui/ # Reusable UI components
│ └── ... # Feature components
├── backend/ # Backend Express API
│ ├── src/ # Backend source code
│ │ └── server.ts # Express server
│ ├── prisma/ # Prisma schema and migrations
│ │ ├── schema.prisma
│ │ └── migrations/
│ └── package.json # Backend dependencies
├── types/ # TypeScript type definitions
├── lib/ # Utility functions and helpers
├── public/ # Static assets
└── README.md # This file
⚡ 快速开始
1.使用Nano Banana MCP生成图像
通过注册表UI(推荐)
- 启动后端和前端(请参阅 开发设置 在......下面
- 导航到注册表UI
http://localhost:3000/registry - 找到“Nano Banana MCP”或添加它:
- 服务器类型:STDIO服务器
- 命令:
npx - 参数:
["-y", "nano-banana-mcp"] - 凭证:您的Gemini API密钥(从
AIza...)
- 从获取Gemini API密钥 谷歌AI工作室
- 保存并开始聊天!
在聊天中尝试:
- 转到聊天页面
- 从代理下拉列表中选择“Nano Banana MCP”
- 类型:“给我画一只小猫”
- 图片将直接出现在聊天中!
2.添加官方谷歌地图(Grounding Lite)
通过注册表UI:
- 导航到注册表UI
http://localhost:3000/registry - 找到“谷歌地图MCP(接地精简版)”,然后单击编辑
- 在 HTTP标头(JSON),设置:
{"X-Goog-Api-Key":"YOUR_API_KEY_HERE"} - 启用 地图基础精简版API 在您的Google Cloud控制台中
- 保存并开始聊天!
对于Cline或Claude Desktop:
"google-maps": {
"command": "npx",
"args": ["-y", "@googlemaps/code-assist-mcp@latest"],
"env": {
"GOOGLE_MAPS_API_KEY": "YOUR_API_KEY_HERE"
}
}
3.启用Apache Pulsar编排器(推荐)
编排器智能地将查询路由到正确的工具,而无需使用Gemini配额:
-
启动Apache Pulsar:
docker compose up -d pulsar npm run init-pulsar -
在后端启用
.env:ENABLE_PULSAR=true PULSAR_SERVICE_URL=pulsar://localhost:6650 PULSAR_HTTP_URL=http://localhost:8080 PULSAR_NAMESPACE=mcp-core/default -
重新启动后端 -您将看到:
[Server] ✓ MCP Matcher started successfully[Server] ✓ Execution Coordinator started successfully[Server] ✓ Result Consumer started successfully
-
测试一下:
- 转到聊天页面
- 选择“自动路线(推荐)”
- 问:“德克萨斯州的下一场iration音乐会是什么时候?”
- 应直接前往Exa,无需双子座!
检查状态:
curl http://localhost:3001/api/orchestrator/status
4.添加剧作家注册表桥
要通过真实的浏览器浏览网页并与地图交互,请执行以下操作:
npx @mcpmessenger/playwright-mcp --install
开发设置
先决条件
- Node.js≥18
- PostgreSQL(或SQLite for dev)
- npm用于后端;前端的pnpm(或npm)
后端(API位于http://localhost:3001)
cd backend
npm install
cp env.example.txt .env # edit secrets/DB
npm run migrate
npm run seed # seeds all stock servers (Playwright, LangChain, Google Maps MCP, Valuation)
npm start
前端(http://localhost:3000)
# From project root:
pnpm install
NEXT_PUBLIC_API_URL=http://localhost:3001 pnpm dev
注: 这 .env.local 文件是通过以下方式自动创建的 NEXT_PUBLIC_API_URL=http://localhost:3001 为了地方发展。
通用环境变量(后端)
DATABASE_URL=postgresql://mcp_registry:your_secure_password@localhost:5432/mcp_registry
PORT=3001
CORS_ORIGIN=http://localhost:3000
GOOGLE_GEMINI_API_KEY=
OPENAI_API_KEY=
# Apache Pulsar Orchestrator (optional but recommended)
ENABLE_PULSAR=true
PULSAR_SERVICE_URL=pulsar://localhost:6650
PULSAR_HTTP_URL=http://localhost:8080
PULSAR_NAMESPACE=mcp-core/default
🏗️ 生态系统架构
注册表在您的本地计算机和谷歌的云计算工具之间进行协调。
graph LR
User([User]) --> Agent[Cline / Claude]
Agent --> Registry{Registry}
subgraph "Managed (Official)"
Registry --> GMaps[Google Maps Grounding]
Registry --> BQ[BigQuery MCP]
end
subgraph "Local / Hybrid"
Registry --> PW[Playwright-MCP]
Registry --> LC[LangchainMCP]
end
GMaps --- Tool1[Search & Routes]
PW --- Tool2[Browser Automation]
🗺️ 新增:谷歌地图MCP集成
注册表现在支持托管和自动化地图工具:
- 谷歌停飞精简版:访问最新的官方地理空间数据、实时天气和距离矩阵。没有幻觉,只有原始的谷歌地图数据。
- 剧作家MCP桥:需要实际查看地图或抓取具体的业务细节吗?使用Playwright桥自动化Google Maps UI。
最近更新(2024年12月)
✅ 天气查询路由已修复
- 天气查询(例如,“得克萨斯州沃思堡的温度是多少”)现在自动路由到谷歌地图
lookup_weather工具 - 智能参数提取处理自然语言和全大写查询
- 返回全面的天气数据:温度、感觉、湿度、风、降水概率等
- 人工选择:手动选择谷歌地图代理时,系统会自动检测天气查询并使用正确的工具
✅ 地点搜索功能增强
- 地点搜索(例如,“在得梅因寻找咖啡店”)路线
search_places工具 - 使用地点ID改进地图链接,以显示准确的企业名称
- 使用坐标和直接谷歌地图链接进行更好的响应格式设置
设置要求:
- 添加
GOOGLE_MAPS_API_KEY到backend/.env - 在Google云控制台中启用“Maps Grounding Lite API”
- 跑
gcloud beta services mcp enable mapstools.googleapis.com --project=YOUR_PROJECT_ID - 更新API关键限制,以允许“Maps Grounding Lite API”
- 配置更改后重新启动后端
🔀 工作流概览
graph TD
A[Chat UI] -->|/v0.1/servers| B[Registry Backend]
A -->|/v0.1/invoke| B
B -->|routes to| C[MCP Servers (HTTP/STDIO)]
C -->|tools/call result| B --> A
笔记:
- HTTP MCP可能需要标头(例如,Google Maps MCP需要
X-Goog-Api-Key在代理的HTTP标头中)。 - STDIO MCP(剧作家、LangChain)是由后端生成的。
- 注册种子包括Playwright、LangChain和谷歌地图MCP;通过注册表UI添加您自己的或发布API。
API终点
后端提供以下关键端点:
-
注册API (MCP v0.1规范):
GET /v0.1/servers-列出所有已注册的MCP服务器(支持?search=和?capability=查询参数)GET /v0.1/servers/:serverId-按ID获取特定服务器POST /v0.1/publish-注册新的MCP服务器PUT /v0.1/servers/:serverId-更新现有服务器DELETE /v0.1/servers/:serverId-删除服务器POST /v0.1/invoke-通过后端代理调用MCP工具
-
音频转录:
POST /api/audio/transcribe-使用Whisper转录音频文件
-
文件分析:
POST /api/documents/analyze-使用Gemini Vision分析文档(PDF、图像、文本)
-
流媒体和WebSocket:
GET /api/streams/jobs/:jobId-通过SSE获取工作状态ws://localhost:3001/ws-WebSocket用于实时更新
事件驱动架构组件
- Apache Pulsar 3.2.0:云原生消息系统为异步设计管道和智能编排器提供动力。从以下内容开始
docker compose up -d pulsar并初始化为npm run init-pulsar.用以下命令关闭它docker compose down pulsar. - 编排器主题:
user-requests:来自Ingress网关的标准化用户查询tool-signals:来自MCP匹配器的高置信度工具匹配tool-signals-retry-5s,tool-signals-retry-30s:延迟重试主题tool-signals-dlq:失败消息的死信队列orchestrator-plans:Gemini后备计划(当匹配器无法解决时)orchestrator-results:最终工具执行结果
- 注册表主题:
sessions:会话生命周期事件registrations/global:服务器注册事件events/activity:用户活动跟踪
- 编排器流程:
- 前端呼叫
POST /api/orchestrator/query用户查询 - Ingress Gateway将查询标准化并发布到Pulsar
- MCP匹配器执行快速关键字/语义匹配(<50ms)
- 执行协调器调用匹配的工具并发布结果
- 查询路由通过共享结果消费者接收结果
- 响应返回到前端
- 前端呼叫
- 后端流:
POST /api/mcp/tools/generate将请求排队(发布DESIGN_REQUEST_RECEIVED),一个多模式工作器使用它,后端通过其WebSocket推送进度/完成(ws://localhost:3001/ws). - WebSocket测试:你可以用
npx wscat -c ws://localhost:3001/ws并发送{ "type": "subscribe", "jobId": "<id>" }接收job_status更新和由此产生的SVG有效载荷。
通过将Apache Pulsar连接到Prisma支持的后端,我们现在保留了一个响应式前端,而繁重的LLM工作在后台异步进行,智能路由绕过Gemini进行高信号查询。
数据库和内存
后端现在附带PostgreSQL(建议用于生产)和Prisma Memory 保存对话历史、工具调用和记忆的模型。这 memory.service.ts 暴露助手,例如 searchHistory, storeMemory,以及 getMemories,而 invoke 端点暴露了 search_history 该工具使代理可以在响应之前查找相关上下文。保持Postgres容器运行(或点 DATABASE_URL 在托管实例上)以在重启之间保留代理状态。
Prisma在中自动维护迁移历史记录 backend/prisma/migrations;重新运行 npx prisma migrate dev 每当您更改模式时。
📚 文档
综合文档可在 docs/ 目录:
- 开发指南 -完成设置和开发工作流程
- API文档 -完整的API参考
- 部署指导 -生产部署说明
- 事件驱动架构 -Kafka与事件处理
- Kafka安装指南 -如何在本地设置Kafka
- Kafka编排器 -编排器架构和实现
- 测试指导 -一键安装功能测试
- 战略路线图 -长期愿景和战略
💻 发展
前端和后端都可以独立开发:
- 前端:在端口3000上运行(默认Next.js端口)
- 后端:在端口3001上运行(可通过环境变量配置)
看 开发指南 详细说明。
🚢 部署
有关生产部署,请参阅 部署指导.
快速摘要:
- 前端:部署到Vercel(推送到main时自动部署)
- 后端:使用工件注册表部署到GCP Cloud Run
- 数据库:用于开发的云SQL(PostgreSQL)或SQLite
- 事件总线:汇流云(Kafka)或云发布/订阅(可选)
后端部署(云运行):
cd backend
cp Dockerfile.debian Dockerfile
gcloud builds submit --tag us-central1-docker.pkg.dev/PROJECT_ID/mcp-registry/mcp-registry-backend --region us-central1 .
gcloud run deploy mcp-registry-backend \
--image us-central1-docker.pkg.dev/PROJECT_ID/mcp-registry/mcp-registry-backend \
--platform managed \
--region us-central1 \
--allow-unauthenticated
rm Dockerfile
前端部署(Vercel):
- 推送到主分支时自动部署
- 或手动:
vercel --prod
🛠️ 堆栈
- mcp注册表:所有官方和社区服务器的中央发现。
- 剧作家mcp:为您的代理提供完整的浏览器功能(Chromium)。
- LangchainMCP:将MCP工具连接到生产LangGraph/LangChain工作流中。
技术栈
前端
- Next.js 16 -React框架
- 反应19 -UI库
- TypeScript -类型安全
- 顺风 CSS -造型
- Radix UI -可访问的组件图元
- shadcn/ui -UI组件库
后端
- Express.js 5 -Web框架
- 棱镜 -ORM和数据库工具包
- TypeScript -类型安全
- PostgreSQL -数据库(生产),SQLite(开发)
- Google Gemini API -基于AI的SVG生成和文档分析
- Google Vision API -图像分析功能
- OpenAI Whisper API -语音转文本转录
- Apache Pulsar 3.2.0 -用于异步处理和智能编排的云原生事件流
- 服务器发送事件(SSE) -实时进度流
- 双向通信 -双向沟通
- ts节点 -TypeScript执行
- Multer -文件上传处理
🤝 贡献
欢迎投稿!请随时提交拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
📄 许可证
此项目根据ISC许可证获得许可-请参阅 许可证 文件以获取详细信息。
🎨 图像生成示例
以下是如何使用图像生成功能:
-
注册纳米香蕉MCP (如果尚未注册):
- 服务器类型:STDIO服务器
- 命令:
npx - 论据:
["-y", "nano-banana-mcp"] - 证书:您的Gemini API密钥
-
生成图像:
- 转到聊天页面
- 选择“Nano Banana MCP”或使用“自动路由”
- 类型:“给我画一只小猫”
- 等几秒钟。..
- 图片出现在聊天中! 🎉
-
特性:
- 适用于HTTP和STDIO MCP服务器
- 自动工具发现
- 处理大图像(将base64转换为blob URL)
- 显示配额错误和有用消息
- 支持同步和异步生成
🔧 故障排除
图像未显示
- 检查浏览器控制台是否有错误
- 验证注册表中是否正确设置了API项
- 确保为Gemini API启用计费(免费层配额有限)
- 检查网络选项卡是否有414个错误(应通过blob URL转换修复)
API关键问题
- 从获取新密钥 谷歌AI工作室
- 密钥必须以开头
AIza... - 通过注册表UI或API更新
- 看 docs/HOW_TO_GET_GMINI_API_KEY.md文档 详情
一键安装不起作用
- HTTP服务器:一键安装仅适用于STDIO服务器(带命令)。HTTP服务器需要通过通用安装对话框进行手动配置。
- 缺少命令:确保服务器具有
command字段已配置(例如。,npx,node,python) - 光标未打开:验证是否安装了Cursor,浏览器是否允许深度链接导航
- 剪贴板无法工作:确保您正在测试
http://localhost(剪贴板API需要安全上下文)
STDIO服务器不工作
- 验证命令和参数是否正确
- 检查环境变量是否已设置
- 查看后端日志以查找初始化错误
- 确保
npx容器中有
编排器不工作
- 检查Pulsar是否正在运行:
docker ps应该显示pulsar容器处于健康状态 - 验证命名空间和主题是否存在:运行
npm run init-pulsar从后端目录 - 检查后端日志:寻找
[Server] ✓ MCP Matcher started successfully和[Server] ✓ Execution Coordinator started successfully - 验证环境变量:确保
ENABLE_PULSAR=true和PULSAR_SERVICE_URL=pulsar://localhost:6650在backend/.env - 检查状态端点:
curl http://localhost:3001/api/orchestrator/status应将所有服务显示为true - 超时问题:如果查询超时,请检查结果消费者是否正在运行(应查看
[Server] ✓ Result Consumer started successfully) - SSE分析错误:确保在应用SSE解析修复程序后已重新启动后端
- 天气查询未路由:更新匹配器模式后,重新启动后端以获取更改。天气查询应发送到谷歌地图
lookup_weather工具自动 - 生产者错误:查看Pulsar管理用户界面
http://localhost:8080用于主题状态和命名空间配置
📞 支持
对于问题、疑问或贡献,请在 GitHub存储库.
建于❤️ 对于MCP社区
