AI代理代币化平台协议服务器

一个实现模型上下文协议(MCP)的服务器,用于与IQ AI代理代币化平台(ATP)交互,支持查看代理统计、管理代币持仓、交易代理代币和处理代理日志等功能。

  • by BrainDAO
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 IQAIcom/mcp-atp

使用说明

MCP-ATP:IQ AI代理令牌化平台的模型上下文协议服务器

该项目实现了一个模型上下文协议(MCP)服务器,用于与IQ AI代理令牌化平台(ATP)进行交互。它允许MCP兼容的客户端(如AI助手、IDE扩展或自定义应用程序)访问ATP功能,如查看代理统计数据、管理令牌头寸、交易代理令牌和处理代理日志。

此服务器使用TypeScript构建 fastmcp.

功能(MCP工具)

服务器公开了MCP客户端可以使用的以下工具:

  • ATP_AGENT_STATS:获取特定AI代理的统计数据和详细信息。
    • 参数: tokenContract (字符串)
  • ATP_GET_AGENT_POSITIONS:检索用户当前持有的ATP AI代币。
    • 需要 WALLET_PRIVATE_KEY 在环境中。
  • ATP_BUY_AGENT:使用IQ作为基础货币购买AI代理代币。
    • 参数: tokenContract (字符串), amount (字符串)
    • 需要 WALLET_PRIVATE_KEY 在环境中。
  • ATP_SELL_AGENT:将AI代理令牌卖回协议。
    • 参数: tokenContract (字符串), amount (字符串)
    • 需要 WALLET_PRIVATE_KEY 在环境中。
  • ATP_GET_AGENT_LOGS:检索特定AI代理的日志,并进行分页。
    • 参数: agentTokenContract (字符串), page (数字,可选), limit (数字,可选)
  • ATP_ADD_AGENT_LOG:为特定AI代理添加新的日志条目。
    • 参数: agentTokenContract (字符串), content (字符串), apiKey (字符串), txHash (字符串,可选), chainId (数字,可选)
    • 注: apiKey 因为此工具作为参数直接由调用客户端传递,而不是从服务器环境传递。
  • (即将推出) ATP_GET_AGENTS:列出可用于交易的AI代理。

先决条件

  • Node.js(建议使用v18或更新版本)
  • npm(附带Node.js)

安装与建造

  1. 克隆存储库(如果适用):

    git clone https://github.com/IQAIcom/mcp-atp.git
    cd mcp-atp
    
  2. 安装依赖项:

    npm install
    
  3. 构建服务器: 这将TypeScript代码编译为JavaScript dist 目录。

    npm run build
    

    这 prepare 脚本也会运行 npm run build,因此依赖关系是在安装时建立的。

配置(环境变量)

此MCP服务器要求运行它的MCP客户端设置某些环境变量。这些通常在客户端的MCP服务器定义中配置(例如,在 mcp.json 用于Cursor的文件或用于其他客户端的类似文件)。

  • WALLET_PRIVATE_KEY:(必需 ATP_GET_AGENT_POSITIONS, ATP_BUY_AGENT, ATP_SELL_AGENT)

    • 用于与ATP平台交互的钱包私钥(例如,获取头寸、签署买卖代币的交易)。
    • 安全说明: 请极其小心地处理此私钥。确保其安全存储,并且仅提供给受信任的MCP客户端配置。
  • ATP_API_KEY:(某些服务可能需要,例如,如果 AgentStatsService 或其他服务的后端API调用需要它——目前, ATP_ADD_AGENT_LOG 将其作为直接参数)。

    • 用于访问某些IQ ATP后端服务的API密钥。
  • ATP_USE_DEV:(可选,如果未设置或未设置,则默认为生产 'true')

    • 吃起来 "true" 使用开发API端点和ATP的合同地址。
    • 任何其他值或如果省略,将使用生产端点。

使用MCP客户端运行服务器

MCP客户端(如AI助手、IDE扩展等)将此服务器作为后台进程运行。您需要配置客户端,告诉它如何启动服务器。

下面是MCP客户端可能使用的示例配置片段(例如,在 mcp_servers.json 或类似的配置文件)。此示例显示了如何使用以下命令运行服务器 tsx 对于实时TypeScript开发,可以进行类似的配置来运行构建的JavaScript版本。

{
  "mcpServers": {
    "iq-atp-mcp-server": { // A unique name for your server instance
      "command": "npx",
      "args": [
        "tsx",
        "/path/to/your/mcp-atp/src/index.ts" // Absolute path to the server's entry point (for tsx)
        // For built version: "node", "/path/to/your/mcp-atp/dist/index.js"
        // Or if globally linked/published: "mcp-atp"
      ],
      "env": {
        "WALLET_PRIVATE_KEY": "your_ethereum_private_key_here",
        "ATP_API_KEY": "your_iq_atp_api_key_if_needed_by_server_env",
        "ATP_USE_DEV": "false" // or "true"
      },
      "workingDirectory": "/path/to/your/mcp-atp" // Absolute path to the project's root directory
    }
    // ... other MCP server configurations
  }
}

客户端配置字段说明:

  • command:要运行的可执行文件(例如。, npx, node,或者服务器的二进制名称(如果全局安装)。
  • args:要传递给命令的参数数组。
    • 对于 tsx: ["tsx", "/path/to/src/index.ts"]
    • 对于 node (内置版本): ["/path/to/dist/index.js"]
    • 如果您的包裹已链接(npm link)或在全球范围内安装 bin 报关进口 package.json 是 mcp-atp:命令可以是 mcp-atp 与空 args (或 npm start 从项目目录中)。
  • env:一个包含服务器进程启动时要设置的环境变量的对象。这是你提供的地方 WALLET_PRIVATE_KEY, ATP_API_KEY (如果服务器环境需要),以及 ATP_USE_DEV.
  • workingDirectory:执行命令的目录。这应该是你的根 mcp-atp 项目。

发展

  • 观看模式: npm run watch (根据更改编译TypeScript)。

  • 直接使用tsx运行(需要 tsx 可用):

    # Ensure environment variables are set appropriately for your shell if testing this way
    WALLET_PRIVATE_KEY="your_key" ATP_USE_DEV="true" npx tsx src/index.ts
    

发布到 npx

一旦服务器稳定并构建完成:

  1. 确保您的 package.json 有正确的 bin 字段指向 dist/index.js 和那个 files 阵列包括 "dist".

  2. 发布到npm:

    npm publish
    

发布后,用户应该能够通过以下方式运行您的服务器 npx mcp-atp (如果 mcp-atp 这个名字在你的 bin 字段,与您的包名称匹配,或者是在中定义的唯一命令 bin).然后,MCP客户端配置将简单地使用 "command": "npx", "args": ["mcp-atp"] (或您选择的包名称)。


此README提供了一个通用指南。客户端配置的具体细节可能因不同的MCP兼容应用程序而异。