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代理进行调试
为什么使用该技能
该技能包括以下关键指导:
- 检查
get_config:在连接开发工具之前,始终运行此程序以获取正确的主机和端口 - 网络配置:Anvil在远程机器上运行时如何连接
- 常见工作流程:开发、调试和测试的标准模式
- 安全警告:关于私钥和仅限本地使用的重要说明
______________________________________________________________________
发展
类型检查
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:设置管理
许可证
麻省理工学院
