An LLM asked for an ERC20 will produce something that compiles and may not be safe. Fetching the OpenZeppelin template instead means the security properties come from a library that has been audited, and the model's job shrinks to filling in the name, symbol and cap. Treat the output as a starting point rather than a deployment: the moment you edit the template, the provenance argument stops applying to your version.
An MCP server that fetches and generates smart contract templates from OpenZeppelin, so an assistant can hand back Solidity for a named token or governance pattern rather than writing it from memory. The point is provenance: the contract comes from the audited library, not from the model.
- ERC20, ERC721 and ERC1155 contracts generated with the name, symbol and supply cap you asked for — `get-token-contract` is the tool the client picks for these
- Access control templates for role-based permissions, including admin and minter roles
- Account management templates: account abstraction, multi-signature wallets and DAO structures
- Finance templates: escrow, lending and pooled investment contracts
- Governance templates for DAO proposals and voting, including token-based voting
Nothing external — no account, no key, no wallet. There is no published package: build from a clone and point your client at `build/index.js` by absolute path, in Claude Desktop's config or Cursor's MCP servers file, then restart the client. What it returns is a template — deployment, constructor arguments and any audit of your modifications are still yours.
