MCPcopy Index your code
hub / github.com/NuyoahCh/mcpchainx

github.com/NuyoahCh/mcpchainx @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
647 symbols 1,549 edges 85 files 403 documented · 62%

Browse by type

Functions 459 Types & classes 188
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

mcpchainx

mcpchainx 是一个将区块链基础设施与大模型智能体深度融合的开源协议栈。项目提供可验证的代理执行环境,让 AI Agent 能够安全地调用 Web3 能力,并保留完整的审计与溯源数据。

目录

核心特性

  • Golang + Python 协同:通过内置的 Python Bridge 触发推理脚本,便于在 Go 服务中复用模型能力。
  • Web3 快速接入:内置 JSON-RPC 客户端,可查询链 ID、最新区块高度等指标,并支持 eth_getBalanceeth_getTransactionCount 等读操作。
  • 可追踪任务日志:默认使用本地文件模拟 MySQL 持久化,同时提供真实 MySQL 仓库实现,满足生产环境的数据一致性需求。
  • 上下文记忆驱动的推理:Agent 在推理前自动装载最近的任务历史,把经验注入 Prompt,提升回答连续性。
  • 知识库增强:通过静态知识卡片在推理时补充领域经验,让回复同时参考链上最佳实践与安全提示。
  • 可扩展架构:配置、存储、Agent、API、Web3 等模块均采用接口抽象,支持按需替换实现。

架构与文档

快速入门

环境准备

  1. 安装 Go 1.22+Python 3.9+
  2. (可选)准备可访问的以太坊 JSON-RPC 节点。

构建与运行

# 拉取依赖并编译
go build ./...

# 启动守护进程(默认配置位于 configs/openmcp.json)
OPENMCP_CONFIG=$(pwd)/configs/openmcp.json go run ./cmd/openmcpd

服务启动后将监听 http://127.0.0.1:8080,并在 data/tasks.log 写入执行摘要。

触发一次任务

可直接使用 curl,或运行示例脚本:

# 使用示例脚本提交任务
python examples/task_quickstart.py invoke \
  --goal "查询账户余额" \
  --chain-action eth_getBalance \
  --address 0x0000000000000000000000000000000000000000

# 查看最近的 5 条任务历史
python examples/task_quickstart.py history --limit 5

若未配置真实 RPC 节点,链上数据字段会为空,错误信息会写入 observations

API 速览

当前版本实现以下 REST 接口,详见 docs/api/tasks.md

Method Path 描述
POST /api/v1/tasks 提交一次智能体任务,返回推理输出、链上快照与审计信息。
GET /api/v1/tasks 查询最近的任务执行记录,支持分页与过滤,并返回 total/next_offset 元数据。
GET /api/v1/tasks/{id} 查询指定任务的详细执行记录。
GET /api/v1/tasks/stats 汇总任务数量、状态分布与最近更新时间。

示例脚本

  • examples/task_quickstart.py:命令行客户端,演示如何调用 REST API 并解析响应。
  • examples/README.md:记录示例依赖与运行方式,便于扩展更多脚本或 Notebook。

欢迎补充新的示例,并在 PR 中引用相关文档章节。

前端控制台

项目提供一个基于 React + Vite 的轻量级前端,帮助快速连调 /api/v1/tasks 接口。源码位于 web/,具备以下能力:

  • 图形化填写任务目标、链上操作、可选地址与 Metadata;
  • 实时轮询任务状态,并展示模型思考、回复与链上观测结果;
  • 内置连接诊断与身份认证面板,可检测 API 连通性并缓存访问令牌;
  • 支持通过 UI 或 VITE_API_BASE_URL 覆盖后端地址,便于连接自定义环境;
  • 自动检测网络离线/恢复状态,提示用户并暂停轮询,防止误操作;
  • 提供任务状态筛选与 JSON 导出,便于排查与归档执行记录。

启动方式:

cd web
npm install
npm run dev

默认会连接本地的 http://127.0.0.1:8080 服务,可结合 OPENMCP_CONFIG=$(pwd)/configs/openmcp.json go run ./cmd/openmcpd 快速体验端到端流程。

常见问题

Q: 需要同时安装 Go 和 Python 吗?

是的。守护进程由 Go 实现,推理逻辑通过 Python Bridge 执行。若缺少 Python,POST /api/v1/tasks 将返回桥接失败错误。

Q: 未连接真实 RPC 节点会怎样?

系统仍会完成推理,但 chain_idblock_number 等字段为空,并在 observations 中提示 RPC 错误。可通过 configs/openmcp.json 修改 RPC 端点。

Q: 如何接入 MySQL?

在配置中将 storage.task_store.driver 设置为 mysql 并提供 dsn,随后以 -tags mysql 运行 openmcpd。示例配置见 configs/openmcp.mysql.json

Q: 文档如何保持最新?

请参考 docs/documentation-review.md 中的校对流程,在 PR 中勾选受影响的文档并安排同伴审阅。

贡献指南

欢迎提交 Issue 或 Pull Request,共同完善区块链与大模型融合的最佳实践。贡献代码时请确保:

  • 通过 go fmtgo test 等基础校验;
  • 为新增模块补充文档或注释;
  • 遵循文档校对流程,在 PR 中注明已更新的章节。

许可协议

项目遵循 MIT License,详情请参阅 LICENSE 文件。

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 243
Function 216
Struct 129
Interface 41
TypeAlias 9
FuncType 7
Class 2

Languages

Go86%
TypeScript12%
Python2%

Modules by API surface

internal/storage/mysql/task_repository.go44 symbols
web/src/api.ts32 symbols
internal/errors/errors.go27 symbols
internal/config/config.go26 symbols
internal/auth/service.go26 symbols
internal/api/server.go26 symbols
internal/observability/alerting/alert.go25 symbols
sdk/go/openmcp/client.go19 symbols
internal/auth/types.go19 symbols
internal/web3/ethereum/client.go17 symbols
internal/observability/metrics/http.go17 symbols
pkg/plugin/manager.go14 symbols

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add mcpchainx \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page