Michelson合约分析工具

提供Michelson智能合约的解析、验证、分析和改进功能,支持与AI代理集成和实时RPC工具访问。

  • by GORDIAN12
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 GORDIAN12/Michelson_MCP

使用说明

我们将建造什么?

MCP服务器公开 工具, 资源,以及 提示 以标准化的方式连接到AI代理(如Claude或Cursor)。

在这种情况下,服务器将提供任何LLM功能以与Michelson配合使用:

  • 解析合同
  • 验证类型
  • 解释堆栈说明

创建虚拟环境

source ./venv/bin/activate


pip install mcp fastmcp pytezos

# Run the server directly
python server.py

# Test with MCP Inspector (oficial debugging tool)
npx @modelcontextprotocol/inspector python server.py
工具 功能
解释指令 解释任何指令迈克尔逊
explain_type 描述数据类型(int、nat、big_map等)
run_stack_simulation 逐步模拟堆栈执行
lint_contract 根据现代协议规则进行验证(孟买+)
validate_contract valdate合约的基本结构
analyze_contract 深度分析:错误、警告、反模式
fix_contract 根据常见错误模式建议修复
改进合同 可读性、效率和安全建议
list_instructions 按类别列出所有指令
get_template 返回即用型合同模板
search_instructions 按关键字搜索说明
get_run_command 生成Docker命令以在本地测试合约

实时RPC工具

工具 说明
network_info 当前网络状态:块级别、协议、时间戳
block_info 关于特定区块或最新区块(head)的信息
account_info 任何Tezos地址的余额和信息
account_balance mutez和tez中的余额
contract_storage 已部署合约的实时存储
contract_code 已部署合约的Micheline代码
contract_entrypoints 所有入口点及其类型
contract_big_map big_map数据(按ID和键)
contract_operations 合约的最后N笔交易
contract_metata 别名、创建者和活动统计信息(TzKT)
operation_details 哈希操作的完整细节
search_deployed_contracts 按别名或地址搜索合同

资源

URI 描述
michelson://instructions 完整说明参考
michelson://types 完整数据类型引用
michelson://cheatsheet 合同结构快速参考
michelson://rules 现代Tezos协议的关键语法规则
michelson://protocol 目标协议信息和已弃用的说明

提示

提示 描述
explain_michelson_code 指导法学硕士分析合同
generate_michelson_contract 从自然语言生成合约
create_concontract_from_scratch 带类型提示的完整合约生成
fix_michelson_bug 诊断并修复错误
improve_michelson_code 优化现有合约
review_concontract_security 全面安全审计

支持的网络

网络 RPC 资源管理器
主网 ecadinfra.com api.tzkt.io
ghostnet,来源于.com、api.ghostnet.tzkt.io)。

连接到AI代理

克劳德桌面 编辑~/.config/Claude/Claude_desktop_configure.json:

{
  "mcpServers": {
    "michelson": {
      "command": "absolute/path/to/venv/bin/python",
      "args": ["absolute/path/to/venv/bin/python"]
    }
  }
}

VS代码/光标 在项目根目录中创建.vcode/mcp.json:

{
  "servers": {
    "michelson": {
      "type": "stdio",
      "command": "/absolute/path/to/venv/bin/python",
      "args": ["/absolute/path/to/server.py"]
    }
  }
}

使用Docker在本地测试合约

docker run -it --rm --entrypoint /bin/sh -v $PWD:/work tezos/tezos:latest

使用michelson示例合约进行语言测试

产品

octez-client --mode mockup --base-dir /tmp/mockup \
  run script /work/product.tz \
  on storage 0 \
  and input '(Pair 3 4)'

减去

octez-client --mode mockup --base-dir /tmp/mockup run script /work/substract.tz on storage 10 and input '5'

加法

octez-client --mode mockup --base-dir /tmp/mockup run script /work/counter.tz on storage 10 and input 'Left 5'