Menta plugin
Menta as an installable plugin for ChatGPT, Codex, Claude, Cursor and Grok Bot. It bundles the Menta MCP server (https://menta.crossmint.com/mcp) with two skills: setup, the onboarding ChatGPT runs after install, and buy, the server's own instructions. Users still sign in to Menta, and Menta pays only from spending limits they approve themselves in Crossmint's form; the assistant never can approve one.
What's here
| File | For | Source |
|---|---|---|
plugin.json, mcp.json | ChatGPT and Codex (portable Agent Plugins format; OpenAI presentation, onboardingSkill, directory review cases and release notes under extensions["com.openai"]) | generated |
.claude-plugin/plugin.json, .mcp.json | Claude Code, claude.ai, Cowork | generated |
.cursor-plugin/plugin.json | Cursor and Grok Bot (Cursor Marketplace): name, logo, skills/ and the MCP server inline by URL | generated |
../../.cursor-plugin/marketplace.json | The repo-root Cursor marketplace that points at this folder | by hand (checked by the test) |
skills/setup/SKILL.md | Onboarding: address, card, how payments are approved | by hand |
skills/buy/SKILL.md | The MCP server's instructions, verbatim | generated |
assets/ | Icons from apps/web/lib/brand.ts | generated |
"Generated" files come from apps/web/lib/plugin.ts. After changing the server instructions, the logo or the origin, run pnpm plugin:sync; pnpm test fails until you do. Marketplaces for local installs: .agents/plugins/marketplace.json at the repo root (ChatGPT, Codex) and plugins/.claude-plugin/marketplace.json (Claude).
Forks
This plugin is the official one and points at https://menta.crossmint.com/mcp. To ship a plugin for your own deployment, set PRODUCTION_ORIGIN in apps/web/lib/site.ts to your origin and run pnpm plugin:sync, which rewrites the generated files to point at your server. Give it your own name and branding before publishing it anywhere: forks may not present themselves as Crossmint or Menta by Crossmint (see NOTICE).
Install locally to test
ChatGPT (desktop app)
-
Go to chatgpt.com/plugins, select Add, then Add custom MCP server. Name it Menta, keep Server URL and paste
https://menta.crossmint.com/mcp, authentication OAuth. Tick I understand and want to continue, then Create as a plugin. Copy the ID from the browser URL; it starts withplugin_asdk_app. -
Copy
plugins/mentato~/.codex/plugins/mentaand map that server into the copy (never into the repo: packages submitted to the directory can't contain app references). The easiest way is@plugin-creatorin Work mode: "Wire ~/.codex/plugins/menta to my MCP server plugin_asdk_app_… and keep its skills." By hand, add.app.jsonin the shape OpenAI's own plugins use (Notion's hasasdk_app_…, the URL ID withoutplugin_; unverified which form local installs want) and"apps": "./.app.json"underextensions["com.openai"]in the copy'splugin.json:{ "apps": { "menta": { "id": "asdk_app_…" } } } -
Make the marketplace visible: add the
.agents/plugins/marketplace.jsonentry to~/.agents/plugins/marketplace.jsonwith"path": "./.codex/plugins/menta". -
Restart the ChatGPT desktop app. Open the Plugins Directory, choose Menta (local), and install. Sign in to Menta when asked.
-
Check:
- Setup runs the
setupskill: it offers the account link for a card and to save your delivery address in chat, and says it pays only from spending limits you approve. - The plugin's details page shows Settings: Cards · saved by Crossmint (Manage cards), Addresses (Default for my deliveries, Add an address) and Store sign-ins (Sign out of all stores). Change the default and confirm it on
/settings. Settings only appear when the server recognizes ChatGPT (seedocs/HOSTS.md, "Host detection"). - "Buy a 4-pack of AA batteries on Amazon, under $15" starts a checkout; the card shows when the store needs you and for the receipt.
- Setup runs the
After changing the package, re-sync, update the copy your marketplace points to and restart the app.
Codex
Codex reads the same marketplace. codex plugin marketplace add /path/to/your/clone registers it; install from the ChatGPT desktop app's Plugins Directory (Codex), or enable it for this repo in .codex/config.toml:
[plugins."menta@oca-local"]
enabled = true
Codex connects to mcp.json directly. To test against a local server, point url at http://localhost:3000/mcp in your installed copy (not in the repo).
Claude Code
claude --plugin-dir ./plugins/menta
or install it from the local marketplace:
claude plugin marketplace add ./plugins
claude plugin install menta@oca-local
Run /mcp to sign in to Menta. The skills appear as /menta:setup and /menta:buy. claude plugin validate ./plugins/menta checks the manifest.
claude.ai and Cowork
Zip the plugins/menta folder, then Customize > Plugins > Add > Upload plugin. Connect Menta from the plugin's Connectors tab. Claude has no onboarding hook or plugin settings, so run the setup skill by asking "set up Menta".
Cursor
Cursor reads .cursor-plugin/plugin.json (it also loads the portable root plugin.json). To test before publishing, copy the folder into Cursor's local plugins and restart Cursor:
mkdir -p ~/.cursor/plugins/local
cp -R plugins/menta ~/.cursor/plugins/local/menta
Symlinks only load when they point inside that folder, so copy rather than link. Menta shows up under MCP with OAuth; sign in, then try "Buy a 4-pack of AA batteries on Amazon, under $15". The buy and setup skills come from skills/.
Grok Bot (Cursor Marketplace)
Grok Bot installs plugins from the Cursor Marketplace, and its skills are shared across all of a user's Bots. Grok Bot calls our MCP server from Cursor's hosted backend (it identifies as Cursor), so OAuth and the tools work as they do for a connector added by hand.
Submitting to the Cursor Marketplace:
- Check the Marketplace checklist (cursor.com/docs/reference/plugins): a valid manifest with a unique kebab-case
name(menta), a cleardescription, valid skill files, a committed logo by relative path (assets/logo.png), this README, and a local test (above). The repository must be public and open source (Apache-2.0). - The plugin lives in a subfolder, so the repo root has
.cursor-plugin/marketplace.jsonpointing atplugins/menta.pnpm testchecks it matchesapps/web/lib/plugin.ts. - Submit the repository URL at cursor.com/marketplace/publish. Cursor reviews every plugin by hand.
- After it's listed: in Grok Bot, open the Marketplace, add Menta and sign in. Then set up Grok Bot updates at
/settings#grok-bot(a routine with a webhook trigger), so the Bot hears when a checkout needs you after it stops.
Submit to the directories
The repository can stay private for ChatGPT and for the Claude connector. Claude's plugin listing and the Cursor Marketplace (Grok Bot) need it public.
ChatGPT
-
In platform.openai.com organization settings, verify Crossmint (business verification), so the listing names Crossmint.
-
At platform.openai.com/plugins, Upload new or existing plugin, as Crossmint, with a ZIP of this folder:
cd plugins/menta && zip -r ../../menta-chatgpt.zip . -x '.claude-plugin/*' '.cursor-plugin/*' '.mcp.json' && cd - -
Verify the domain: set
OPENAI_APPS_CHALLENGEon Vercel to the token the dashboard shows and redeploy; it's served athttps://menta.crossmint.com/.well-known/openai-apps-challenge. -
Fill in what the package doesn't carry: OAuth for the MCP server, the demo video URL, and a reviewer account in Review details (no MFA: a Stytch email code won't work for reviewers, so use a password or a reviewer inbox they can read). The review cases, commerce declaration, listing URLs and release notes come from
plugin.json. -
Submit for review. After approval, Publish plugin. MCP server changes reach the listing without a new ZIP; skills and listing changes need one.
Claude
Both in the developer portal at claude.ai/directory/manage → Submit new:
- MCP connector:
https://menta.crossmint.com/mcp. Have ready the docs URL, privacy policy URL, support contact, icon, a reviewer account, and 3–5 PNG carousel screenshots of the card (at least 1000px wide, cropped to the card, each with its prompt). Under allowed link URIs, addhttps://menta.crossmint.com, so "Set up a spending limit" and "Fill it in on Menta" open without Claude's confirmation prompt. - Plugin bundle: repository
Crossmint/menta, plugin pathplugins/menta. A private repository needs the Claude GitHub App installed on it and consent to upload its source for scanning; it goes live only once public. Runclaude plugin validate ./plugins/mentafirst.