MCP市场
模型上下文协议(MCP)服务器的生产就绪市场,具有自托管部署和预托管Smithery集成。为互动公司而建。
特性
- 🔐 GitHub OAuth身份验证 -安全用户身份验证
- 🚀 一键部署 -将MCP部署到您的Render帐户
- 🛠️ 自定义MCP支持 -添加您自己的具有动态工具检测的渲染托管MCP
- 🌐 Smithery集成 -预托管的MCP已准备好连接到Poke
- 🔑 API密钥管理 -通过验证对用户API密钥进行安全加密存储
- 🌐 环境变量 -MCP环境变量的轻松配置
- ⚡ 性能优化 -并行处理和缓存以实现快速加载
- 🔒 生产就绪 -PostgreSQL数据库、加密存储、JWT令牌(24小时到期)
- 📊 错误跟踪 -用于生产监控和调试的哨兵集成
- 📱 移动优化 -支持iOS主屏幕的渐进式Web应用程序(PWA)
- 🎨 响应式设计 -桌面、平板电脑和移动设备上的漂亮UI
建筑
后端(/backend)
- 快速API -现代Python web框架
- PostgreSQL(霓虹灯) -具有UUID主键的生产数据库
- SQLAlchemy -具有适当关系和连接池的ORM
- JWT认证 -基于安全令牌的身份验证
- 加密 -敏感数据的Fernet加密
- 呈现API集成 -部署和管理MCP服务
- Smithery API集成 -动态MCP发现和治疗
- FastMCP集成 -MCP服务器的动态刀具检测
- 性能缓存 -API调用和服务状态的内存内缓存
- 并行处理 -并发服务状态检查
- 哨兵错误跟踪 -通过10%的性能抽样进行生产误差监控
- 结构化日志记录 -Python日志模块,可更好地观察
前端(/frontend)
- Next.js 15 -带有TypeScript和App Router的React框架
- 顺风CSS -现代风格,具有戏剧性的渐变和灵敏的设计
- 渐进式Web应用程序(PWA) -添加到支持全屏的iOS主屏幕
- GitHub OAuth -用户身份验证流程
- 环境变量UI -具有验证功能的专业API密钥管理
- Smithery MCP卡 -预托管MCP与搜索集成
- 自定义MCP管理 -添加、配置和管理您自己的MCP
- 性能优化 -顺序加载以防止连接瓶颈
- 移动优先 -响应式断点和iOS安全区域处理
- 哨兵错误跟踪 -客户端错误监控与会话回放
快速开始
先决条件
- Python 3.8+
- Node.js 18+
- 渲染帐户
- GitHub账号
开发设置
- 后端设置
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
cp env.example .env
# Edit .env with your values
python init_db.py
uvicorn main:app --reload- 前端设置
cd frontend
npm install
cp .env.example .env.local
# Edit .env.local with your API URL
npm run dev生产部署
后端(渲染)
- 将代码推送到GitHub
- 在渲染时创建新的Web服务
- 连接到您的GitHub仓库
- 使用
render.yaml配置 - 在Render仪表板中设置环境变量
前端(Vercel)
- 将GitHub仓库连接到Vercel
- 集
NEXT_PUBLIC_API_URL环境变量 - 部署
环境变量
后端
DATABASE_URL-PostgreSQL连接字符串(Neon:https://neon.tech-提供免费套餐)GITHUB_CLIENT_ID-GitHub OAuth应用程序客户端IDGITHUB_CLIENT_SECRET-GitHub OAuth应用程序客户端密钥GITHUB_REDIRECT_URI-OAuth回调URL(指向后端:/auth/github/callback)JWT_SECRET_KEY-JWT令牌签名的秘密(生成随机32+字符串)ENCRYPTION_KEY-用于加密用户数据的Fernet密钥(使用以下方式生成:python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())")FRONTEND_URL-CORS配置的前端URLSMITHERY_API_KEY-用于MCP发现的Smithery Registry API密钥SENTRY_DSN-用于后端错误跟踪的哨兵DSN(可选但推荐)ENVIRONMENT-Sentry的环境名称(默认为“生产”)
看 backend/env.example 查看详细的配置示例。
前端
NEXT_PUBLIC_API_URL-后端API URLNEXT_PUBLIC_SENTRY_DSN-用于前端错误跟踪的哨兵DSN(可选但推荐)
API终点
认证
GET /-健康检查GET /auth/github-启动GitHub OAuthGET /auth/github/callback-OAuth回调GET /auth/me-获取当前用户
MCP管理
GET /mcps/templates-列出可用的MCP模板POST /mcps/detect-services-检测用户的渲染服务POST /mcps/deploy-使用环境变量部署MCPGET /mcps/deployments-获取用户的部署POST /render/validate-key-验证呈现API密钥
自定义MCP管理
POST /mcps/custom-从现有渲染服务添加自定义MCPGET /mcps/custom-获取用户的自定义MCPDELETE /mcps/custom/{custom_mcp_id}-从markplace删除自定义MCP并暂停Render上的服务POST /mcps/custom/{custom_mcp_id}/refresh-tools-刷新自定义MCP的工具列表
环境变量
GET /mcps/deployments/{deployment_id}/env-vars-获取部署的掩码环境变量POST /mcps/deployments/{deployment_id}/env-vars-更新部署环境变量(需要deployment_id)POST /mcps/services/{service_id}/env-vars-直接更新服务环境变量(主要方法)
Smithery集成
GET /mcps/smithery-获取精心策划的Smithery MCPGET /mcps/smithery/search-使用相关性评分搜索Smithery MCPGET /mcps/smithery/{mcp_id}/url-获取Smithery MCP URL
MCP类型
自托管MCP(部署到渲染)
- MCP新闻 -RSS提要和标题
- 天气MCP -天气数据和预报
- GitHub MCP -存储库和问题管理
- Reddit MCP -帖子和搜索功能
- Spotify MCP -音乐搜索和艺术家数据
- 黑客新闻MCP -故事和搜索
- 叫醒服务 -一键唤醒睡眠服务
- 恢复暂停的服务 -重新部署时自动恢复暂停的服务
定制MCP(您自己的服务)
- 添加任何MCP -连接现有的渲染托管MCP服务器
- 动态刀具检测 -使用FastMCP自动发现可用工具
- 环境变量管理 -配置MCP的环境变量
- 实时状态 -实时状态监控(实时、睡眠、部署、暂停)
- 叫醒服务 -一键唤醒睡眠服务
- 恢复暂停的服务 -重新添加时自动恢复暂停的服务
- 自定义图标 -从30多个图标中选择代表您的MCP的图标
- 删除并暂停 -删除MCP并暂停Render上的服务
命名要求: 为了自动检测,渲染服务名称应包含 mcp, fastmcp,或 server (例如,“天气mcp”、“我的服务器”、“fastmcp工具”)。名称或存储库URL中没有这些关键字的服务将不会出现在服务选择列表中。
Smithery MCP(预托管)
- 动态发现 -由Smithery Registry策划
- 热门MCP -Notion、Gmail、Slack、谷歌云端硬盘、日历
- 开发工具 -GitHub、Linear、Figma、Jira
- 搜索与研究 -Exa,DeepWiki,语义学者
- 数据库和内存 -Supabase,Mem0,超级记忆
- 沟通 -Discord、Twitter、Slack集成
安全
- 在使用Fernet加密进行数据库存储之前,对所有用户API密钥进行加密
- 用于安全身份验证的JWT令牌(24小时到期)
- 具有明确允许来源的CORS保护
- 输入验证和净化
- 日志中没有敏感数据
- 所有机密的环境变量(无硬编码凭据)
- 具有自动填充功能的安全密码输入字段
- 用于生产的加密数据库连接(PostgreSQL SSL)
浏览器兼容性
- Chrome/Edge:完全支持PWA功能
- Safari浏览器(iOS/macOS):完全支持主屏幕添加支持
- 火狐:全力支持
- 移动:针对iOS和Android进行了优化
贡献
欢迎投稿!请随时提交拉取请求。
许可证
MIT许可证-有关详细信息,请参阅许可证文件
