OpenZeppelin Cairo Contracts
Server Details
The OpenZeppelin Cairo Contracts MCP server generates secure smart contracts in the Cairo language for Starknet environments based on OpenZeppelin templates. It brings OpenZeppelin's proven security and style rules directly into AI-driven development workflows to create safe, production-ready contracts. Key capabilities include providing templates for ERC-20, ERC-721, ERC-1155, Multisig, Governor, and Vesting contracts.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4/5 across 8 of 8 tools scored.
Each tool generates a specific, well-known contract type (ERC20, ERC721, etc.) and the descriptions clearly distinguish them. cairo-custom is the generic option, but its purpose is explicit and does not overlap with the standards-based tools.
All tools follow a strict 'cairo-<contract-type>' pattern using hyphens. This is uniform and predictable, making it easy for agents to infer functionality from names alone.
With 8 tools, the set covers the major OpenZeppelin contract templates without being bloated. Each tool represents a distinct contract class, and the count feels appropriate for a code generation server.
The set covers the most common contract standards (ERC20, ERC721, ERC1155) plus account, governance, multisig, and vesting. The cairo-custom tool fills edge cases, though some specialized templates (e.g., upgradeable or access-control variants) are not directly provided.
Available Tools
8 toolscairo-accountCairo AccountAInspect
Make a custom smart contract that represents an account that can be deployed and interacted with other contracts, and can be extended to implement custom logic. An account is a special type of contract that is used to validate and execute transactions.
Returns the source code of the generated contract, formatted in a Markdown code block. Does not write to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| info | No | Metadata about the contract and author | |
| name | Yes | The name of the contract | |
| type | Yes | Type of signature used for signature checking by the Account contract, Starknet account uses the STARK curve, Ethereum-flavored account uses the Secp256k1 curve. | |
| deploy | No | Whether to enables the account to be counterfactually deployed. | |
| macros | No | The macros to use for the contract. | |
| pubkey | No | Whether to enables the account to change its own public key. | |
| declare | No | Whether to enable the account to declare other contract classes. | |
| upgradeable | No | Whether the smart contract is upgradeable. | |
| outsideExecution | No | Whether to allow a protocol to submit transactions on behalf of the account, as long as it has the relevant signatures. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it returns source code formatted as a Markdown code block and does not write to disk. It also mentions deployability and extensibility. This goes beyond basic 'generate contract' and provides useful operational details, though it does not cover potential errors or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two short paragraphs. The first sentence states the core purpose, and the second paragraph clarifies the return format and side effects. There is minor redundancy (e.g., 'custom smart contract' and 'account' explanation), but overall it is well-structured and front-loaded without excessive wordiness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, nested objects, no output schema), the description covers the essential missing pieces: it states the return format (Markdown code block) and non-disk-write behavior. The schema covers parameter meanings. However, it does not address edge cases or limitations, and it lacks explicit differentiation from sibling code generators, leaving some contextual ambiguity. Still, it is reasonably complete for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 9 parameters, so the schema already explains each parameter. The description itself adds no additional parameter-specific semantics beyond what the schema provides. The baseline is 3 because the schema does the heavy lifting and the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Make' and the resource 'a custom smart contract that represents an account'. It distinguishes itself from sibling tools by focusing specifically on account contracts, though it does not explicitly name alternatives like cairo-custom or cairo-multisig. The purpose is specific enough for an agent to understand this generates account contract source code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context by explaining that an account is a special type of contract for validating and executing transactions, which implies when this tool is relevant. However, it does not explicitly state when to prefer this over sibling tools such as cairo-multisig or cairo-governor, nor does it mention any exclusions. Usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cairo-customCairo CustomAInspect
Make a custom smart contract.
Returns the source code of the generated contract, formatted in a Markdown code block. Does not write to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| info | No | Metadata about the contract and author | |
| name | Yes | The name of the contract | |
| access | No | ||
| macros | No | The macros to use for the contract. | |
| pausable | No | Whether privileged accounts will be able to pause specifically marked functionality. Useful for emergency response. | |
| upgradeable | No | Whether the smart contract is upgradeable. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even though annotations are absent, the description discloses critical behaviors: it returns source code, formats it as Markdown, and does not write to disk. This transparently signals a side-effect-free generation process. It stops short of mentioning more subtle behaviors (e.g., output length or dependency on network), but is strong for a code generator.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two sentences convey purpose, return format, and side-effect involvement. Every phrase adds value, with the key information front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a code-generation tool, the description covers the essential behaviors: what it does, what it returns, and what it doesn't do (write to disk). The input schema fully documents parameters, and no output schema is present, so the text appropriately focuses on the generation outcome. It could mention deployment explicitly, but that is reasonably implied by 'returns source code.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (83%) and includes detailed explanations for nested objects like 'access' and 'macros'. The description adds no parameter-specific context beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function ('Make a custom smart contract') and explicitly notes the output (source code in a Markdown code block). The term 'custom' distinguishes it from the sibling template-based tools, making its unique role clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to choose this tool over siblings like cairo-erc20 or cairo-governor. The word 'custom' implies a fallback for non-standard contracts, but the description never states criteria, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cairo-erc1155Cairo ERC1155AInspect
Make a non-fungible token per the ERC-1155 standard.
Returns the source code of the generated contract, formatted in a Markdown code block. Does not write to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| info | No | Metadata about the contract and author | |
| name | Yes | The name of the contract | |
| access | No | ||
| macros | No | The macros to use for the contract. | |
| baseUri | Yes | The location of the metadata for the token. Clients will replace any instance of {id} in this string with the tokenId. | |
| burnable | No | Whether token holders will be able to destroy their tokens | |
| mintable | No | Whether privileged accounts will be able to create more supply or emit more tokens | |
| pausable | No | Whether privileged accounts will be able to pause specifically marked functionality. Useful for emergency response. | |
| royaltyInfo | No | Provides information for how much royalty is owed and to whom, based on a sale price. Follows ERC-2981 standard. | |
| upgradeable | No | Whether the smart contract is upgradeable. | |
| updatableUri | No | Whether privileged accounts will be able to set a new URI for all token types. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It explicitly states that the tool returns source code in a Markdown code block and does not write to disk, which are key side-effect and output traits. However, it does not mention potential error conditions, input validation behavior, or what happens if required parameters are missing, so it is not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, followed by crucial output/side-effect details. Every word earns its place; there is no fluff or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 params, nested objects) and absence of an output schema, the description covers the return value and side-effect behavior succinctly. The rich schema covers parameter details, so the description doesn't need to enumerate features. A slight deduction for not providing a brief overview of the contract generation flow, but it is sufficient for a code generator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (91%), so the baseline is 3. The description adds no extra parameter detail beyond what the schema already provides; it does not explain any parameters or tie them to the generation behavior. The schema descriptions are already comprehensive, so no deduction is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Make' with a clear resource ('a non-fungible token per the ERC-1155 standard') and distinguishes itself from sibling tools like cairo-erc20 and cairo-erc721 by specifying the standard. It also clarifies the output format and side effects, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied by the tool name and mention of the ERC-1155 standard, but there is no explicit guidance on when to use this instead of alternatives like cairo-erc721 or cairo-erc20. No exclusions or alternative-tool references are provided, so the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cairo-erc20Cairo ERC20AInspect
Make a fungible token per the ERC-20 standard.
Returns the source code of the generated contract, formatted in a Markdown code block. Does not write to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| info | No | Metadata about the contract and author | |
| name | Yes | The name of the contract | |
| votes | No | Whether to keep track of historical balances for voting in on-chain governance, with a way to delegate one's voting power to a trusted account. | |
| access | No | ||
| macros | No | The macros to use for the contract. | |
| symbol | Yes | The short symbol for the token | |
| appName | No | Required when votes is enabled, for hashing and signing typed structured data. Name for domain separator implementing SNIP12Metadata trait. Prevents two applications from producing the same hash. | |
| premint | No | The number of tokens to premint for the deployer. | |
| burnable | No | Whether token holders will be able to destroy their tokens | |
| decimals | No | The number of decimals to use for the contract. Defaults to 18. | |
| mintable | No | Whether privileged accounts will be able to create more supply or emit more tokens | |
| pausable | No | Whether privileged accounts will be able to pause specifically marked functionality. Useful for emergency response. | |
| appVersion | No | Required when votes is enabled, for hashing and signing typed structured data. Version for domain separator implementing SNIP12Metadata trait. Prevents two versions of the same application from producing the same hash. | |
| upgradeable | No | Whether the smart contract is upgradeable. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It discloses that the tool returns source code in a Markdown code block and does not write to disk, which is key behavioral information. It could add more about side effects or permissions, but for a code generator this covers the essential behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero wasted words. It front-loads the primary purpose and then immediately adds the key return behavior and side-effect disclosure. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 14 parameters, nested objects, and no output schema, the description is complete enough: it specifies the return format and the fact that it does not write to disk. The high schema coverage handles parameter details. No critical missing context for a code generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 93%, so the schema already documents the parameters thoroughly. The description adds no new parameter-specific semantics, but the high schema coverage means the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Make a fungible token per the ERC-20 standard.' This clearly distinguishes it from sibling tools like cairo-erc721 and cairo-erc1155, which are for non-fungible tokens, and cairo-account/vesting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear this tool is for generating an ERC-20 token, which implies the use case. It does not explicitly exclude alternatives or mention when not to use it, but the purpose statement is sufficient contextual guidance for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cairo-erc721Cairo ERC721AInspect
Make a non-fungible token per the ERC-721 standard.
Returns the source code of the generated contract, formatted in a Markdown code block. Does not write to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| info | No | Metadata about the contract and author | |
| name | Yes | The name of the contract | |
| votes | No | Whether to keep track of individual units for voting in on-chain governance. Voting durations can be expressed as block numbers or timestamps. | |
| access | No | ||
| macros | No | The macros to use for the contract. | |
| symbol | Yes | The short symbol for the token | |
| appName | No | Required when votes is enabled, for hashing and signing typed structured data. Name for domain separator implementing SNIP12Metadata trait. Prevents two applications from producing the same hash. | |
| baseUri | No | A base uri for the non-fungible token. | |
| burnable | No | Whether token holders will be able to destroy their tokens | |
| mintable | No | Whether privileged accounts will be able to create more supply or emit more tokens | |
| pausable | No | Whether privileged accounts will be able to pause specifically marked functionality. Useful for emergency response. | |
| appVersion | No | Required when votes is enabled, for hashing and signing typed structured data. Version for domain separator implementing SNIP12Metadata trait. Prevents two versions of the same application from producing the same hash. | |
| enumerable | No | Whether to allow on-chain enumeration of all tokens or those owned by an account. Increases gas cost of transfers. | |
| royaltyInfo | No | Provides information for how much royalty is owed and to whom, based on a sale price. Follows ERC-2981 standard. | |
| upgradeable | No | Whether the smart contract is upgradeable. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explicitly discloses that the tool returns the source code in a Markdown code block and does not write to disk, which are important behavioral traits for a code generator. This goes beyond a simple statement of purpose and clarifies side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and includes essential return-format and side-effect information. Every word adds value; there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple code generator with a rich parameter schema and no output schema, the description adequately explains the tool's behavior and return format. It could mention more about the generated contract's content, but the schema covers parameter details, and the core behavior is well-defined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (93%), so the parameters are already well-documented in the schema. The description adds no extra parameter-level semantics beyond what is already present, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to make a non-fungible token per the ERC-721 standard, which is a specific verb and resource. It returns source code of the generated contract, distinguishing it from sibling tools like cairo-erc20 or cairo-erc1155.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (when an ERC-721 token is needed), but it does not explicitly mention alternatives or exclusion criteria. The context is sufficient given the tool's name and the standard reference, but no explicit when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cairo-governorCairo GovernorAInspect
Make a contract to implement governance, such as for a DAO.
Returns the source code of the generated contract, formatted in a Markdown code block. Does not write to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| info | No | Metadata about the contract and author | |
| name | Yes | The name of the contract | |
| delay | Yes | The delay since proposal is created until voting starts, in readable date time format matching /^(\d+(?:\.\d+)?) +(second|minute|hour|day|week|month|year)s?$/, default is "1 day". | |
| votes | No | The type of voting to use. Either erc20votes, meaning voting power with a votes-enabled ERC20 token. Either erc721votes, meaning voting power with a votes-enabled ERC721 token. Voters can entrust their voting power to a delegate. | |
| macros | No | The macros to use for the contract. | |
| period | Yes | The length of period during which people can cast their vote, in readable date time format matching /^(\d+(?:\.\d+)?) +(second|minute|hour|day|week|month|year)s?$/, default is "1 week". | |
| appName | No | Required when votes is enabled, for hashing and signing typed structured data. Name for domain separator implementing SNIP12Metadata trait. Prevents two applications from producing the same hash. | |
| decimals | No | The number of decimals to use for the contract, default is 18 for ERC20Votes and 0 for ERC721Votes (because it does not apply to ERC721Votes). | |
| settings | No | Whether to allow governance to update voting settings (delay, period, proposal threshold). | |
| timelock | No | Whether to add a delay to actions taken by the Governor. Gives users time to exit the system if they disagree with governance decisions. If "openzeppelin", Module compatible with OpenZeppelin's TimelockController. | |
| clockMode | No | The clock mode used by the voting token. For now, only timestamp mode where the token uses voting durations expressed as timestamps is supported. For Governor, this must be chosen to match what the ERC20 or ERC721 voting token uses. | |
| appVersion | No | Required when votes is enabled, for hashing and signing typed structured data. Version for domain separator implementing SNIP12Metadata trait. Prevents two versions of the same application from producing the same hash. | |
| quorumMode | No | The type of quorum mode to use, either by percentage or absolute value. | |
| upgradeable | No | Whether the smart contract is upgradeable. | |
| quorumPercent | No | The percent required, in cases of quorumMode equals percent. | |
| quorumAbsolute | No | The absolute quorum required, in cases of quorumMode equals absolute. | |
| proposalThreshold | No | Minimum number of votes an account must have to create a proposal, default is 0. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states that the tool returns source code formatted as a Markdown code block and explicitly says it does not write to disk. This is valuable context about side effects and output format, though it does not cover every possible behavioral nuance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the tool's purpose, and immediately follows with the key output behavior. Every sentence provides necessary information with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (17 parameters, nested objects, no output schema), the description covers the essential contextual points: what it generates, the output format, and its non-destructive behavior. The absence of details about parameter interactions is mitigated by the rich schema descriptions. It is slightly lean for such a complex tool but still adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all 17 parameters. The description adds no parameter-specific meaning, which is acceptable given the high schema coverage. The baseline of 3 applies because the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: 'Make a contract to implement governance, such as for a DAO.' It also clarifies the output by noting it returns source code in a Markdown code block. This distinguishes the tool from sibling contract generators like cairo-erc20 or cairo-account by its governance focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'such as for a DAO' implies a governance use case, but no explicit comparison with alternatives or exclusions is provided. While the sibling tool names suggest other contract types, the description itself does not state when to prefer this tool over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cairo-multisigCairo MultisigAInspect
Make a multi-signature smart contract, requiring a quorum of registered signers to approve and collectively execute transactions.
Returns the source code of the generated contract, formatted in a Markdown code block. Does not write to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| info | No | Metadata about the contract and author | |
| name | Yes | The name of the contract | |
| macros | No | The macros to use for the contract. | |
| quorum | Yes | The minimal number of confirmations required by the Multisig to approve a transaction. | |
| upgradeable | No | Whether the smart contract is upgradeable. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides crucial behavioral context: it returns source code in a Markdown code block and does not write to disk. This explicitly states the tool's side-effect-free nature, which is valuable for an agent deciding whether to invoke it. It doesn't mention input validation or edge cases, but for a code generator this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, front-loaded with the core purpose. Each sentence adds value: the first states what the tool does, and the second clarifies the output format and side effects. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a code generation tool with 5 parameters and no output schema, the description provides the essential context: what it does, the output format, and that it doesn't write to disk. The schema covers parameter details, so the description is complete enough without explaining every field.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters are documented in the schema (100% coverage), so the description adds little beyond the schema. The mention of quorum and signers provides some additional context, but the baseline of 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Make') and resource ('multi-signature smart contract'), clearly distinguishing it from sibling contract generators. It also adds key details like quorum and signers, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear (generating a multisig contract), but there is no explicit guidance on when to choose this over alternatives like cairo-governor or cairo-custom. It implies usage but lacks when-not or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cairo-vestingCairo VestingAInspect
Make a vesting smart contract that manages the gradual release of ERC-20 tokens to a designated beneficiary based on a predefined vesting schedule.
Returns the source code of the generated contract, formatted in a Markdown code block. Does not write to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| info | No | Metadata about the contract and author | |
| name | Yes | The name of the contract | |
| macros | No | The macros to use for the contract. | |
| duration | Yes | The total duration of the vesting period. In readable date time format matching /^(\d+(?:\.\d+)?) +(second|minute|hour|day|week|month|year)s?$/ | |
| schedule | Yes | A vesting schedule implementation, tokens can either be vested gradually following a linear curve or with custom vesting schedule that requires the implementation of the VestingSchedule trait. | |
| startDate | Yes | The timestamp marking the beginning of the vesting period. In HTML input datetime-local format, e.g. "2026-03-15T14:30". | |
| cliffDuration | Yes | The duration of the cliff period. Must be less than or equal to the total duration. In readable date time format matching /^(\d+(?:\.\d+)?) +(second|minute|hour|day|week|month|year)s?$/ |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses two important behaviors: the output is rendered as a Markdown code block and it does not write to disk. This goes beyond the basic purpose and gives the agent a clear picture of side-effects and return format, though it does not cover error cases or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the purpose, the second states the output and side-effect. It is front-loaded, concise, and every sentence earns its place with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The combination of the description and a very detailed input schema provides a solid understanding of the tool. The output format and non-persistence behavior are clearly specified. However, the description mentions a 'designated beneficiary' which is not represented as a parameter in the schema, creating a minor gap about how the beneficiary is configured. Otherwise, it is complete for a code generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are already described in detail (formats, enums, defaults). The description adds no additional parameter-specific meaning, only referencing a 'predefined vesting schedule' without elaborating on the schedule option. Baseline of 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Purpose is highly specific: 'Make a vesting smart contract that manages the gradual release of ERC-20 tokens to a designated beneficiary based on a predefined vesting schedule.' This clearly distinguishes it from sibling contract generators (e.g., erc20, erc721) and includes the output format (Markdown source code) and side-effect (no disk write).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when a vesting contract is needed), but it does not explicitly mention alternatives or exclusion criteria. Since sibling tools are all different contract types, the usage is clear by context but not explicitly stated, resulting in an implied rather than explicit guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityAmaintenanceA Model Context Protocol (MCP) server that allows AI agents to generate smart contracts using OpenZeppelin Contracts libraries.26358293AGPL 3.0
- Alicense-qualityDmaintenanceEnables users to generate and retrieve secure, audited smart contract templates from OpenZeppelin including ERC20, ERC721, ERC1155 tokens, access control, governance, and finance contracts through natural language prompts.MIT
- Flicense-qualityBmaintenanceAn MCP server that statically audits Solidity smart contracts for common vulnerabilities like reentrancy and access control, enabling developers to identify and fix security issues via natural language.
- AlicenseAqualityBmaintenanceAn MCP server that gives autonomous coding agents deterministic, schema-validated tools for EVM smart contract development — security scanning, gas profiling, compiler diagnostics, and transaction simulation.91MIT