<img src="https://gips0.baidu.com/it/u=3181875246,113752211&fm=3081&app=3081&f=GIF?w=1152&h=648" width="1280"></img>
Sei区块链的核心MCP(模型上下文协议)服务器。
五个工具构成资源接口(按顺序使用1→2→3→4):
list_resources — 列出可用资源(从这里开始)list_resource_actions — 列出资源的操作get_resource_action_schema — 必需 在调用之前获取操作的JSON Schemainvoke_resource_action — 调用与模式匹配的有效载荷的操作get_resource_action_snippet — (可选)生成指定语言中执行资源操作的代码片段支持的资源
通用
general_faucet - 启用开发者请求水龙头general_rpc_lcd - 启用代理的一般rpc/lcd查询,并根据需求执行rpc/lcd请求general_associations — 查询跨EVM和原生Sei的混合关联(EOA/资产/交易)。当适用时返回简化指针/被指针字段。洞察
insights_address — 查询地址数据:详情、交易、代币转移。insights_erc20 — 查询ERC-20代币:信息、余额、转移、持有者。insights_cw20 — 查询CW20代币:信息、余额、转移、持有者。insights_native — 查询原生代币:信息、转移、余额、持有者。insights_ics20 — 查询ICS20代币:信息、转移、余额、持有者。insights_erc721 — 查询ERC-721代币:信息、持有者、实例、余额、转移。insights_erc1155 — 查询ERC-1155代币:信息、持有者、实例、余额、转移。insights_cw721 — 查询CW721代币:信息、实例、余额、持有者、转移。insights_smart_contract — 查询智能合约详情。insights_assets — 按名称/符号/标识符搜索官方资产并获取资产详情。使用Sei网关端点;在已获取的资产列表上离线执行搜索。insights_earnings — 搜索/列出太平洋-1的收益池(APR/APY),并通过地址获取池。返回简化字段:名称、地址、URL、图像、提供商、TVL、APR、APY。insights_transactions — 通过网关查询交易详情(太平洋-1、大西洋-2、北极-1)。智能合约
smart_contract — 通过Multicall3查询智能合约状态,搜索验证过的合约,或从Seitrace下载智能合约ABI(太平洋-1、大西洋-2、北极-1)。确保您免费获得一个API密钥 在这里
查看 安装指南
MCP为最终用户和助手提供:
x-api-key发送)。npx -y @seitrace/mcp。使用MCP SDK,通过五个工具驱动基于资源的流程。**重要:**始终遵循此顺序,特别是步骤3:
// 1) 发现可用资源
const resources = await client.callTool({ name: 'list_resouces', arguments: {} });
// -> { resources: ['erc20', 'erc721', 'native', ...] }
// 2) 列出资源的动作
const actions = await client.callTool({
name: 'list_resouce_actions',
arguments: { resource: 'insights_erc20' },
});
// -> { resource: 'erc20', actions: [{ name, description }, ...] }
// 3) **必需** 获取特定动作的JSON模式
// 这一步至关重要 - 描述中的参数名称可能与实际模式不同
const schema = await client.callTool({
name: 'get_resource_action_schema',
arguments: { resource: 'insights__erc20', action: 'get_erc20_token_info' },
});
// -> { resource: 'insights_erc20', action: 'get_erc20_token_info', schema }
// 模式揭示了确切的参数名称,如“q”而不是“query”,“chain”而不是“chain_id”等。
// 4) 使用与模式结构匹配的有效载荷调用动作
const res = await client.callTool({
name: 'invoke_resource_action',
arguments: {
resource: 'insights_erc20',
action: 'get_erc20_token_info',
payload: { chain: 'pacific-1', contract_address: '0x...' },
},
});
// res.content[0].text -> "API响应(状态:200):\n{ ... }"
// 5) 可选地,为动作生成代码片段
const snippet = await client.callTool({
name: 'get_resource_action_snippet',
arguments: { resource: 'insights_erc20', action: 'get__erc20_token_info', language: 'node' },
});
// -> { resource, action, language, snippet }
服务器会验证payload是否符合动作的模式,并在适用时返回格式化的JSON主体。
npm install
复制.env.example到.env并根据需要设置您的值。
环境变量:
API_BASE_URL(可选) — 默认为https://seitrace.com/insightsSECRET_APIKEY — Seitrace API密钥;用于设置头部x-api-key# 类型检查并编译到build/
npm run build
# 通过stdio运行MCP服务器(由MCP客户端使用)
npm start
该服务器设计为由兼容MCP的客户端启动(例如,通过命令/参数配置)。它通过stdio通信。
运行E2E以验证根资源流程和(可选)实时正向调用:
# 可选地提供您的API密钥,以便正向路径运行
SEITRACE_API_KEY=your_key_here npm run test:e2e
确保您运行我们的E2E测试以查看我们涵盖的常见错误。
npm run test:e2e(可选E2E_DEBUG=1以获取[E2E]日志)。tools/list输出紧凑。不要在那里嵌入每个动作的详细信息——通过getResourceActionSchema获取它们。src/lib/中偏好小型、专注的模块以共享逻辑。参见 LICENSE
请发送电子邮件至dev@cavies.xyz