- Language
- TypeScript
- Last commit
- 2h ago
- Forks
- 2
- Open issues
- 0
- Registry update
- Oct 13, 2026
Connect
npm$claude mcp add mdma \ -- npx -y @mobile-reality/[email protected]
Environment variables
Nothing to configure — it works as is.
Security review
Review passedReviewed 1h ago.
- metadata
- scanned
- packages
- 1 checked
No findings.
Tools
This server runs on your machine, so its tool list is not fetched before install — the README below describes what it offers.
@mobile-reality/mdma-mcp
MCP (Model Context Protocol) server for MDMA. Exposes the MDMA spec, authoring prompts, package metadata, and live GitHub documentation to AI assistants.
Tools
| Tool | Purpose |
|---|---|
get-spec | Returns the full MDMA specification (component types, JSON schemas, binding syntax, external data sources with { source, params } refs and the rows / series / options kinds, authoring rules). |
get-prompt | Returns a named MDMA prompt (mdma-author, mdma-reviewer, mdma-fixer). For mdma-author, accepts an optional variantId (e.g. anthropic/sonnet-5.5, openai/gpt-6-sol) to return the model-optimised variant — use list-prompt-variants to see all available ids. |
list-prompt-variants | Returns all available MDMA_AUTHOR prompt variants (id, label, description) without the prompt content. Use the id with get-prompt to fetch the model-optimised prompt. |
build-system-prompt | Generates a custom MDMA prompt from structured input (domain, components, fields, steps, business rules). Pass dataSources (an external data-source catalog of rows / series / options entries) to get the full system prompt with the catalog and the rule to reference data via { source, params }. |
validate-prompt | Validates a custom prompt against MDMA conventions. |
list-packages | Returns all MDMA npm packages with purpose, install command, usage example, and category. |
list-docs | Returns the catalog of MDMA documentation files available for fetching from the public GitHub repo. |
get-doc | Fetches the latest version of a doc from raw.githubusercontent.com/MobileReality/mdma. Supports an optional ref (branch, tag, or SHA). |
Install
{
"mcpServers": {
"mdma": { "command": "npx", "args": ["@mobile-reality/mdma-mcp"] }
}
}
Distribution venues
Places where MDMA's MCP server is published or should be published. Each venue has its own submission / update flow — when releasing a new version, check each one.
| Venue | Identifier / URL | Notes |
|---|---|---|
| npm | @mobile-reality/mdma-mcp | Publish via pnpm publish --access public --no-git-checks. |
| Official MCP Registry | io.github.MobileReality/mdma | Published via mcp-publisher. Namespace is case-sensitive — must match GitHub's canonical capitalization. |
| Glama | MobileReality/mdma | Quality + Security scores auto-evaluated periodically. Docker build config lives in the Glama admin page — re-deploy + re-release when bumping. |
| awesome-mcp-servers | punkpeye/awesome-mcp-servers | Entry sits under Developer Tools alphabetically. |
| Smithery Skills | mobilereality/mdma | Skills surface — not the MCP surface (Smithery's MCP flow is HTTP-only, unusable for stdio). |
| MCP.so | mcp.so/server/mdma | Submitted by Mateusz Sadowski (shown as "Submitted by" on the public page), so Title / Description / Tags / Content are edited from that account. Without access, ask Mateusz Sadowski to edit it, or use the "Claim" button next to the server name (sign in first; the verification MCP.so requires is not documented here). The page lists the tools and the npx @mobile-reality/mdma-mcp command but no version, so a new release needs no change there unless the tool set or description changes. |
| MCPB Desktop Extensions | Anthropic intake form | Partner queue at Anthropic. Bundle built locally; not shipped in this repo. |
Release checklist — when bumping the version
Use this checklist every time you publish a new version (0.2.4 → 0.2.5, etc.).
1. Bump + test
- Update
versionin package.json. - Update
versionstring in src/index.ts (theMcpServer({ version: ... })call). - Update top-level
versionandpackages[0].versionin server.json. - Update top-level
versionandpackages[0].versionin manifest.json. - Add a changeset:
pnpm changesetat repo root. - Run
pnpm build && pnpm test && pnpm typecheckin this package. - Run
pnpm smoke:packin this package — it packs, installs the tarball into a clean directory and checkstools/listandget-specover stdio; it must printPASSbefore you publish.
2. Publish to npm
-
pnpm publish --access public --no-git-checksfrom this directory. - Verify:
npm view @mobile-reality/mdma-mcp version mcpName— both should match.
3. Publish to the MCP Registry
- Ensure
mcp-publisheris authenticated:mcp-publisher login github(re-auth if tokens expired). -
mcp-publisher publishfrom this directory.- Alternative: run the "Publish to MCP Registry" workflow from the Actions tab on
mainafter the npm publish. Interactivemcp-publisher login githubfails when the organization restricts OAuth apps; the workflow uses GitHub OIDC instead.
- Alternative: run the "Publish to MCP Registry" workflow from the Actions tab on
- Verify:
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.MobileReality/mdma"shows the new version.
Do not commit
.mcpregistry_github_token/.mcpregistry_registry_token— they are in .gitignore. GitHub's push protection will block the push anyway; this is a belt-and-braces reminder.
4. Tag the release
git tag '@mobile-reality/mdma-mcp@<version>'
git push origin '@mobile-reality/mdma-mcp@<version>'
5. Build a fresh MCPB bundle (only if submitting a Desktop Extension update)
pnpm's virtual store (.pnpm/) gets stripped by mcpb pack, so you must build the bundle from a clean npm-installed directory or transitive deps (e.g. ajv) will be missing.
Output: <name>-<version>.mcpb. Test-install in Claude Desktop, then attach as a GitHub Release asset.
6. Glama — if tool descriptions or Dockerfile config changed
- If you added / renamed / changed descriptions of tools: Glama's Quality score will re-evaluate on its next periodic scan. No manual trigger.
- If
packages[0].versionbumped: go to the Glama admin page → update Build steps (npm install -g @mobile-reality/mdma-mcp@<version>) → Deploy → Make Release.
7. Downstream awareness
- Update the MCP tools table in the root README.md if tools were added / renamed / removed.
- Update this package's own tools table (above) the same way.
- If tools changed: update the MCP.so listing, which is owned by another account (see the MCP.so row in Distribution venues).
- If a breaking change: note in the changeset; update consumers of
createMdmaMcpServer()if any.
Troubleshooting
MCP Registry publish fails with 403 Forbidden
If the error says permission to publish: io.github.gitsad/*, io.github.MobileReality/*. Attempting to publish: io.github.mobilereality/mdma (lowercase mismatch): the registry is case-sensitive and your mcpName / server.json name must exactly match GitHub's canonical MobileReality capitalization. Fix both files and republish to npm (versions on npm are immutable).
If the error says permission to publish: io.github.gitsad/* (org missing entirely): your MobileReality GitHub membership is private. Make it public at https://github.com/orgs/MobileReality/people, then mcp-publisher logout && mcp-publisher login github to refresh the JWT.
MCPB .mcpb crashes on install in Claude Desktop
Usually "missing module" errors in the Developer tab logs. Cause: pnpm's nested .pnpm/ virtual store got stripped at pack time, so transitive deps are missing. Fix: build the bundle from a clean npm-installed directory (see step 5 above). Do not run mcpb pack directly against packages/mcp/node_modules.
Secrets leaking into the bundle
mcpb pack does not respect .gitignore. Any .mcpregistry_*_token file next to the manifest at pack time gets zipped into the .mcpb. Always delete these before packing, and prefer the /tmp/mcpb-build workflow above which has no tokens in its directory.
Files in this package
| File | Purpose | Tracked? |
|---|---|---|
| src/ | TypeScript source for the server + tools. | ✅ |
| dist/ | Compiled JavaScript. | ❌ (gitignored) |
| tests/ | Vitest unit tests for tool logic. | ✅ |
| package.json | Contains the mcpName field required by the MCP Registry. | ✅ |
| server.json | MCP Registry manifest consumed by mcp-publisher. | ✅ |
| manifest.json | MCPB (Desktop Extension) manifest. | ✅ |
| icon.png | 1024×1024 square icon for the MCPB submission. | ✅ |
| screenshots/ | Screenshots bundled with the MCPB for the Claude Desktop install dialog. | ✅ |
*.mcpb | Built Desktop Extension bundle (build artifact). | ❌ (gitignored) |
From the server's repository — third-party content, read it before running anything it suggests.
More in AI & LLMs
where-my-hug
io.github.bikemeardsley
Which parts of an ML need Hugging Face already covers. Every model and dataset checked live.
TranscribeText
com.transcribetext
Get YouTube video transcripts and transcribe TikTok videos to text from a link. No sign-up.
ContexteTech
io.github.contexte-tech
Search and load AI datasets, prompts and few-shot contexts from the ContexteTech catalogue.
Canarics Radio
com.canarics
24/7 AI-hosted radio (LV+EN). Agents read transcripts and ask the hosts questions answered on air.
ask-llm
io.github.Lykhoyda
Unified MCP server for Gemini, Codex, Claude, Grok, Ollama, and Antigravity
prompt-protection
io.github.mughalhere
Scan prompts, tool definitions and model output for injection, and guard agent tool calls.
Listing from the official MCP Registry · repository facts from GitHub, 1h ago.