MCP & agent install
Login-first install for the Claude Code plugin, Cursor, Codex, Pi/Hermes, skills.sh, local MCP, and CI.
OriginAI offers two ways to connect an agent: a Claude Code plugin (a local MCP bridge plus the skill), and CLI skill files for every major coding agent. Local MCP is npx originai mcp (stdio). All of them go through the same access-token API, with the same behavior — reads default to the latest release, and writes are guarded after your first publish.
Read this first: the auth model
| Who | How they authenticate |
|---|---|
| Humans (default) | npx originai login → ~/.origin/settings.json |
| The Claude Code plugin | Local stdio MCP via npx originai mcp (reads your login store) |
| Skill / CLI agents (Codex, Pi, Hermes, OpenCode, skills.sh) | The same login; agents call npx originai … |
| CI / headless | ORIGIN_TOKEN=oat_… (from Settings → Access tokens) |
Don't treat "create an access token and export ORIGIN_TOKEN" as the default onboarding path — that's for CI and advanced setups. Create tokens only when you need them (see Access tokens), and never commit an oat_ value.
The available tools
| Tool | Purpose |
|---|---|
whoami | The token owner and project count. |
list_projects | Your projects and their latest release hash. |
create_project | A new empty project (plan limits apply). |
list_documents | The file tree (default: the latest release). |
get_document | One file, with its content. |
get_diff | A unified diff between release hashes, optionally with full bodies. |
grep_documents / find_documents | Search content or file names. |
write_document / delete_document / delete_documents | Workspace writes; after a release these create or extend a Change Request (suggested: true + proposal_id). There is no create_change_request tool. Pass proposal_id / new_proposal to continue or open a CR. Optional require_suggest refuses direct writes with 409. |
list_proposals / get_proposal / get_proposal_diff / describe_proposal / submit_proposal / commit_proposal | Change-request loop. list_proposals includes decided_items[] with dismiss_reason and behind_latest when the CR is older than the latest release. describe_proposal records purpose + design rationale. Use get_proposal_diff when implementing a bound change request. |
comment_proposal / list_proposal_comments / list_proposal_reviews | Discuss a change request; read Ready / Not ready (agents never conclude). |
sync_origin_json | Compute the .origin.json pointer to write after implementing a published release. Write origin_json into the file — the tool does not touch the filesystem. |
validate | Validate RPML (by source and/or file_id). |
search_shots / get_shot / list_shot_facets | Layout-shot standards (IA + optional RPML). Call before generating a new screen. |
Create a Change Request
Kernel names stay *_proposal. After a release:
list_proposalswithstatus: "all".validate, thenwrite_document(first staged write creates the CR).describe_proposal— Issue (title,note) + Decisions/Changelog (rationale).submit_proposal. Never apply, dismiss, or record Ready / Not ready.
Prefer get_proposal_diff when implementing a change request, get_diff when implementing a published release. After implementing a published release, call sync_origin_json and write origin_json into .origin.json, or run npx originai sync. sync / sync_origin_json clears .origin.json proposal_id only after a new release hash exists.
Install by agent
Claude Code — the plugin (recommended)
npx originai login/plugin marketplace add 21stware/originai-context
/plugin install origin-spec@origin-claude-marketplaceFor development inside the monorepo:
claude --plugin-dir /path/to/origin/packages/claude-pluginThen link and verify:
npx originai link --project <project-id>
npx originai doctorThe plugin's .mcp.json runs a local MCP server:
{
"mcpServers": {
"origin": {
"command": "npx",
"args": ["-y", "originai", "mcp"]
}
}
}There's no day-to-day export ORIGIN_TOKEN needed for Claude Code.
Cursor
npx originai login
npx originai link --project <project-id> --cursor --skill
npx originai mcp config --cursorPaste the printed JSON into Cursor's MCP settings — the stdio bridge uses your login.
OpenAI Codex
npx originai login
npx originai link --project <project-id> --codex --skillCodex agents use the CLI via AGENTS.md and the skill. MCP is optional if your Codex host supports it.
Pi / Hermes / OpenCode (Agent Skills)
npx originai login
npx originai link --project <project-id> --skillThis writes .agents/skills/origin-product-spec-management/. Tools default to the CLI, with MCP optional.
skills.sh / Agent Skills / well-known
From GitHub (works with npx skills add):
npx skills add 21stware/originai-context
# the skill path in the repo is: skills/origin-product-spec-management/From the site's well-known endpoint:
- https://getoriginai.com/.well-known/agent-skills/index.json
npx skills add https://getoriginai.com
After installing the skill, agents still need to:
npx originai loginnpx originai link --project <id>in the product repo.
The skill documents the MCP-first, CLI-fallback approach, and it embeds no tokens.
Claude Code — CLAUDE.md only (no plugin)
npx originai login
npx originai link --project <project-id> --claude-code --skill
# optional: npx originai mcp config --claudeAll instruction files at once
npx originai login
npx originai link --project <project-id> --allCI
export ORIGIN_TOKEN=oat_…
npx originai get-diff
npx originai syncHandy CLI helpers
npx originai login
npx originai doctor # login + link + skill files + API
npx originai mcp # stdio MCP server (the plugin default)
npx originai mcp config --cursor
npx originai install-help # the full matrixCLI vs MCP at a glance
| OriginAI CLI | Local originai mcp | |
|---|---|---|
| Best for | Codex / Pi / Hermes / CI | The Claude Code plugin, Cursor stdio |
| Auth | login or ORIGIN_TOKEN | Same as the CLI (login) |
| Sync pointer | sync updates release_hash | sync_origin_json or CLI sync |
| Skill / methodology | link --skill | The plugin bundles the skill |
For maintainers (monorepo)
bun run --cwd packages/skills sync-assets
bun run claude-plugin:sync
bun run --cwd packages/claude-marketplace syncThe snippets' source of truth is packages/skills/src/install-snippets.ts, and the frontend tabs come from frontend/src/lib/agent-install.ts.