Mapped's Claude Code plugins. This
repo is also a plugin marketplace (.claude-plugin/marketplace.json), so it
can be added and installed directly.
/plugin marketplace add mapped/claude-plugins # or a local path: /plugin marketplace add .
/plugin install <plugin-name>@mapped
Wraps the mapped-mcp server's tools
(graphql_gen, graphql_gen_with_results) over HTTP. The plugin connects to
Mapped's hosted instance at https://mcp.mapped.com/mcp, so all you need is a
credential. (Self-hosting? Edit url in mapped-mcp/.claude-plugin/plugin.json.)
-
Provide your credential. Each tool call relays an
Authorizationheader; the plugin sendstoken ${MAPPED_PAT}, which Claude Code expands from your environment at connect time (the server exchanges the PAT for a JWT via the vault micro). Never put the token in the plugin manifest — it's committed to this marketplace. Supply it through your own config instead; pick one:-
Recommended — project-local settings.
.claude/settings.local.jsonin the repo you launch Claude Code from (Claude Code keeps this file out of git):{ "env": { "MAPPED_PAT": "your-mapped-pat" } } -
All your projects — the same
envblock in~/.claude/settings.json. -
Quick / one-off — export it before launching Claude Code:
export MAPPED_PAT=<your-mapped-pat> && claude
Do not put the PAT in a git-committed
.claude/settings.json.${VAR}expansion is supported in MCPheaders, so the manifest stays secret-free and each user supplies their own value.To avoid storing the PAT on disk at all, replace the static header in
mapped-mcp/.claude-plugin/plugin.jsonwith aheadersHelperthat fetches it from a secret manager at connect time (its stdout JSON becomes the headers):"mapped": { "type": "http", "url": "https://mcp.mapped.com/mcp", "headersHelper": "echo \"{\\\"Authorization\\\": \\\"token $(op read op://vault/mapped/pat)\\\"}\"" }
-
-
Install and enable it:
/plugin marketplace add mapped/claude-plugins /plugin install mapped-mcp@mappedThe
graphql_genandgraphql_gen_with_resultstools then appear under themappedserver.
Web sessions run in an Anthropic-managed cloud VM. The plugin's
https://mcp.mapped.com/mcp endpoint is publicly reachable, so it works from web
sessions — two things differ from desktop:
-
Config must be committed to the repo. User-scoped
/plugin installand~/.claude/settings.jsondon't carry into web sessions — only repo config is cloned in. Declare the marketplace and enable the plugin in the repo's.claude/settings.json:{ "extraKnownMarketplaces": { "mapped": { "source": { "source": "github", "repo": "mapped/claude-plugins" } } }, "enabledPlugins": ["mapped-mcp@mapped"] } -
Supply the PAT as an environment variable in the session's environment config (the web UI's Environment variables,
.envformat, no quotes):MAPPED_PAT=....${VAR}expansion runs the same as on desktop. Note: there's no dedicated secrets store yet — the value is visible to anyone who can edit that environment.
Three local tools for the Mapped GraphQL API — no MCP server required, just
uv on PATH:
- Schema loader (
scripts/schema_loader.py) — introspects the live API and prints the path to the downloaded schema (SDL). - Validator (
scripts/validate_query.py) — checks a query/mutation against the schema withgraphql-core(spec-complete, with "did you mean" hints). - Executor (
scripts/execute_query.py) — runs a query against the endpoint and prints the JSON response.
The schema is fetched live via introspection (not embedded), so it never
goes stale. The scripts run via uv, which installs their one dependency
(graphql-core) on first use — nothing is added to global site-packages.
-
Install and enable it:
/plugin marketplace add mapped/claude-plugins /plugin install mapped-graphql@mapped -
Provide your credential for the executor (the schema loader and validator need none). Requests send
Authorization: token ${MAPPED_PAT}, so export your PAT before launching Claude Code:export MAPPED_PAT=<your-mapped-pat>
See mapped-graphql/README.md for the full tool
reference, flags, and examples.