
Developers
The Model Context Protocol (MCP) exposes your ParetoStudio library to any MCP-compatible AI client. Connect once and Codex, Claude Desktop, Cursor, Claude Code, and others can read, search, create, and manage items in your library from natural language. Skill installation is client-aware: Codex uses .agents/skills/, while Claude uses the .claude/ layout.

Prefer a guided setup?
ParetoStudio account
Any plan including Free. Free gets 50 requests/day; Pro unlocks 500/day and unlimited saves.
API key
Generate one in Settings → Developer. Starts with psk_.
Node.js 18+
npx paretostudio-mcp@latest fetches the latest bundle. No global install required. View on npm →
Paste the ParetoStudio MCP block into your client's config, fill in your PARETOSTUDIO_API_KEY, and restart the client. Pick the tab that matches where you work.

Config path: ~/.codex/config.toml
Add this block to your existing config without replacing unrelated settings. Start a new session after saving. Install native project skills with client: "codex".
[mcp_servers.paretostudio]
command = "npx"
args = ["-y", "paretostudio-mcp@latest"]
[mcp_servers.paretostudio.env]
PARETOSTUDIO_API_KEY = "psk_your_key_here"Restart after every config change
After restarting your client, confirm ParetoStudio is wired up. Each tab below shows the success signal for one client.
Start a new Codex session in your project and ask “list my ParetoStudio prompts”. A library response, including an empty library, confirms the server is connected.
Then install a skill with client: "codex". It should appear at .agents/skills/<name>/SKILL.md.
First command
Twenty-one tools across read, install, write, and delete. Ask your AI client in natural language — it picks the right tool automatically.
list_prompts | List all prompts (personal ∪ team). Each row carries a [personal] or [team: org-id] scope marker. | |
get_prompt | Fetch a prompt and optionally resolve its {{variable_name}} placeholders with the variables argument. | |
search_prompts | Search prompts by title, description, or content. | |
list_agents | List all agents (personal ∪ team). Each row carries a [personal] or [team: org-id] scope marker. | |
get_agent | Fetch an agent configuration; pass variables to resolve Smart Variables for this use. | |
search_agents | Search agents by name or description. | |
list_skills | List all skills (personal ∪ team). Each row carries a [personal] or [team: org-id] scope marker. | |
get_skill | Fetch a skill configuration; pass variables to resolve Smart Variables for this use. | |
search_skills | Search skills by name or description. |
Read tools surface personal and team content together
[personal] or [team: org-id]. Solo users see only personal rows — zero behavioral difference.install_agent | Install under .claude/agents/. Parametrized agents require complete variable values before any file is written. | |
install_skill | Install SKILL.md for Claude or Codex. Parametrized skills require complete variable values. | |
install_bundle | Install an agent and multiple skills in one operation — full workspace ready. |
create_prompt | Create a new prompt in your library. | |
update_prompt | Update an existing prompt and regenerate its formatted output. | |
create_agent | Create a new agent in your library. | |
update_agent | Update an existing agent. | |
create_skill | Create a new skill in your library. | |
update_skill | Update an existing skill. |
delete_prompt | Delete a prompt from your library. | |
delete_agent | Delete an agent from your library. | |
delete_skill | Delete a skill from your library. |
MCP works on every plan
Ask your AI client naturally. Here is what a few common requests look like and which tool they resolve to.
Browse
“List all my agents”
list_agents()Find something specific
“Search my prompts for code review”
search_prompts({ query: "code review" })
// → returns matches sorted by relevanceResolve a reusable prompt
“Get my launch brief for founders in a direct tone”
get_prompt({
prompt_id: "pr_01H...",
variables: { audience: "founders", tone: "direct" }
})Install to a project
“Install my Backend Engineer agent into this project”
install_agent({
agent_id: "ag_01H...",
target_path: ".",
variables: { stack: "TypeScript" }
})Bundle agent + skills
“Install my QA agent with the testing and bug-report skills”
install_bundle({
agent_id: "ag_01H...",
skill_ids: ["sk_...", "sk_..."],
path: "./"
})Create from your IDE (Pro)
“Save this system prompt as a new agent called API Reviewer”
create_agent({
name: "API Reviewer",
system_prompt: "..."
})Requests are capped per plan and reset every 24 hours. Hit the cap and the API returns 429 with a Retry-After header.
| Plan | Daily requests | Tool access |
|---|---|---|
| Free | 50 | Read + Install + Write (capped at 2/2) |
| ProRecommended | 500 | All 21 tools (read, install, write, delete) |
npx not found, hangs, or fails to fetch
npx paretostudio-mcp@latest — that requires Node.js 18+ and a reachable npm registry.node --version — upgrade if below 18.npm config get registry — should print https://registry.npmjs.org/. On a corporate proxy, point it at your mirror or set HTTPS_PROXY.Server loads but 0 tools appear
psk_ prefix or a stray space when you pasted — re-paste the full key into env.PARETOSTUDIO_API_KEY and restart.PARETOSTUDIO_API_KEY not set
env block of your MCP config, not in args. After saving the config, fully quit and reopen the client — most MCP clients do not hot-reload configuration.Tools not appearing
Cmd+Shift+P → Reload Window). In Claude Code, re-open the session.API key not found or revoked
psk_ prefix, and paste it back into your MCP config.Rate limit exceeded (429)
Retry-After header with the seconds until reset. Upgrade your plan for a higher cap.Permission denied (403) on create / update / delete
list_prompts only shows personal items — team items missing
/accept/[token] and then retry. See the Team guide for the full invite flow.API Keys