Skyfire MCP 代理商务演示:Dappier卖家与报告服务器

项目简介

'skyfire-solutions-demo' 仓库提供了一个完整的代理电子商务流程演示,专注于数据采购。它包含一个基于Prompt的AI代理界面,通过Model Context Protocol (MCP) 与多个服务进行交互。项目的核心是两个关键的MCP服务器:Dappier卖家MCP服务器(负责数据集的发现、定价、认证和下载)和报告MCP服务器(负责文件内容检索和数据可视化上传)。这些服务器通过标准化的MCP协议与买家代理通信,实现安全的代理间交易。

主要功能点

Dappier卖家MCP服务器

  • 资源托管与数据访问: 托管数据集资源,提供数据访问能力。
  • 账户与认证管理: 提供账户创建和登录功能,通过整合 Ory 进行身份验证和会话管理。
  • 数据集工具:
    • 'create-account-and-login': 用于创建Dappier账户并登录,返回访问令牌。
    • 'search-dataset': 根据输入Prompt搜索可用的数据集列表。
    • 'get-pricing': 获取指定数据集的详细价格。
    • 'download-dataset': 在支付验证(通过Skyfire支付令牌)后,提供数据集的下载URL。

报告MCP服务器

  • 报告工具:
    • 'retrieve-file-content': 从提供的URL检索文件内容(例如CSV数据)。
    • 'upload-csv': 将CSV格式的数据和摘要上传至Google Sheets,并可用于生成报告或演示。

通信与安全

  • MCP协议通信: 两个服务器均实现了基于 Streamable HTTP 的 MCP 协议,通过 JSON-RPC 与 AI 代理客户端通信。
  • 认证与授权: Dappier卖家服务器要求所有工具调用都携带访问令牌进行授权,并通过 'ory_access_control' 工具处理 JWT 令牌验证。

安装步骤

要运行此演示并启动MCP服务器,请遵循以下步骤:

  1. 克隆仓库:

    git clone https://github.com/skyfire-xyz/skyfire-solutions-demo.git
    cd skyfire-solutions-demo
  2. 前置条件设置:

    • Skyfire平台设置: 访问 Skyfire平台设置指南,创建您的Skyfire API Key,并完成买家和卖家的账号注册和认证。
    • Ory账户设置: 访问 Ory控制台,创建一个新的工作区和项目。从“项目设置”选项卡获取您的 'Project ID' 和 'Project Slug' 以及 API 端点等详细信息。这些信息将用于 Dappier MCP 服务器的环境变量配置。
    • Ory MCP 依赖: 克隆 Ory MCP 仓库,并根据其指示将 'packages/mcp-access-control' 包通过 'npm link' 方式链接到 'mcp-servers/dappier-seller-server' 项目中。
  3. 配置环境变量:

    • 在 'mcp-servers/dappier-seller-server' 和 'mcp-servers/reporting-server' 目录下,您需要创建或修改 '.env' 文件,并根据您的实际情况配置以下环境变量:
      • 'SKYFIRE_MCP_SERVER_URL': 官方 Skyfire MCP 服务器的 URL (通常为 'https://mcp.skyfire.xyz/mcp')。
      • 'REPORTING_MCP_SERVER_URL': 报告 MCP 服务器的 URL (例如 'http://localhost:4000/mcp')。
      • 'SKYFIRE_API_KEY': 您的 Skyfire API Key。
      • 'ORY_API_KEY': 您的 Ory 项目的 API Key。
      • 'ORY_PROJECT_ID': 您的 Ory 项目 ID 或 Slug。
      • 'JWKS_URL': 用于 JWT 验证的 JWKS URL (通常来自 Skyfire 或您的身份提供商)。
      • 'JWT_ISSUER': JWT 的发行者。
      • 'DAPPIER_SELLER_ID': Dappier 卖家的唯一标识符。
      • 'SELLER_SKYFIRE_API_KEY': 卖家账户的 Skyfire API Key。
      • 'DEPLOYED_GOOGLE_APPS_SCRIPT_URL': (仅用于报告服务器) 您部署的 Google Apps Script URL,用于将数据写入 Google Sheets。
      • 'PORT': Dappier 服务器(默认4002)和 Reporting 服务器(默认4000)的监听端口。
  4. 安装依赖并启动 MCP 服务器:

    • 启动 Dappier 卖家 MCP 服务器:

      cd mcp-servers/dappier-seller-server
      npm install
      npm start

      服务器将在 'http://localhost:4002' 启动。

    • 启动报告 MCP 服务器:

      cd mcp-servers/reporting-server
      npm install
      npm start

      服务器将在 'http://localhost:4000' 启动。

服务器配置(供MCP客户端参考)

