Overview
Thread exposes its service-desk actions over the Model Context Protocol, so any MCP-capable client — Claude Desktop, ChatGPT, Claude Code, Cursor, partner agents, your own app — can drive Thread workflows the same way Super Magic does in-product: search tickets, look up clients and devices, and (with the right permissions) take real actions.https://api.getthread.com/mcp/thread is a supported alias for the same server — use it if a client’s connector directory already has a “thread” entry, or to keep the name unambiguous when you connect multiple MCP servers.“Create a ticket for Acme Corp: user can’t print, high priority.”
“Show my open tickets for Globex.”
“Add a note to ticket 12345 and log 30 minutes.”
“Look up the contact Jane Doe and her recent tickets.”
“Search our knowledge base for the VPN setup article.”The assistant acts as you: it can only see and do what you can in Thread, in your workspace.
Before you start
- A Thread account with login access.
- MCP enabled for your workspace. The tell: in Thread’s Inbox, open Settings → Connectors → Thread MCP access: if the connector URL isn’t shown, ask your admin or Thread account team.
Get your connector URL
In Thread’s Inbox: Settings → Connectors → Thread MCP access → copy the URL under “Add this URL as a custom connector”:Connect your client
- Claude Desktop
- ChatGPT
- Claude Code (CLI)
- Other clients (Cursor, …)
Add a custom connector
Paste the URL
Sign in with Thread
Finish
Microsoft Copilot: two different products, one supported
Microsoft ships two Copilot products that both let you connect an MCP server, and they look similar enough to mix up. Only one of them works with Thread MCP today.Connect Copilot Studio to Thread MCP
Copilot Studio is Microsoft’s low-code agent builder. Add Thread MCP as a tool on the agent that should use it:Open the agent's Tools tab
Add a new MCP tool
Fill in the server details
- Server name:
Thread. Copilot Studio turns this into a Power Platform custom connector, so the name has to be unused in the environment. Keep it to plain words: no periods, and no version numbers likeThread 2.0. - Server description: a short line the orchestrator uses to decide when to call Thread, for example: Thread service-desk actions: search and update tickets, look up clients and contacts, log time.
- Server URL:
https://api.getthread.com/mcp - Transport: Streamable HTTP (Copilot Studio’s default)
Set Authentication to OAuth 2.0, Dynamic (with discovery)
Create the connection and sign in with Thread
Add the tools you want to expose
”Can’t create MCP server. Try again.”
This error fires before Copilot Studio ever contacts Thread. It means Copilot Studio could not create the Power Platform custom connector it builds behind the scenes, so nothing on Thread’s side will fix it. Work through these in order:Delete the orphaned connector from your last attempt
Simplify the server name
Thread. A name carrying a period or a version suffix becomes a connector logical name and is a needless risk.Check your environment permissions
Move off the default environment
Click outside the URL field, then Create again
- Authorization URL:
https://api.getthread.com/oauth/authorize - Token URL template:
https://api.getthread.com/oauth/token
- Connect your agent to an existing MCP server, the onboarding wizard end to end, including supported transports and Configure OAuth 2.0 authentication.
- Add MCP tools and resources to your agent, for picking which Thread tools the agent may call.
- Adding MCP servers as a tool fails, Microsoft’s Q&A thread on orphaned custom connectors.
- Configure a data policy, if your environment blocks custom connectors.
Microsoft 365 Copilot federated connectors (not yet)
Microsoft 365 Copilot custom federated connectors is a different product — it makes an external data source searchable inside Microsoft 365 Copilot. Its setup dialog for an MCP endpoint asks for:- A Reference ID: an id from a Microsoft-side OAuth or SSO registration in the Teams Developer Portal.
- An OAuth Client ID and Client Secret: credentials the MCP server issues to the connector.
Automation keys: connect without a browser (beta)
- Any member can mint a key bound to themselves.
- Workspace admins can mint a key for any active member in the workspace.
- Team admins can mint a key for members on their own teams, but not for workspace admins.
POST to /api/v1/mcp/tokens on Thread’s API, authenticated as the issuing member:
name, a label so you can tell keys apart later (required).expires_at— when the key stops working. Optional for a key bound to yourself, required when minting for another member, and never more than one year out.member_id, the member the key acts as. Omit it to bind the key to yourself. Sending it without admin rights returns403.
mcp_) exactly once. Store it in your secret manager — Thread keeps only a hash and cannot show it again.
Use the key as a bearer token wherever your MCP client accepts auth headers:
DELETE /api/v1/mcp/tokens/{id} — connections using it stop working immediately. List keys beyond your own with GET /api/v1/mcp/tokens?scope=company: workspace admins see every key in the workspace, and team admins see keys for members on their teams, plus their own. Revoking follows the same scope; a key outside it returns a not-found error.
Permissions: every connection sees a different tool list
The server registers tools per connection, applying exactly the permissions that member has in Super Magic:Not every Super Magic tool is exposed over MCP
Thread MCP exposes a curated subset of Super Magic’s tools. Every tool on the MCP server is a Super Magic tool with the same name and the same gating, but the reverse doesn’t hold. Some Super Magic tools never appear over MCP, no matter how the workspace is configured:- Liongard: Super Magic-only, in both forms (the workspace integration and the per-member connector). Connecting Liongard and turning on its Super Magic toggle adds Liongard tools in Inbox chat, but an MCP client will never list them.
- Per-member connector tools (Linear, Notion, Zapier) — these register inside Super Magic only.
tools/list and work with what’s there. A read-only member’s connection registers only read tools; an admin on a fully-integrated workspace can see 50+. The connection only ever touches your workspace’s data.
Typical workflows
Discover ids, then write. Ticket writes take internal ids — resolve them first:search_clients→client_company_idlist_boards,list_ticket_statuses,list_ticket_priorities→ board/status/priority idscreate_ticket/update_ticket/add_ticket_note/log_time_entrywith those ids
search_tickets accepts a PSA ticket number or internal id and returns internal_ticket_id — pass that to write tools.
Classify tickets (ConnectWise and HaloPSA): on ConnectWise workspaces, list_board_classifications returns the Type → Subtype → Item tree for a ticket’s board; pass the resolved ids to set_ticket_classification. Passing only item_id sets all three levels without disturbing the existing Type or Subtype — see the tool reference for the full id cascade. On HaloPSA workspaces the same pair works on Category 1: list_board_classifications returns a flat list of Category 1 values, and set_ticket_classification takes type_id alone (subtype_id and item_id are rejected).
Device workflows (NinjaOne connected): search_ninjaone_devices → get_ninjaone_device / list_ninjaone_alerts → reboot_ninjaone_device etc. To scope by device type (“all Linux servers”, “every Windows workstation”) pass the device_class parameter instead of putting the OS name in query. query only matches hostname and last-logged-in user, so query: "linux" returns whatever happens to have “linux” in its name, not Linux machines.
Admin automation: intent and flow tools let an admin connection inspect and build workspace automations programmatically.
Rate limits
The Thread MCP endpoints (/mcp and /mcp/thread) enforce two layers of throttling. Both apply per minute and use a rolling one-minute window:
HTTP 429 Too Many Requests and a Retry-After header (in seconds). Wait for that duration before retrying — clients should implement exponential backoff on 429s and honor Retry-After.
If you regularly bump into these limits, batch requests where possible, cache lookups like list_boards / list_ticket_statuses / list_ninjaone_organizations locally, and contact your Thread account team about a higher tenant limit.
Security model
- You authorize by signing in: no secrets to paste, store, or rotate for the one-click path.
- Least privilege by construction: a connection can never do more than its member can in the product. To restrict an external agent, restrict the member.
- Disconnect = revoke: remove the connector in your AI client and the connection stops working.
- Audit: every tool call is logged under the member identity behind the connection.