区块链开发服务器协议

Lenina MCP服务器是一个将Lenina REST API封装为MCP工具的服务,使AI编码助手能够远程控制Anvil区块链开发服务器实例。

  • by brenoluz
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 brenoluz/lenina-mcp

使用说明

Lenina MCP服务器

用于Lenina Anvil管理的MCP(模型上下文协议)服务器。

建筑

AI Assistant ←MCP→ lenina-mcp ←REST→ Lenina API ←→ Anvil Server
  • 铁砧:区块链开发服务器(Foundry)
  • 列宁娜:管理Anvil实例的RESTful API服务器
  • 列宁:为人工智能助手包装Lenina REST API的MCP服务器

该服务器将所有Lenina REST API端点公开为MCP工具,使AI编码助手(Cursor、Cline等)能够远程控制Anvil实例。

特性

  • RESTful集成:将Lenina REST API包装为MCP工具
  • API全面覆盖:作为MCP工具公开的所有9个Lenina API端点
  • 类型安全:所有工具都使用Pydantic模型进行参数验证
  • 异步:内置async/await以获得最佳性能
  • 无需认证:仅为当地发展而设计(与Lenina相匹配)

安装

pip install -r requirements.txt

或使用紫外线:

uv pip install -r requirements.txt

配置

服务器通过可配置的基本URL连接到Lenina API:

  • 默认: http://localhost:8000
  • 环境变量:设置 LENINA_BASE_URL 更改(尚未实现,已硬编码 mcp_server.py)

要更改URL,请编辑 LENINA_BASE_URL 恒常 mcp_server.py.

运行服务器

python mcp_server.py

或者使用已安装的命令:

lenina-mcp

可用工具

健康检查

  • health_check:验证与Lenina API的连接

Anvil生命周期

  • anvil_start:使用配置启动Anvil实例

    • port (默认值:8545):运行Anvil的端口
    • chainId (默认值:31337):链ID
    • blockTime (默认值:0):块时间(秒)(0=手动挖掘)
    • gasLimit (默认值:30000000):每个区块的气体限制
    • mnemonic (可选):确定性账户的助记词
  • anvil_stop:停止正在运行的Anvil实例

  • anvil_restart:使用可选的新配置重新启动Anvil

    • 参数与 anvil_start

状态和配置

  • anvil_status:获取当前Anvil状态(运行状态、PID、正常运行时间、端口)

  • get_config:获取当前Anvil配置

密钥和帐户

  • get_private_keys:获取所有私钥和帐户信息
    • 返回包含地址和私钥的帐户列表
    • 如果配置了助记符,则包括助记符

合同管理

  • get_contract:检查地址是否存在合同
    • address:合约地址(前缀0x)
    • 用途 eth_getCode 验证合同部署

RPC代理

  • rpc_proxy:向Anvil发送JSON-RPC请求
    • method:RPC方法名称(例如。, eth_blockNumber, eth_getBalance)
    • params:方法参数(列表)
    • request_id:JSON-RPC请求ID(默认值:1)
    • 支持所有标准的以太坊JSON-RPC方法

MCP客户端配置

光标

添加到您的 .cursor/mcp.json:

{
  "mcpServers": {
    "lenina": {
      "command": "python",
      "args": ["/path/to/lenina-mcp/mcp_server.py"],
      "cwd": "/path/to/lenina-mcp"
    }
  }
}

克莱恩

添加到您的Cline MCP设置中:

{
  "mcpServers": [
    {
      "name": "lenina",
      "command": "python",
      "args": ["/path/to/lenina-mcp/mcp_server.py"],
      "cwd": "/path/to/lenina-mcp"
    }
  ]
}

克劳德桌面版

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "lenina": {
      "command": "python",
      "args": ["/path/to/lenina-mcp/mcp_server.py"],
      "cwd": "/path/to/lenina-mcp"
    }
  }
}

示例用法

连接后,您可以使用自然语言命令,如:

  • “在端口8545上启动Anvil,链ID为31337”

  • “检查Anvil是否正在运行”

  • “获取前3个帐户的私钥”

  • “当前区块号是多少?”(使用rpc_proxy)

  • “停止Anvil实例”

人工智能助理的Lenina技能

此项目包括一个技能文件(skills/lenina.md)它教人工智能助手如何使用Lenina远程管理Anvil服务器。

安装技能

对于Claude Desktop:

cp skills/lenina.md ~/.claude/skills/

对于Opencode:

cp skills/lenina.md ~/.config/opencode/skills/

对于食品法典委员会:

cp skills/lenina.md ~/.codex/skills/

对于Gemini CLI:

cp skills/lenina.md ~/.gemini/skills/

复制后,AI助手将自动学习如何:

  • 启动、停止和重新启动Anvil实例
  • 使用以下命令获取正确的RPC URL get_config (对于连接Hardhat、Foundry、MetaMask等工具至关重要)
  • 管理帐户和私钥
  • 部署智能合约并与之交互
  • 使用Anvil日志和RPC代理进行调试

为什么使用该技能

该技能包括以下关键指导:

  1. 检查 get_config:在连接开发工具之前,始终运行此程序以获取正确的主机和端口
  2. 网络配置:Anvil在远程机器上运行时如何连接
  3. 常见工作流程:开发、调试和测试的标准模式
  4. 安全警告:关于私钥和仅限本地使用的重要说明

发展

类型检查

mypy --strict mcp_server.py

运行测试

(尚未实施测试)

需求

  • Python 3.10+
  • Lenina REST API服务器运行于 http://localhost:8000 (或配置的URL)
  • 铁砧(通过Foundry安装)

依赖项

  • mcp>=1.0.0:MCP协议实施
  • fastmcp>=0.1.0:FastMCP服务器框架
  • httpx>=0.27.0:异步HTTP客户端
  • pydantic>=2.0.0:数据验证
  • pydantic-settings>=2.0.0:设置管理

许可证

麻省理工学院