多应用托管平台

MCP应用商店是一个多应用托管平台,允许用户从单一服务器部署多个AI驱动的应用,并共享基础设施、安全和路由。

  • by Parham-dev
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Parham-dev/mcp-app

使用说明

MCP应用商店🏪

用于MCP(模型上下文协议)应用程序的多应用程序托管平台。从具有共享基础设施、安全性和路由的单个服务器部署多个AI驱动的应用程序。

🎯 这是什么?

MCP应用商店是 主机平台 这让你:

  • 🚀 从单个服务器部署多个MCP应用程序
  • 🔐 所有应用程序共享API密钥身份验证
  • 🛤️ 自动路由: /{app-id}/mcp 对于每个应用程序
  • 📦 单一部署到Railway/Vercel/任何主机
  • 🔧 轻松添加新应用程序-只需创建一个文件夹!

🌐 直播平台

生产URL: https://mcp-production-3a5e.up.railway.app

可用应用程序

应用程序 端点 描述
🍳 食谱混音 /recipe-remix/mcp 具有漂亮UI的AI食谱助手
📊 分配混音 /allocation-remix/mcp 动态资源分配可视化工具
📄 PDF洞察 /pdf-insight/mcp 带有注释和选择操作的AI文档阅读器

📄 文档阅读器愿景(PDF Insight)

目标:一个可扩展的、与客户端无关的文档阅读器,可在任何AI主机内工作。用户可以打开文档,在应用程序中阅读它们,并使用具有持久记忆和个性化的AI操作(解释、总结、翻译、注释)。

MVP方法:

  • 仅本地存储笔记和设置
  • 基于选择的快速操作的单文档焦点
  • 构建可移植性,然后交换存储/身份验证层

扩大计划:

  • 身份验证、数据库和文件存储的辅助数据库
  • 多设备同步和团队协作
  • 用于跨笔记和文档进行语义搜索的向量存储器

🔌 连接到克劳德桌面/VS代码

{
  "servers": {
    "recipe-remix": {
      "type": "sse",
      "url": "https://mcp-production-3a5e.up.railway.app/recipe-remix/mcp"
    },
    "allocation-remix": {
      "type": "sse",
      "url": "https://mcp-production-3a5e.up.railway.app/allocation-remix/mcp"
    },
    "pdf-insight": {
      "type": "sse",
      "url": "https://mcp-production-3a5e.up.railway.app/pdf-insight/mcp"
    }
  }
}

🏗️ 建筑

mcp-app/
├── main.ts              # Multi-app server with routing & auth
├── app-registry.ts      # App registration system
├── apps/                # 📁 Each app lives here
│   └── recipe-remix/    # Example app
│       ├── server.ts    # Tool & resource registration
│       ├── mcp-app.tsx  # React UI entry
│       └── README.md    # App-specific docs
├── dist/                # Built HTML bundles
├── package.json
└── vite.config.ts

路由如何工作

Request: GET /recipe-remix/mcp
              ↓
main.ts routes to apps/recipe-remix/server.ts
              ↓
App handles MCP protocol (tools, resources, UI)
              ↓
Response returned to client

➕ 添加新应用程序

  1. 创建应用文件夹:

    mkdir -p apps/my-new-app/src
    
  2. 创建server.ts 使用您的工具:

    import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
    
    export function registerTools(server: McpServer) {
      server.tool("my-tool", { /* schema */ }, async (params) => {
        // Your tool logic
      });
    }
    
  3. 创建mcp-app.tsx 对于UI:

    import React from "react";
    
    export default function App({ data }) {
      return <div>{/* Your UI */}</div>;
    }
    
  4. 在app-reistry.ts中注册:

    export const apps = {
      "recipe-remix": { /* ... */ },
      "my-new-app": {
        name: "My New App",
        description: "Does something cool",
        path: "./apps/my-new-app/server.ts"
      }
    };
    
  5. 添加Vite构建配置 在vite.config.ts中

  6. 构建和测试:

    npm run build
    npx tsx main.ts
    

🔧 本地开发

# Install dependencies
npm install

# Build all apps
npm run build

# Start the server
npx tsx main.ts

# Server runs at http://localhost:3001
# Apps available at http://localhost:3001/{app-id}/mcp

在本地测试应用程序

{
  "servers": {
    "recipe-remix": {
      "type": "sse",
      "url": "http://localhost:3001/recipe-remix/mcp"
    }
  }
}

🚢 部署

部署在铁路上,具有自动构建功能:

railway up

环境变量

变量 描述 默认值
PORT 服务器端口 3001(铁路使用8080)
API_KEY 用于auth None(公共访问)的可选API密钥

🔒 安全

  • API密钥验证 -可选-设置 API_KEY env-var通过以下方式启用身份验证 ?apiKey= 或 Bearer 头球
  • CSP支持 -应用程序可以为外部资源配置内容安全策略
  • CORS已启用 -浏览器客户端支持跨源请求

🎨 技术栈

  • 服务器:带StreamableHTTPServerTransport的Express+MCP SDK
  • 前端:React 18、TypeScript、CSS模块(以及基于示例的香草应用程序)
  • 图标:Lucide React(树抖动SVG)
  • 动画:洛蒂反应
  • 捆绑器:Vite+Vite插件单文件
  • 部署:铁路
  • 计划的:Supabase(身份验证、邮政、存储)

📜 MCP协议

该平台实现了 模型上下文协议:

  • 工具 -AI可以调用的功能(例如。, show-recipe)
  • 资源 -AI可以显示的数据/UI
  • 运输 -SSE用于流媒体,HTTP用于请求/响应

每个应用程序都定义了自己的工具和资源,平台处理:

  • 协议协商
  • 会话管理
  • 认证
  • 路由

🗺️ 路线图

  • []更多应用程序(天气、地图、股票等)
  • []应用程序发现端点
  • []使用情况分析
  • []速率限制
  • []应用程序版本控制
  • [x] PDF Insight:带内联保存对话框的注释(本地SQLite)
  • [x] PDF Insight:测试套件(Vitest——URL助手+数据库存储库)
  • []PDF Insight:突出显示UI(数据库模式就绪)
  • []PDF Insight:可配置的快速操作(总结/翻译/定义)
  • []PDF Insight:每个配置文件首选项和每个文档设置
  • []PDF Insight:基于Supabase的身份验证、数据库和存储
  • []PDF Insight:跨笔记/文档的矢量搜索

📝 许可证

麻省理工学院


内置于❤️ 使用 MCP-SDK