Cyberlink MCP服务器
用于在基于Cosmos的区块链上与CW Social智能合约交互的模型上下文协议(MCP)服务器。该服务器提供了一个标准化的接口,用于创建、更新和查询网络链接——区块链上实体之间的语义关系。
特性
- 核心业务
- 创建、阅读、更新和删除网络链接 - 支持具有自定义标识符的命名网络链接 - 批量操作,实现高效处理 - 具有过滤和分页功能的丰富查询功能
- 事务管理
- 实时事务监控和状态轮询 - 详细的交易结果和错误处理 - 支持内部和外部交易签名 - 代币转移能力
- 高级功能
- 通过拥抱人脸变换器生成语义嵌入 - 模型操作的实时进度跟踪 - 语义匹配的余弦相似度计算 - 具有格式化ID(fid)和全局ID(gid)的灵活ID系统 - 支持UTC的基于时间范围的查询 - 基于所有者的过滤和统计
先决条件
安装
- 克隆存储库:
git clone https://github.com/your-org/cw-social-mcp.git
cd cw-social-mcp- 安装依赖项:
npm install- 构建项目:
npm run build- 配置环境变量(请参阅配置部分)
配置
MCP服务器设置
在以下位置创建或修改配置文件 ~/.cursor/mcp.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",
"BENCH32_PREFIX": "cyber"
}
}
}
}所需配置
所需的环境变量:
PATH_TO_YOUR_PROJECT:项目目录的绝对路径NODE_URL:Cosmos区块链节点URLCONTRACT_ADDRESS:已部署的智能合约地址
可选配置
可选环境变量:
WALLET_MNEMONIC:用于签名的钱包助记符(默认值:无-交易将不签名)DENOM:代币面额(默认值:“stake”)BENCH32_PREFIX:BECH32前缀
可用工具
网络链接管理
创建工具
create_cyberlink
- 描述:创建单个网络链接
- 必修的:
type - 可选:
from,to,value
create_cyberlink2
- 说明:创建节点+链接
- 必修的:
node_type,link_type - 可选:
node_value,link_value,link_to_existing_id,link_from_existing_id
创建名称网络链接
- 描述:创建命名的网络链接(仅限管理员)
- 必修的:
name,cyberlink
创建_网络链接
- 说明:批量创建网络链接
- 必修的:
cyberlinks[]
修改工具
update_cyberlink
- 说明:更新现有网络链接
- 必修的:
gid,cyberlink
删除cyberlink
- 说明:删除网络链接
- 必修的:
gid
更新_嵌入\_
- 说明:添加语义嵌入
- 必修的:
formatted_id
查询操作
基本查询
查询_by_gid
- 描述:通过全局ID获取
- 必修的:
gid
查询_by_fid
- 说明:通过格式化ID获取
- 必修的:
fid
query_cyberlinks
- 说明:列出所有分页
- 参数:
limit,start_after
query_named_cyberlinks
- 描述:列出命名的网络链接
- 参数:
limit,start_after
query_by_gids
- 描述:按ID获取多个
- 必修的:
gids[]
过滤查询
query_cyberlinks_by_type
- 说明:按类型筛选
- 必修的:
type
query_cyberlinks_by_from
- 描述:按来源筛选
- 必修的:
from
query_cyberlinks_by_to
- 描述:按目标筛选
- 必修的:
to
查询_网络链接_由_所有者_和_类型
- 描述:按所有者和类型筛选
- 必修的:
owner,type
基于时间的查询
查询_网络链接_由_所有者_时间
- 描述:按创建时间筛选
- 必修的:
owner,start_time
查询_网络链接_由_所有者_时间_任何
- 说明:随时过滤
- 必修的:
owner,start_time
系统操作
合同信息
query_last_id
- 描述:获取最后分配的ID
查询配置
- 说明:获取合约配置
query_debug_state
- 说明:获取调试状态(仅限管理员)
get_graph_stats
- 说明:获取图形统计信息
交易和钱包
查询交易
- 说明:获取tx状态
- 必修的:
transaction_hash
get_tx状态
- 说明:获取详细的交易状态
- 必修的:
transaction_hash
查询钱包余额
- 说明:获取钱包余额
send_tokes
- 描述:转移代币
- 必修的:
recipient,amount
查询参数
时间范围格式
- 所有时间戳必须采用ISO 8601格式
- 例子:
2024-06-01T12:00:00Z - 如果未指定,则假定为UTC时区
start_time是必需的,end_time是可选的
分页
start_after:分页光标limit:每页结果(默认值:50)
发展
构建命令
# Production build
npm run build
# Development mode
npm run dev项目结构
src/
├── index.ts # Entry point
├── cyberlink-service.ts # Core service
├── services/
│ ├── embedding.service.ts # Semantic analysis
│ └── __tests__/ # Test suite
└── types.ts # Type definitions
cursor_rules/
└── chat_history.mdc # Chat rules错误代码
无效参数
- 说明:参数无效
- 常见原因:缺少必填字段、格式错误
方法NotFound
- 描述:未知工具
- 常见原因:工具名称拼写错误,工具已弃用
内部错误
- 说明:系统错误
- 常见原因:网络问题、合同错误
在SSE上运行MCP
您可以使用Docker运行MCP服务器,将其转换为SSE服务器。这确保了Hugging Face模型缓存在运行之间保持不变,并且环境变量从.env文件加载。
docker run \
--name cw-social \
-v $(pwd)/hf-cache:/app/hf-cache \
--env-file .env \
-p 8000:8000 \
cw-social-mcp-v $(pwd)/hf-cache:/app/hf-cache挂载一个用于模型缓存的本地目录,这样每次都不会重新下载模型。--env-file .env从您的.env文件。-p 8000:8000暴露端口8000上的服务器。--name cw-social为容器命名以便于管理。
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
