Connect Onplana to Claude, Gemini, ChatGPT, and Cursor
Plan projects and track work from your AI assistant.
Onplana ships a public MCP server at https://mcp.onplana.com/mcp. 346 curated tools, hybrid BM25 + vector search across your org’s indexed content, OAuth 2.1 or PAT auth, plan-gated access, audited end to end.
Built on the open MCP standard from Anthropic. Works with Claude Desktop, Gemini CLI, Gemini Code Assist, ChatGPT, ChatGPT Codex CLI, Cursor, GitHub Copilot, and any other MCP client that speaks Streamable HTTP.
Install in Gemini CLI (one command):
export ONPLANA_PAT=pat_...
gemini extensions install https://github.com/Onplana/onplana-mcp-serverAlso works with Gemini Code Assist (VS Code + JetBrains). For other clients, see setup instructions below.
See three agents run a project together
One brief in, a launched website out. ChatGPT, Claude, and Onplana's own AI each pick up their tasks and execute through one shared plan, while you stay in control at the final approval.
In ChatGPT’s Plugins and Claude’s Directory
Search onplana under Plugins in ChatGPT or in the Directory in Claude, add it, and sign in once. No custom-connector URL to paste, no developer-mode toggle.
What MCP is
The Model Context Protocol (MCP) is an open standard, published by Anthropic in late 2024, for connecting LLMs to external tools and data sources. Instead of building one bespoke integration per client, an application exposes an MCP server once and any MCP-aware client (Claude Desktop, Cursor, ChatGPT custom connectors, in-house agents using the MCP SDK) can call it. A client lists the available tools via tools/list, then calls them via tools/call; the protocol handles argument validation, error responses, and result rendering.
For project management software the practical effect is that you can ask an agent “create a project plan for the Q3 launch,” and the agent runs the work directly inside Onplana, creating the project, adding the right tasks, assigning owners, scheduling milestones, instead of recommending a tool and asking you to do it yourself.
What Onplana exposes
Twenty-one of the most-used tools are highlighted below in three groups, a representative slice of the 346 in the full catalog. Clients see the complete list via tools/list; tools the caller can’t access (because of plan tier or role permission) are filtered out before the LLM sees them, so an agent never blindly calls a gated tool.
Read results are clickable: every project, task, sprint, milestone, and issue an agent reads back, and every source it cites from search_org_knowledge, carries a canonical Onplana link that opens the exact record in the app, so you can jump straight from your agent’s answer to the item it is talking about.
Read & search
list_projectsFilter by status, assignee, label.
get_projectFull detail incl. tasks, milestones, recent activity.
list_tasksBy project, assignee, status.
get_taskIncluding dependencies and subtasks.
list_org_membersFor assignee resolution by name or email.
list_risksSurfaced from automated risk detection.
find_similar_projectsVector-similarity search across project descriptions.
summarize_projectAI-written status summary on demand.
search_org_knowledgeHybrid (vector + BM25) search across projects, tasks, risks, goals, comments, and pages. The differentiator.
Project & task mutations
create_projectPlan-gated; respects org.project.create permission.
update_projectStatus, dates, name; owner check enforced.
create_taskRequired: project, title. Optional: assignee email, due date, priority.
update_taskBulk-safe via idempotency key.
assign_taskConvenience wrapper for reassigning by email.
move_task_to_sprintMoves a task into a sprint, or back to the backlog.
add_project_memberAdds at the requested project role.
create_milestoneRenders as a diamond on the Gantt.
create_commentOn a task or project.
Bulk + agentic
bulk_update_tasksUpdate many tasks in one transaction.
create_sprint_with_tasksCreate a sprint and seed it with selected tasks.
analyze_project_risksRuns AI risk detection on a project and merges the findings into its risk register (the Professional plan and up).
The full 346 tool catalog reaches well beyond the three groups above, governance, change control, timesheets, documents, pages, portfolios, and more. A connected agent can run four deletes, a task, a project, a workspace table or a document, and each goes to the recycle bin, where it can be restored. They are on until an org admin turns any of them off; every other delete is kept away from agents.
How to connect
One-click flow from the in-app integrations page mints the token and gives you a copy-paste-ready config snippet for your client. For reference, the wire-level setup is below. Prefer a guided walkthrough? Read the step-by-step setup guide for connecting Claude or Cursor in the docs.
1. Mint a connection token
In Onplana go to /integrations → AI Agents, pick the provider tile, click Generate connection. You'll see the token once, save it; Onplana stores only a bcrypt hash. To revoke, return to the same panel or to Settings → Developer.
2a. Claude Desktop
Open Settings → Developer → Edit Config. Add an entry undermcpServers:
{
"mcpServers": {
"onplana": {
"url": "https://api.onplana.com/api/mcp/v1",
"headers": {
"Authorization": "Bearer pat_paste-your-token-here"
}
}
}
}Restart Claude Desktop. Ask Claude “list my Onplana projects” to verify.
2b. Cursor
Add to ~/.cursor/mcp.json with the same JSON shape as Claude Desktop. Cursor picks up changes on its next launch; no restart of the editor required.
2c. Claude Code CLI
One-liner. Claude Code triggers OAuth on first tool call, no PAT paste needed:
claude mcp add onplana --transport http https://mcp.onplana.com/mcp
Verify with claude mcp list. The OAuth flow opens a browser tab on first use; sign in to Onplana, approve the consent screen, done. To paste a PAT instead of OAuth, add --header "Authorization: Bearer pat_…".
2d. Other MCP clients (and a smoke test)
Any MCP-Streamable-HTTP client works. Wire-level smoke test from a terminal:
curl -X POST https://api.onplana.com/api/mcp/v1 \
-H "Authorization: Bearer pat_paste-your-token-here" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'You should see the JSON-RPC envelope wrapping the full tool list. The MCP official Inspector is convenient for debugging tool descriptors and result shapes during development.
2e. Gemini Enterprise (early access)
A Gemini Enterprise admin adds Onplana in Google Cloud as a custom MCP server (Streamable HTTP, https://mcp.onplana.com/mcp). Google’s form asks for an OAuth client ID and secret, which Onplana issues to your organization on request; it is not self-serve yet, and it is not a Google marketplace listing. Setup guide and the 20 actions to switch on first.
Using Gemini CLI or Gemini Code Assist instead? That one is self-serve: connect Gemini CLI in a few minutes.
3. Optional: react in seconds, not on the next poll
A connected agent picks up your comments on its own schedule. Run the relay next to it and Onplana wakes it the moment someone comments on its work, mentions it, or asks it to run a task. It dials out, so a laptop behind a home router works with no public URL, no port forwarding, and no inbound firewall rule.
ONPLANA_PAT=pat_… npx @onplana/agent-relay --provider claude-code
Optional in the real sense: skip it and your agent still sees everything, just on its next sync. Swap --provider codex for Codex, or drop the flag for newline-delimited JSON you can pipe into any runner. Relay setup and use cases.
Try it without an account
Onplana also runs a public, read-only MCP server for the documentation itself. Add it in one line, no token needed, and let your agent answer "how do I do X in Onplana" from the same content humans read.
claude mcp add onplana-docs https://mcp.onplana.com/docs
Exposes two tools: search_docs and read_docs_page. Read-only, rate limited per IP, serves no organization data. To act inside an Onplana organization (create tasks, run workflows), use the authenticated server above.
Security model
Four overlapping layers. Each is the existing Onplana primitive applied to the MCP surface, no MCP-specific shortcuts or carve- outs. If a layer fails for in-app chat, it fails identically for MCP; if it works for in-app chat, it works for MCP too.
Personal access token
Auth is a Bearer PAT scoped to the new MCP_AGENT scope only. Tokens are bcrypt-hashed server-side, shown once on creation, revocable from /integrations or Settings → Developer.
Plan + role gates
Every tool call runs through Onplana's existing dispatcher. An agent is served only the tools your plan and role allow, the rest are hidden from tools/list. Every call runs as you, is checked against your own permissions, and lands in the audit trail, so an agent can never reach anything you could not reach yourself.
Audited end to end
Every tool invocation writes an AiOperation row: the tool, its input and output, the person, the agent connection and the outcome. Organization owners and admins on the Enterprise plan and up read them on the Audit Logs page under Agent Activity. Rate-limited to 120 requests a minute from each client address; counts against the org cost cap the same way in-app chat does.
Prompt-injection containment
Free-text fields in tool results that originate from end-user content are wrapped in <onplana_user_content>...</onplana_user_content> tags before reaching the LLM. Closing tags inside user content are escaped so a hostile task title can't break out of the airlock and inject instructions. Each tool description tells the LLM to treat wrapped content as data, never as instructions.
Example prompts
What it looks like in practice. Each row pairs the prompt a user types in their MCP client with the tool sequence Claude (or any other agent) would run server-side.
User: "What's the rationale for the 3-week design phase on the Q3 launch?"
Agent: Claude calls search_org_knowledge with query "rationale 3-week design phase Q3 launch", gets back ranked snippets from task descriptions and pages, summarises the relevant ones in plain language with links back to the source items.
User: "Create a project plan for our Q3 product launch, design, review, and ship phases, due September 30."
Agent: Claude calls create_project with the plan name + dates, then create_task three times for the phases. The project lands live on every plan, Free included.
User: "Find all tasks blocked on the database migration."
Agent: Claude calls search_org_knowledge with scope=tasks, query "blocked database migration", filters the results by status=BLOCKED, returns a summary table with project + assignee + due date.
User: "Have we done a project like this before?"
Agent: Claude calls find_similar_projects with the current project's description, gets back the top 5 vector-similarity matches, and summarises what each prior project did differently.
How this compares
Onplana isn't the only PM tool with an agentic surface. Brief honest comparison so an evaluator knows what they're choosing between.
Notion (MCP)
Notion shipped early MCP support and benefits from a large existing content surface, knowledge bases, docs, databases. Strong if your team uses Notion as primary work surface. Weaker on PM-specific primitives, no critical-path Gantt, no formal governance pipeline, no costed timesheets, no .mpp import. Onplana's surface is narrower (PM, not docs) but deeper inside that domain.
Linear (API + emerging MCP)
Linear has a mature GraphQL API and emerging MCP coverage. Strong for software-team agentic workflows (issues, cycles, projects in the Linear sense). Different audience, software engineering teams, not PMOs. Onplana ships PMO-grade scheduling (Gantt, dependencies, resource leveling) that Linear doesn't target.
Asana / Monday / ClickUp
All have REST APIs, and each now publishes a hosted MCP server of its own: Asana's V2 server, ClickUp's on all plans, and monday.com's Platform MCP, per their developer docs read on 3 November 2026. Common gaps vs Onplana: no formal PMO governance surfaces and no Microsoft Project file import. If your bottleneck is “agent finds the right context fast” rather than “agent fires off CRUD calls,” compare the search surface, not the tool count.
Microsoft Project
Microsoft's consolidated PM line (Planner Premium / Project for the Web) doesn't expose an MCP server today; the Microsoft Graph API surface is generic and coarse-grained. Onplana imports .mpp natively and exposes an MCP server, for PMOs that want agentic workflows on the plans they already have.
Running the agent
Who keeps it alive, and what stops two agents colliding
A tool catalog is half the story. The other half is where the agent runs and what happens when more than one of them points at the same backlog.
Your own machine
Claude Code, Cursor, ChatGPT, Copilot or your own client. Free workspaces get two concurrent agent connections.
The self-hosted relay
A published npm package that wakes a local runner the moment somebody comments or mentions the persona, instead of waiting for the next poll. No public listener needed.
Hosted by Onplana
We hold the connection and dispatch, with execution delegated to Claude's managed agent sandbox against a credential you supply and can revoke.
Exclusive leases, held by the run
One call both picks the next available task and claims it, because listing and then claiming leaves a gap two agents can both land in. The lease belongs to the run rather than the user, which matters more than it sounds: two Claude Code sessions in one workspace authenticate as the same agent persona, so a user-keyed lock would let one session release the other's work. Leases expire on their own, so a crashed agent frees its task instead of wedging it.
FAQ
What is the Onplana MCP server?
A public Model Context Protocol server at api.onplana.com/api/mcp/v1. It exposes 346 curated tools, list, get, create, update, search across projects, tasks, sprints, milestones, comments, risks, goals, and pages, to MCP-aware agentic clients like Claude Desktop, Cursor, and ChatGPT custom connectors. Authentication is a Bearer personal access token with the MCP_AGENT scope.
How is Onplana's MCP server different from other PM-tool MCPs?
Most PM-tool MCPs ship list_* tools only and force the LLM to brute-scan large result sets. Onplana ships a dedicated search_org_knowledge tool that performs a hybrid (vector + BM25) search across the org's indexed content, projects, tasks, risks, goals, comments, and pages. An agent can answer "what was the rationale for X?" semantically rather than scanning. Onplana also bridges every MCP session to a persistent AiConversation row so the model has memory continuity across reconnects.
Which clients can connect?
Any client supporting the MCP Streamable HTTP transport. Tested with Claude Desktop (Custom Connector configured under Settings → Developer → Edit Config), Cursor (~/.cursor/mcp.json), and the official MCP Inspector for debugging. ChatGPT and Claude both list Onplana in their connector directories, so you can add it from inside either in a few clicks, with no custom-connector URL to paste. In-house agents using the MCP TypeScript or Python SDKs work identically.
How does authentication work?
The MCP server accepts Bearer personal access tokens with the MCP_AGENT scope. Mint one from /integrations → AI Agents (one click; copy-paste-ready config snippet returned) or from Settings → Developer. Tokens are bcrypt-hashed server-side, shown once, and revocable. The token carries the org context so no separate org header is needed in MCP requests.
How are costs and abuse controlled?
Three independent layers. A rate limit (120 requests a minute from each client address) prevents a runaway agent loop from saturating the API. The dispatcher's per-month caps on some tools prevent one tool from being hammered (on Free only; none from Professional up). The org-level dollar cost cap (configurable in Settings → AI & Usage) gates total monthly spend; over-cap requests return 402 the same way in-app chat does. A WARN mode emails admins at 80%, 100%, and 103% of the cap.
AI agent action limits →What plans support MCP?
All plans, including Free. Read tools (list, get, search) work on every plan with no per-month limit. Mutating tools also work on every plan and apply changes directly; on Free some write actions carry a monthly cap (none from Professional up), and a model can always ask for a preview first via a tool's dryRun option. Plan-gated tools like analyze_project_risks (AI risk detection, the Professional plan and up) are hidden from tools/list responses for plans that lack the feature, so the LLM never sees them and doesn't blindly call gated tools.
How is prompt injection mitigated?
Free-text fields in tool results that come from user-generated content (task titles, descriptions, comments, page content) are wrapped in <onplana_user_content>...</onplana_user_content> tags before reaching the LLM. Closing tags inside that content are escaped (case-insensitively) so a hostile task title can't break out and inject instructions. Every tool description tells the LLM explicitly to treat wrapped content as data, never as instructions to follow. This pattern follows Anthropic's published prompt-injection-defence guidance.
Where can I see what AI agents did in my org?
The Audit Logs page, under Agent Activity, for organization owners and admins on the Enterprise plan and up. Every MCP-driven tool call writes an AiOperation row with the tool, its input and output, the person, the agent connection and the outcome. You can filter by tool name, status (APPLIED, FAILED, GATED, UNAUTHORIZED, CAP_EXCEEDED, UNDONE) and date range, and copy any entry. Audit log rows that an agent's changes write record that they came over MCP, so they line up with non-AI activity.
Is the transport open source?
Yes. The platform-agnostic transport patterns (Streamable HTTP wiring, Bearer auth, prompt-injection containment with tag wrapping + closing-tag escape, pluggable dispatcher interface) are published as MIT-licensed npm packages at github.com/Onplana/onplana-mcp-server. Two packages: onplana-mcp-server (server template, drop into your own Express app) and onplana-mcp-client (typed SDK for calling the public Onplana endpoint from in-house agents). The dispatcher implementation and tool catalog stay in the closed Onplana monorepo because they encode platform business logic, the open-source repo gives you the security primitives without prescribing a tool registry.
Ready to connect?
Free plan; no credit card. Connect Claude Desktop or Cursor in under two minutes from /integrations → AI Agents. Connection tokens are scoped, revocable, and audited end to end.
Connected already? Give your agent a skill to plan and run your projects