{"_id":"@amyseer/sol-compiler-mcp","_rev":"3-94d36c7c1ec421f368e87750e2dfde71","name":"@amyseer/sol-compiler-mcp","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@amyseer/sol-compiler-mcp","version":"1.0.0","keywords":["solidity","ethereum","compiler"],"author":{"name":"clearsky"},"license":"MIT","_id":"@amyseer/sol-compiler-mcp@1.0.0","maintainers":[{"name":"amyseer","email":"saber66ccff@gmail.com"}],"bin":{"sol-compiler-mcp":"build/index.js"},"dist":{"shasum":"d276ef7353fb2ad697a7d822fd70304b83e783dd","tarball":"https://registry.npmjs.org/@amyseer/sol-compiler-mcp/-/sol-compiler-mcp-1.0.0.tgz","fileCount":2,"integrity":"sha512-BoHKBTlhAAo8lKU36nYIyFVNpiYvudazQYDDYQbOGLA5L7QU3A3EMpFuNtv9Ppnh4XCgnmNCYnaoJXEK6poq1A==","signatures":[{"sig":"MEYCIQCdCToBVZUt+o9/W/MvcqcLsQmL2Spb5ng0SWyr6ZAHjAIhAMaZYx8tHTbRdoVGgODeKz/MyciJndS49di59UzDpt8k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6997},"main":"build/index.js","type":"module","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc && chmod +x build/index.js"},"_npmUser":{"name":"amyseer","email":"saber66ccff@gmail.com"},"_npmVersion":"11.1.0","description":"Solidity智能合约编译mcp","directories":{},"_nodeVersion":"22.11.0","dependencies":{"zod":"^3.24.3","solc":"^0.8.x","fs-extra":"^11.x.x","@modelcontextprotocol/sdk":"^1.10.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^22.15.2"},"_npmOperationalInternal":{"tmp":"tmp/sol-compiler-mcp_1.0.0_1747292708804_0.6774575694337814","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@amyseer/sol-compiler-mcp","version":"1.1.0","keywords":["solidity","ethereum","compiler","erc20","smart-contract","web3","mcp"],"author":{"name":"clearsky"},"license":"MIT","_id":"@amyseer/sol-compiler-mcp@1.1.0","maintainers":[{"name":"amyseer","email":"saber66ccff@gmail.com"}],"homepage":"https://github.com/amyseer/sol-compiler-mcp#readme","bugs":{"url":"https://github.com/amyseer/sol-compiler-mcp/issues"},"bin":{"sol-compiler-mcp":"build/index.js"},"dist":{"shasum":"8c87c7ed1285864d122b2cd9b2c8e6292f839a13","tarball":"https://registry.npmjs.org/@amyseer/sol-compiler-mcp/-/sol-compiler-mcp-1.1.0.tgz","fileCount":8,"integrity":"sha512-iakW6DNzLGHB/cAc/jtLRZaYxnYSH9+p1QbEQyyEf1bpIhV/9E7SOGslekGmmLPlrDeofR/Y9kmJ+oyf+Bx30w==","signatures":[{"sig":"MEUCIES87YEL5ESVUjkrk1FdDkXes9qEb9Kl2IwBsjlWPtq5AiEAkaroEVu0/L6wqojlwgnZqzjdLAI86+Pls+HyE7CkzGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37820},"main":"build/index.js","type":"module","engines":{"node":">=18.0.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc && chmod +x build/index.js","serve":"node build/index.js","prepare":"npm run build","postinstall":"node scripts/check-dependencies.js"},"_npmUser":{"name":"amyseer","email":"saber66ccff@gmail.com"},"repository":{"url":"git+https://github.com/amyseer/sol-compiler-mcp.git","type":"git"},"_npmVersion":"11.1.0","description":"Solidity智能合约编译MCP服务，支持导入解析和OpenZeppelin","directories":{},"_nodeVersion":"22.11.0","dependencies":{"zod":"^3.24.3","solc":"^0.8.20","fs-extra":"^11.2.0","@openzeppelin/contracts":"^5.0.1","@modelcontextprotocol/sdk":"^1.10.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^22.15.2"},"_npmOperationalInternal":{"tmp":"tmp/sol-compiler-mcp_1.1.0_1747582661243_0.9377883363176409","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@amyseer/sol-compiler-mcp","version":"1.2.0","description":"Solidity智能合约编译MCP服务，支持导入解析和OpenZeppelin，带自动版本检测","main":"build/index.js","type":"module","bin":{"sol-compiler-mcp":"build/index.js"},"scripts":{"build":"tsc && chmod +x build/index.js","postinstall":"node scripts/check-dependencies.js","prepare":"npm run build","test":"echo \"Error: no test specified\" && exit 1","serve":"node build/index.js"},"keywords":["solidity","ethereum","compiler","erc20","smart-contract","web3","mcp","openzeppelin"],"author":{"name":"clearsky"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/amyseer/sol-compiler-mcp.git"},"dependencies":{"@modelcontextprotocol/sdk":"^1.10.2","@openzeppelin/contracts":"^5.0.1","fs-extra":"^11.2.0","solc":"^0.8.20","zod":"^3.24.3"},"devDependencies":{"@types/node":"^22.15.2","typescript":"^5.8.3"},"engines":{"node":">=18.0.0"},"_id":"@amyseer/sol-compiler-mcp@1.2.0","bugs":{"url":"https://github.com/amyseer/sol-compiler-mcp/issues"},"homepage":"https://github.com/amyseer/sol-compiler-mcp#readme","_nodeVersion":"22.11.0","_npmVersion":"11.1.0","dist":{"integrity":"sha512-ZETqGs5NL0lSXLUNLaYR8P+rySMbxzpLhBMsoEeSvae3sMUTAr0Sk1b7QRegUpSd6Ar75ioHpSThum1S/CJrdA==","shasum":"35fc169d55ed75f6ed192d8f384e8d60eef6f4e9","tarball":"https://registry.npmjs.org/@amyseer/sol-compiler-mcp/-/sol-compiler-mcp-1.2.0.tgz","fileCount":8,"unpackedSize":41134,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD43+mbDr7a/2ovwByLl+3jZSwSAI3drNZ973PAm3Y9iAIhAKAZQSmuFIXzBwK7QkDXYLlvQK7iYcMnuUXTId05Nh+y"}]},"_npmUser":{"name":"amyseer","email":"saber66ccff@gmail.com"},"directories":{},"maintainers":[{"name":"amyseer","email":"saber66ccff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sol-compiler-mcp_1.2.0_1747586816095_0.9593541411151243"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-15T07:05:08.707Z","modified":"2025-05-18T16:46:56.540Z","1.0.0":"2025-05-15T07:05:08.962Z","1.1.0":"2025-05-18T15:37:41.466Z","1.2.0":"2025-05-18T16:46:56.339Z"},"bugs":{"url":"https://github.com/amyseer/sol-compiler-mcp/issues"},"author":{"name":"clearsky"},"license":"MIT","homepage":"https://github.com/amyseer/sol-compiler-mcp#readme","keywords":["solidity","ethereum","compiler","erc20","smart-contract","web3","mcp","openzeppelin"],"repository":{"type":"git","url":"git+https://github.com/amyseer/sol-compiler-mcp.git"},"description":"Solidity智能合约编译MCP服务，支持导入解析和OpenZeppelin，带自动版本检测","maintainers":[{"name":"amyseer","email":"saber66ccff@gmail.com"}],"readme":"# Solidity编译器MCP服务\n\n一个基于[Model Context Protocol (MCP)](https://github.com/microsoft/modelcontextprotocol)的Solidity智能合约编译服务，专为web3tgbot项目优化，支持完整的导入解析功能。\n\n## 核心特性\n\n- ✅ **智能导入解析** - 自动处理OpenZeppelin等第三方库导入\n- ✅ **简单API** - 仅需传递Solidity源码即可完成编译\n- ✅ **多种路径支持** - 处理相对路径、绝对路径和包路径导入\n- ✅ **完整编译信息** - 提供ABI、字节码、部署字节码和燃气估算\n- ✅ **适配MCP协议** - 与任何MCP客户端无缝协作\n- ✅ **版本检测** - 自动检测代码中的Solidity版本并提供相应错误提示\n\n## 版本历史\n\n### v1.2.0\n- 新增Solidity版本检测功能\n- 增强错误处理，更友好的错误提示\n- 提高OpenZeppelin库兼容性\n\n### v1.1.0\n- 修复ES模块兼容性问题\n- 改善导入路径解析\n\n### v1.0.0\n- 首次发布\n\n## 安装\n\n```bash\n# 全局安装（推荐用于CLI使用）\nnpm install -g @amyseer/sol-compiler-mcp\n\n# 作为项目依赖安装\nnpm install @amyseer/sol-compiler-mcp\n```\n\n## 快速开始\n\n### 启动服务\n\n服务可以作为独立进程运行，或被其他MCP客户端调用：\n\n```bash\n# 使用CLI启动\nnpx @amyseer/sol-compiler-mcp serve\n\n# 或者全局安装后启动\nsol-compiler-mcp serve\n```\n\n### 在web3tgbot中使用\n\n本服务专为[web3tgbot](https://github.com/amyseer/web3tgbot)项目优化。确保在web3tgbot的MCP配置中包含solidity-compiler：\n\n```json\n{\n  \"mcpServers\": {\n    \"solidity-compiler\": {\n      \"command\": \"npx\",\n      \"args\": [\"@amyseer/sol-compiler-mcp@1.2.0\", \"serve\"]\n    }\n  }\n}\n```\n\n## 版本兼容性\n\n本服务当前使用的依赖版本：\n\n- Solidity 编译器: v0.8.20\n- OpenZeppelin 库: v5.0.1 (支持Solidity ^0.8.20)\n\n如果您正在编译使用较旧版本的合约（如Solidity 0.7.x），请注意它们可能与当前的OpenZeppelin库不兼容。您应该使用相应版本的OpenZeppelin库，例如：\n\n- Solidity 0.7.x → OpenZeppelin 4.x\n- Solidity 0.8.x → OpenZeppelin 5.x\n\n## API说明\n\n本服务实现了以下MCP功能：\n\n### 工具\n\n- **compile-contract**\n  - 参数：\n    - `contractSource`（必填）：Solidity合约源代码或文件路径\n    - `contractName`（可选）：指定要编译的合约名称，未提供时会自动从源码提取\n  - 返回：\n    - 编译成功状态\n    - 合约名称\n    - 合约字节码\n    - 部署后的字节码\n    - 合约ABI\n    - 燃气估算\n\n### 资源\n\n- **solidity-info://compiler-version** - 显示当前使用的Solidity编译器版本\n- **solidity-info://example-contract** - 提供示例ERC20合约\n- **solidity-info://info** - 显示服务信息和可用资源\n- **solidity-info://node-modules** - 显示已配置的node_modules路径\n\n## 导入路径支持\n\n本服务支持以下类型的导入路径：\n\n1. **相对路径导入**：`import \"./Contract.sol\"` 或 `import \"../Contract.sol\"`\n2. **绝对路径导入**：`import \"/path/to/Contract.sol\"`\n3. **包导入**：`import \"@openzeppelin/contracts/token/ERC20/ERC20.sol\"`\n4. **本地导入**：`import \"Contract.sol\"`（在当前目录或contracts目录中查找）\n\n## 与web3tgbot集成\n\n在web3tgbot项目中，本服务用于编译由用户通过Telegram机器人创建的ERC20代币。集成使用以下流程：\n\n1. web3tgbot通过`src/erc20/compile.ts`中的`SolidityCompiler`类调用本服务\n2. 用户的合约代码通过`contractSource`参数传递\n3. 本服务处理代码中的所有导入语句，特别是OpenZeppelin合约\n4. 编译结果（字节码、ABI等）返回给web3tgbot，用于后续部署\n\n## 依赖项\n\n- Node.js 18.0.0+\n- solc 0.8.20+\n- @openzeppelin/contracts 5.0.1+\n- @modelcontextprotocol/sdk 1.10.2+\n\n## 调试\n\n如果遇到编译问题，可以检查stderr输出中的日志，它包含详细的编译和导入解析信息。\n\n服务会自动记录以下内容：\n- 导入解析过程和路径尝试\n- 编译警告和错误\n- 依赖检查结果\n- Solidity版本检测信息\n\n## 开发说明\n\n```bash\n# 克隆仓库\ngit clone https://github.com/amyseer/sol-compiler-mcp.git\ncd sol-compiler-mcp\n\n# 安装依赖\nnpm install\n\n# 构建项目\nnpm run build\n\n# 启动服务\nnpm run serve\n```\n\n## 许可证\n\nMIT ","readmeFilename":"README.md"}