OneDesk MCP server
79 operations0 webhooks
Help desk and project management in one platform, with a public API over tickets, tasks, projects, timesheets, invoices, quotes and customer conversations.
Try OneDesk with your agent
Connect OneDesk, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in OneDesk on my account, then run one read-only example and show me the result.
OneDesk tools and triggers
Tools are what your agent can do in OneDesk through Corsair's MCP server. Triggers are the OneDesk events a routine can start from.
Attachments
- Attach To ItemWrite
Upload a file and attach it to a work item
attachments.attachToItem
- Attach To OrganizationWrite
Upload a file and attach it to a customer organization
attachments.attachToOrganization
- Attach To PortfolioWrite
Upload a file and attach it to a portfolio
attachments.attachToPortfolio
- Attach To ProjectWrite
Upload a file and attach it to a project
attachments.attachToProject
- FilterRead-only
List attachment external ids by filter
attachments.filter
- Filter DetailsRead-only
List attachments with their names
attachments.filterDetails
- GetRead-only
Read one attachment record by external id
attachments.get
- UploadWrite
Upload a file to the account and get its external id for attaching later
attachments.upload
Timers
- CancelDestructive
Cancel a work timer, discarding the work recorded in that run
timers.cancel
- FilterRead-only
List timer external ids by filter
timers.filter
- Filter DetailsRead-only
List timers with their status and accumulated work
timers.filterDetails
- GetRead-only
Read one timer by external id
timers.get
- PauseWrite
Pause a running work timer
timers.pause
- ResumeWrite
Resume a paused work timer
timers.resume
- StartWrite
Start a work timer on a work item
timers.start
Conversations
- CreateWrite
Open a conversation on a work item or project, optionally with its first messages
conversations.create
- FilterRead-only
List conversation external ids by filter
conversations.filter
- Filter DetailsRead-only
List conversations with their open and lock state
conversations.filterDetails
- GetRead-only
Read one conversation by external id
conversations.get
- UpdateWrite
Close, reopen or lock a conversation
conversations.update
Customers
- CreateWrite
Create a customer, optionally inside a customer organization
customers.create
- FilterRead-only
List customer external ids by filter
customers.filter
- Filter DetailsRead-only
List customers with their contact details and organization
customers.filterDetails
- GetRead-only
Read one customer by external id or numeric id
customers.get
- UpdateWrite
Change a customer, including deactivating them so they can no longer sign in
customers.update
Items
- CreateWrite
Create a work item such as a ticket or task, optionally with requesters, followers, a project and custom fields
items.create
- FilterRead-only
List work item external ids by type and filter, with paging and a total count
items.filter
- Filter DetailsRead-only
List work items with their details by type and filter, including assignees and lifecycle status
items.filterDetails
- GetRead-only
Read one work item by external id or numeric id
items.get
- UpdateWrite
Change a work item: name, status, assignment, priority, dates, links and custom fields
items.update
Messages
- CreateWrite
Post a message into a conversation
messages.create
- FilterRead-only
List conversation message external ids by filter
messages.filter
- Filter DetailsRead-only
List conversation messages with their content and author
messages.filterDetails
- GetRead-only
Read one conversation message by external id
messages.get
- UpdateWrite
Change a message body or its attachments
messages.update
Organization
- Container TypesRead-only
List the organization container type names
organization.containerTypes
- Item TypesRead-only
List the organization work item type names that create and filter calls require
organization.itemTypes
- Lifecycle StatusRead-only
List the lifecycle status names an item or project can be moved to
organization.lifecycleStatus
- ProfileRead-only
Read the organization profile and its policy settings
organization.profile
- User TypesRead-only
List the organization user type names that user create calls accept
organization.userTypes
Organizations
- CreateWrite
Create a customer organization
organizations.create
- FilterRead-only
List customer organization external ids by filter
organizations.filter
- Filter DetailsRead-only
List customer organizations with their domains and customers
organizations.filterDetails
- GetRead-only
Read one customer organization by external id
organizations.get
- UpdateWrite
Change a customer organization, its domains or its customers
organizations.update
Portfolios
- CreateWrite
Create a portfolio, optionally nested under others
portfolios.create
- FilterRead-only
List portfolio external ids by filter
portfolios.filter
- Filter DetailsRead-only
List portfolios with their details
portfolios.filterDetails
- GetRead-only
Read one portfolio by external id
portfolios.get
- UpdateWrite
Change a portfolio name, parents or attachments
portfolios.update
Projects
- CreateWrite
Create a project, optionally under portfolios
projects.create
- FilterRead-only
List project external ids by filter
projects.filter
- Filter DetailsRead-only
List projects with their lifecycle status and invoice type
projects.filterDetails
- GetRead-only
Read one project by external id or numeric id
projects.get
- UpdateWrite
Change a project: name, lifecycle status, portfolios and custom fields
projects.update
Teams
- CreateWrite
Create a team with an initial set of members
teams.create
- FilterRead-only
List team external ids by filter
teams.filter
- Filter DetailsRead-only
List teams with their members
teams.filterDetails
- GetRead-only
Read one team by external id
teams.get
- UpdateWrite
Rename a team or change its members
teams.update
Timesheets
- CreateWrite
Book work against a work item for a user
timesheets.create
- FilterRead-only
List timesheet external ids by filter
timesheets.filter
- Filter DetailsRead-only
List timesheets with their hours, dates and approval status
timesheets.filterDetails
- GetRead-only
Read one timesheet by external id or numeric id
timesheets.get
- UpdateWrite
Change a timesheet, including approving or declining it and marking it billable
timesheets.update
Users
- CreateWrite
Create a user, which sends them an invitation to the account
users.create
- FilterRead-only
List user external ids by filter
users.filter
- Filter DetailsRead-only
List users with their profile, address and teams
users.filterDetails
- GetRead-only
Read one user by external id or numeric id
users.get
- UpdateWrite
Change a user profile, teams or custom fields
users.update
Invoices
- FilterRead-only
List invoice external ids by filter
invoices.filter
- Filter DetailsRead-only
List invoices with their status and totals
invoices.filterDetails
- GetRead-only
Read one invoice by external id or numeric id
invoices.get
- UpdateDestructive
Change an invoice: its status, due date and line items. Setting the status to 'void' cannot be undone
invoices.update
Quotes
- FilterRead-only
List quote external ids by filter
quotes.filter
- Filter DetailsRead-only
List quotes with their status and totals
quotes.filterDetails
- GetRead-only
Read one quote by external id or numeric id
quotes.get
- UpdateWrite
Change a quote: its status, expiration date and line items
quotes.update
Activities
- Filter DetailsRead-only
List activity log entries by filter
activities.filterDetails
Connect OneDesk to Claude, ChatGPT or Cursor
- 1
Connect OneDesk in Corsair
Add your OneDesk API key once in Corsair. Corsair stores the credential encrypted and makes the OneDesk API calls for your agent, so it never goes into a prompt or a config file. Connect OneDesk
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs OneDesk. On a ChatGPT personal plan, connect OneDesk here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, OneDesk's read and write operations run right away and its 2 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/onedesk, add the OneDesk plugin, and connect with an API key. Then call methods like corsair.onedesk.api.activities.filterDetails() from your app. Corsair keeps each tenant isolated.
Yes. OneDesk requires an API key from your OneDesk account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit OneDesk, GitHub, Notion, Stripe, and the rest. Trigger OneDesk from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for help desk and project management in one platform, with a public API over tickets, tasks, projects, timesheets, invoices, quotes and customer conversations. Common builds include sync jobs, admin tooling, and agents that call OneDesk APIs from your backend.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per OneDesk API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/onedesk in the open repo. When OneDesk ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your OneDesk data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store OneDesk data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put OneDesk on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 2 destructive OneDesk operations. You can change a link's mode at hub.corsair.dev/me.