Skyfire解决方案演示中的 MCP 服务器主要使用 'StreamableHTTP' 传输协议。这意味着 MCP 客户端通常通过 URL 和 HTTP 头部与已启动的服务器建立连接,而非直接启动服务器进程。

以下是 Dappier 卖家 MCP 服务器和报告 MCP 服务器的启动命令以及供 MCP 客户端使用的典型配置信息。

  1. Dappier 卖家 MCP 服务器

    • 服务器启动命令 (示例):
      # 在 mcp-servers/dappier-seller-server 目录下
      npm install && npm start
      该命令会启动一个HTTP服务器,默认监听端口为 '4002'。
    • MCP 客户端配置示例 (JSON格式):
      {
        "name": "Dappier_Seller_Server",
        "command": ["npm", "start"],
        "args": [],
        "transport": "streamable_http",
        "url": "http://localhost:4002/mcp",
        "headers": {
          "mcp-session-id": "您的MCP会话ID",
          "Authorization": "Bearer 您的Dappier访问令牌"
        },
        "description": "提供数据集发现、定价、认证及下载服务,需要通过'create-account-and-login'工具获取访问令牌进行认证。"
      }
      • 'command', 'args': 如果 MCP 客户端通过 'stdio' 协议(直接启动进程)连接,则这是启动服务器的命令。对于 'streamable_http',服务器需预先启动。
      • 'url': Dappier 服务器的访问地址,客户端通过此 URL 发送 MCP 请求。
      • 'mcp-session-id': 客户端在首次调用 MCP 服务器的 'initialize' 方法后,服务器会在 HTTP 响应头中返回此会话 ID。客户端需捕获并用于所有后续请求。
      • 'Authorization': 客户端通过调用 Dappier 的 'create-account-and-login' 工具成功认证后获得的访问令牌,用于所有需要授权的工具调用。
  2. 报告 MCP 服务器

    • 服务器启动命令 (示例):
      # 在 mcp-servers/reporting-server 目录下
      npm install && npm start
      该命令会启动一个HTTP服务器,默认监听端口为 '4000'。
    • MCP 客户端配置示例 (JSON格式):
      {
        "name": "Reporting_Server",
        "command": ["npm", "start"],
        "args": [],
        "transport": "streamable_http",
        "url": "http://localhost:4000/mcp",
        "headers": {
          "mcp-session-id": "您的MCP会话ID"
        },
        "description": "提供文件内容检索和将数据上传至Google Sheets以生成报告的功能,无需额外认证。"
      }
      • 'command', 'args': 同上。
      • 'url': 报告服务器的访问地址。
      • 'mcp-session-id': 同上。
  3. Skyfire 身份与支付 MCP 服务器(外部服务)

    • 服务器启动命令: (此为外部部署服务,无本地启动命令)
    • MCP 客户端配置示例 (JSON格式):
      {
        "name": "Skyfire_Identity_Payment_Server",
        "transport": "streamable_http",
        "url": "https://mcp.skyfire.xyz/mcp",
        "headers": {
          "skyfire-api-key": "您的Skyfire API Key",
          "mcp-session-id": "您的MCP会话ID"
        },
        "description": "官方 Skyfire 服务,用于身份验证、支付处理和获取 KYA/PAY 令牌,需要 Skyfire API Key。"
      }
      • 'url': 官方 Skyfire MCP 服务的 URL。
      • 'skyfire-api-key': 您在 Skyfire 平台注册后获得的 API Key,用于认证对 Skyfire 服务的访问。
      • 'mcp-session-id': 同上。

基本使用方法

部署并启动 MCP 服务器后,任何兼容 MCP 协议的 AI 代理或客户端都可以通过上述配置信息与其建立连接,并调用其公开的工具和访问资源。例如,一个买家代理可以:

  1. 连接 Skyfire 服务: 连接到 'Skyfire Identity & Payment MCP Server' 以获取认证信息或支付令牌。
  2. 连接 Dappier 服务: 连接到 'Dappier Seller MCP Server'。
    • 调用 'search-dataset' 工具查找所需数据。
    • 使用 'create-account-and-login' 工具在 Dappier 创建账户并获取访问令牌。
    • 使用获取到的访问令牌调用 'get-pricing' 查询数据集价格。
    • 结合 Skyfire 工具生成的支付令牌,使用 Dappier 的 'download-dataset' 工具完成数据购买。
  3. 连接报告服务: 连接到 'Reporting MCP Server'。
    • 调用 'retrieve-file-content' 工具下载数据集内容。
    • 使用 'upload-csv' 工具将数据集和总结上传到 Google Sheets 以生成报告或演示。

信息

分类

商业系统