
Cw Graph
启用与基于 CosmWasm 的社交图谱智能合约的交互,通过区块链交易创建、更新、查询和删除去中心化关系数据。
概述
Cyberlink MCP Server
一个用于与基于 Cosmos 的区块链上的 CW-Social 智能合约交互的模型上下文协议 (MCP) 服务器。该服务器为创建、更新和查询 cyberlinks(区块链上实体之间的语义关系)提供了一个标准化接口。
功能
- cyberlinks 的完整 CRUD 操作
- 命名 cyberlink 支持
- 批量操作
- 丰富的查询能力
- 交易状态跟踪
- 输入验证
- 错误处理
- 与 Cursor IDE 和 Claude Desktop 集成
先决条件
- Node.js 16+
- npm 或 yarn
- 访问 Cosmos 区块链节点
- 用于交易的带资金的钱包
- Cursor IDE 已安装
- Claude Desktop 已安装
安装和设置
- 克隆仓库:
bash
git clone https://github.com/your-org/cw-social-mcp.git
cd cw-social-mcp
- 安装依赖项:
bash
npm install
- 构建项目:
bash
npm run build
集成配置
Cursor IDE 和 Claude Desktop 使用相同的 MCP 配置格式。创建或编辑配置文件:
- 对于 Cursor:
~/.cursor/mcp.json
添加以下配置:
json
{
"mcpServers": {
"cw-graph": {
"command": "node",
"args": ["PATH_TO_YOUR_PROJECT/dist/index.js"],
"env": {
"NODE_URL": "http://localhost:26657",
"WALLET_MNEMONIC": "your wallet mnemonic phrase",
"CONTRACT_ADDRESS": "your contract address",
"DENOM": "stake"
}
}
}
}
替换以下值:
PATH_TO_YOUR_PROJECT
: 您的 cw-social-mcp 项目的绝对路径NODE_URL
: 您的 Cosmos 节点 URLWALLET_MNEMONIC
: 您的钱包助记词短语CONTRACT_ADDRESS
: 您部署的合约地址DENOM
: (可选)代币面额,默认为 'stake'
该配置使用 stdio 格式进行 MCP 服务器和客户端(Cursor/Claude Desktop)之间的通信。
验证
- 配置后重新启动 Cursor IDE 或 Claude Desktop
- 以下工具应可用:
- create_cyberlink
- create_named_cyberlink
- create_cyberlinks
- update_cyberlink
- delete_cyberlink
- query_cyberlinks
- query_named_cyberlinks
- query_cyberlinks_by_owner
- query_config
- query_wallet_balance
- send_tokens
开发
- 构建项目:
bash
npm run build
- 以开发模式启动服务器:
bash
npm run dev
项目结构
src/
├── index.ts # 主入口点
├── cyberlink-service.ts # Cyberlink 和区块链操作
└── types.ts # TypeScript 类型和模式
cursor_rules/
└── chat_history.mdc # 聊天历史存储规则
Cursor 规则
该项目包含定义特定功能行为的 Cursor 规则:
- 聊天历史存储:定义聊天历史如何在系统内存储和管理的规则。这些规则确保在整个 MCP 服务器中一致处理对话数据。
将规则复制到 ./cursor/rules
目录。
MCP 工具
创建和修改
mcp_cw_graph_create_cyberlink
- 创建新的 cyberlinkmcp_cw_graph_create_named_cyberlink
- 创建带有标识符的命名 cyberlinkmcp_cw_graph_create_cyberlinks
- 批量创建多个 cyberlinksmcp_cw_graph_update_cyberlink
- 通过 ID 更新现有的 cyberlinkmcp_cw_graph_delete_cyberlink
- 通过 ID 删除 cyberlink
基本查询
mcp_cw_graph_query_by_id
- 按数字 ID 查询单个 cyberlinkmcp_cw_graph_query_by_formatted_id
- 按其格式化 ID 查询 cyberlinkmcp_cw_graph_query_cyberlinks
- 分页查询所有 cyberlinksmcp_cw_graph_query_named_cyberlinks
- 查询所有命名的 cyberlinksmcp_cw_graph_query_by_ids
- 按其 ID 查询多个 cyberlinks
高级查询
mcp_cw_graph_query_by_owner
- 按所有者地址查询 cyberlinksmcp_cw_graph_query_by_time_range
- 按创建时间范围查询 cyberlinksmcp_cw_graph_query_by_time_range_any
- 按创建或更新时间范围查询 cyberlinks
系统查询
mcp_cw_graph_query_last_id
- 获取最后分配的 cyberlink IDmcp_cw_graph_query_config
- 查询合约配置mcp_cw_graph_query_debug_state
- 查询合约调试状态(仅管理员)mcp_cw_graph_get_tx_status
- 检查交易状态并获取 cyberlink IDs
钱包操作
mcp_cw_graph_query_wallet_balance
- 获取钱包地址和代币余额mcp_cw_graph_send_tokens
- 向另一个钱包地址发送代币
查询参数
时间范围查询
owner
- 用于过滤的所有者地址start_time
- 开始时间(纳秒,Uint64,可以作为字符串或数字传递)end_time
- 可选结束时间(纳秒,Uint64,可以作为字符串或数字传递)start_after
- 可选分页游标(Uint64,可以作为字符串或数字传递)limit
- 可选结果限制(默认值:50)
分页
大多数查询端点支持分页:
start_after
- 下一页的游标(Uint64,可以作为字符串或数字传递)limit
- 要返回的最大结果数
数据类型
- 时间戳:所有时间戳字段使用 Uint64 格式(自 Unix 纪元以来的纳秒)
- 可以作为字符串传递以保留大值的精度
- 还接受数字格式以向后兼容
- 示例:"1683900000000000000"(字符串)或 1683900000000000000(数字)
错误处理
服务器使用 MCP 协议的标准错误代码:
InvalidParams
- 无效的输入参数MethodNotFound
- 未知工具名称InternalError
- 区块链或服务器错误
贡献
- 叉仓库
- 创建您的功能分支 (
git checkout -b feature/amazing-feature
) - 提交您的更改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 打开 Pull Request
许可证
本项目采用 MIT 许可证授权 - 详见 LICENSE 文件。