该项目实现了一个模型上下文协议(MCP)服务器,用于与IQ AI代理代币化平台(ATP)进行交互。它允许兼容MCP的客户端(如AI助手、IDE扩展或自定义应用程序)访问ATP的功能,例如查看代理统计信息、管理代币位置、交易代理代币以及处理代理日志。
该服务器使用TypeScript和fastmcp构建。
服务器提供了以下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代理。克隆仓库(如果适用):
git clone https://github.com/IQAIcom/mcp-atp.git
cd mcp-atp
安装依赖项:
npm install
构建服务器:
这会将TypeScript代码编译到dist目录下的JavaScript中。
npm run build
prepare脚本也会运行npm run build,因此在安装时会构建依赖项。
此MCP服务器需要某些环境变量由运行它的MCP客户端设置。这些通常在客户端的MCP服务器定义中配置(例如,在Cursor的mcp.json文件中,或其他客户端的类似文件中)。
WALLET_PRIVATE_KEY:(对于ATP_GET_AGENT_POSITIONS、ATP_BUY_AGENT、ATP_SELL_AGENT是必需的)
ATP_API_KEY:(可能对某些服务是必需的,例如,如果AgentStatsService或其他服务需要它来调用其后端API——目前,ATP_ADD_AGENT_LOG将其作为直接参数接收)。
ATP_USE_DEV:(可选,默认为生产环境,除非设置为'true')
"true"以使用ATP的开发API端点和合约地址。'true',则使用生产端点。MCP客户端(如AI助手、IDE扩展等)将作为后台进程运行此服务器。您需要配置客户端以告知其如何启动您的服务器。
以下是MCP客户端可能使用的配置片段示例(例如,在mcp_servers.json或类似的配置文件中)。此示例展示了如何使用tsx进行实时TypeScript开发来运行服务器,但也可以为运行已构建的JavaScript版本做出类似的配置。
{
"mcpServers": {
"iq-atp-mcp-server": { // 您服务器实例的唯一名称
"command": "npx",
"args": [
"tsx",
"/path/to/your/mcp-atp/src/index.ts" // 服务器入口点的绝对路径(对于tsx)
// 对于已构建版本:"node", "/path/to/your/mcp-atp/dist/index.js"
// 或者如果全局链接/发布:"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" // 或 "true"
},
"workingDirectory": "/path/to/your/mcp-atp" // 项目的根目录的绝对路径
}
// ... 其他MCP服务器配置
}
}
客户端配置字段解释:
command:要运行的可执行文件(例如,npx、node,或者如果全局安装了服务器二进制文件,则为其二进制文件名)。args:传递给命令的一组参数。
tsx:["tsx", "/path/to/src/index.ts"]node(已构建版本):["/path/to/dist/index.js"]npm link)或全局安装,并且package.json中的bin条目是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):
# 如果通过这种方式测试,请确保适当设置了shell中的环境变量
WALLET_PRIVATE_KEY="your_key" ATP_USE_DEV="true" npx tsx src/index.ts
npx一旦服务器稳定并构建完成:
确保您的package.json具有正确的bin字段指向dist/index.js,并且files数组包括"dist"。
发布到npm:
npm publish
发布后,用户应该能够通过npx mcp-atp(如果mcp-atp是您的bin字段中的名称,并且与您的包名称匹配或是在bin中定义的独特命令)运行您的服务器。然后,MCP客户端配置只需使用"command": "npx", "args": ["mcp-atp"](或您选择的包名称)。
此README提供了一般指南。具体的客户端配置可能会因不同的MCP兼容应用而有所不同。