Skip to main content
Glama
OpenZeppelin

OpenZeppelin Contracts MCP Server

Official
by OpenZeppelin

stellar-fungible

Generate smart contract source code for Stellar-compatible fungible tokens (SEP-41) with customizable features like burnable, pausable, mintable, and upgradeable options.

Instructions

Make a fungible token per the Fungible Token Standard, compatible with SEP-41, similar to ERC-20.

Returns the source code of the generated contract, formatted in a Markdown code block. Does not write to disk.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the contract
symbolYesThe short symbol for the token
burnableNoWhether token holders will be able to destroy their tokens
pausableNoWhether privileged accounts will be able to pause specifically marked functionality. Useful for emergency response.
premintNoThe number of tokens to premint for the deployer.
mintableNoWhether privileged accounts will be able to create more supply or emit more tokens
accessNoThe type of access control to provision. Ownable is a simple mechanism with a single account authorized for all privileged actions. Roles is a flexible mechanism with a separate role for each privileged action. A role can have many authorized accounts.
upgradeableNoWhether the contract can be upgraded.
infoNoMetadata about the contract and author

Implementation Reference

  • The handler function that receives tool input parameters, constructs FungibleOptions, calls fungible.print to generate Rust code, and returns it as text content.
    async ({ name, symbol, burnable, pausable, premint, mintable, upgradeable, access, info }) => { const opts: FungibleOptions = { name, symbol, burnable, pausable, premint, mintable, upgradeable, access, info, }; return { content: [ { type: 'text', text: safePrintRustCodeBlock(() => fungible.print(opts)), }, ], }; },
  • Zod schema defining the input shape for the stellar-fungible tool, including fields like name, symbol, burnable, etc.
    export const fungibleSchema = { name: z.string().describe(commonDescriptions.name), symbol: z.string().describe(commonDescriptions.symbol), burnable: z.boolean().optional().describe(commonDescriptions.burnable), pausable: z.boolean().optional().describe(commonDescriptions.pausable), premint: z.string().optional().describe(stellarFungibleDescriptions.premint), mintable: z.boolean().optional().describe(commonDescriptions.mintable), ...commonSchema, } as const satisfies z.ZodRawShape;
  • The registration function for the 'stellar-fungible' tool, called by server.tool with name, prompt, schema, and handler.
    export function registerStellarFungible(server: McpServer): RegisteredTool { return server.tool( 'stellar-fungible', makeDetailedPrompt(stellarPrompts.Fungible), fungibleSchema, async ({ name, symbol, burnable, pausable, premint, mintable, upgradeable, access, info }) => { const opts: FungibleOptions = { name, symbol, burnable, pausable, premint, mintable, upgradeable, access, info, }; return { content: [ { type: 'text', text: safePrintRustCodeBlock(() => fungible.print(opts)), }, ], }; }, ); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OpenZeppelin/contracts-wizard'

If you have feedback or need assistance with the MCP directory API, please join our Discord server