How to connect Plain with ChatGPT

Connect ChatGPT to Plain MCP. Summarize unresolved plain support threads, find customers with overdue support replies, and more using natural language, with authentication handled for you.

Plain MCP logoPlain MCP
Dcr Oauth

Plain MCP is Plain's hosted support platform for threads, customers, tenants, and help-center content. It gives teams a secure, centralized way to manage customer support operations.

80 Tools

How to connect Plain MCP with ChatGPT

ChatGPT can take action across your apps and files, stay with a project for hours, and turn a goal into finished materials like sheets, slides, and docs, not just answers.

In this guide, I will explain the easiest and most secure way to connect your Plain account to ChatGPT via Composio Connect, so it can read support threads, manage customers, update broadcasts, search help content, and review Sidekick sessions through natural language commands without ever putting your account credentials at risk.

Also integrate Plain MCP with

Why use Composio over default connectors?

  • Apps with read and write access. Default connectors mostly can read your data. Composio's Plain integration lets ChatGPT take actions like creating drafts, sending updates, labeling records, and more.
  • 1,500+ SaaS toolkits out of the box. Composio gives you instant access to a vast catalog of pre-built connectors, from Gmail and Slack to Notion, Linear, and Salesforce.
  • One MCP server for every app. Connect any of your applications on demand through a single endpoint, rather than juggling a separate server for each app.
  • Smart, context-aware tool loading. Unlike traditional MCP servers that dump every available tool into the LLM context window, Composio searches for and loads only the tools relevant to the task at hand.
  • Cross-app automation. Chain actions across multiple apps in a single run - fetch a thread, summarize it in Notion, and post highlights to Slack without leaving the conversation.

Prerequisites

Note: Composio connects through OAuth. You will be asked to sign in and approve specific permissions. Review the permission screen carefully if you are using a work account.

Step-by-step: Connect Plain to ChatGPT

1. Install the Composio plugin

Click the button. ChatGPT opens the Composio plugin page. Click Install plugin.

Install in ChatGPT

Composio plugin page in ChatGPT with the Install plugin button

You can also find it inside ChatGPT: go to Settings, open Plugins, search the marketplace for Composio, and click Install plugin.

2. Authenticate

After you install, ChatGPT asks you to authenticate with Composio. Log in and click Allow access to authorize ChatGPT to use your Composio account.

Composio login and Allow access screen for ChatGPT

3. Start using Composio

That is it. Composio tools are now available in ChatGPT. Type @Composio followed by your request, for example @Composio find unread Plain messages and summarize them, and it will run the actions you authorize. On first use it asks you to authorize Plain.

Option 2: Add Composio as an MCP server

If you cannot use the plugin marketplace, add Composio as a custom MCP server instead.

1. Open the MCP settings

In ChatGPT, go to Settings and open the Plugins section. Inside the Plugins page, click the MCP tab.

ChatGPT settings showing the Plugins page with the MCP tab selected

2. Add the server

Click Add server. In the Name field enter Composio, for Type select Streamable HTTP, and in the URL field paste the Composio MCP server URL:

bash
https://connect.composio.dev/mcp
ChatGPT Add server dialog with the name Composio, type Streamable HTTP, and the Composio MCP URL

Then click Save. The Composio server now appears in your MCP plugins list.

ChatGPT Plugins page showing the Composio MCP server added to the list

3. Authenticate

Click Authenticate on the Composio entry, log in via Composio, and click Allow access. Composio tools are then available in ChatGPT the same way as with the plugin.

What you can do after connecting Plain

  • Summarize unresolved Plain support threads
  • Find customers with overdue support replies
  • Review recent Sidekick sessions and outcomes

Security + privacy notes (important)

  • Use least-privilege access: Only grant permissions you actually need.
  • Review OAuth permissions before approving: Make sure requested scopes match what you expect Composio and ChatGPT to do.
  • Keep write actions human-reviewed: For actions like sending messages, creating labels, or editing drafts, keep manual confirmation enabled.
  • Be careful with sensitive data: Avoid using this setup with highly sensitive information unless allowed by your personal, company, or client policies.
TOOLS

Supported Tools

Every Plain MCP action and event your agent gets out of the box.

Addgeneratedreply

Add an AI-generated reply suggestion to a thread.

Addlabels

Add labels to a thread by label type IDs.

Archivelabeltype

Archive a label type to hide it from the active label list.

Assignthread

Assign a thread to a user or machine user.

Bulkupsertthreadfields

Bulk upsert (create or update) multiple thread field values in a single operation.

Changethreadpriority

Change the priority of a thread.

Createbroadcast

Create a new broadcast: a message authored once and posted to many Slack channels at once.

Createbroadcastaudience

Create a reusable broadcast audience: a named set of broadcast recipients, resolved to concrete Slack channels at send time rather than when saved.

Createlabeltype

Create a new label type for organizing threads.

Createnote

Create an internal note on a thread.

Createsnippet

Create a new snippet (reusable reply template) in the workspace.

Createthread

Create a new thread for a customer.

Createthreadfieldschema

Create a new thread field schema to capture structured data on threads.

Createthreadlink

Link a thread to an external entity (e.

Createworkspaceslackintegrationfromauth

Connect workspace Slack notifications using a Slack connection the workspace already has.

Deletebroadcast

Soft-delete a broadcast.

Deletebroadcastaudience

Soft-delete a broadcast audience.

Deletethreadfieldschema

Delete a thread field schema from the workspace.

Deletethreadlink

Remove a link between a thread and an external entity.

Getattachmentdownloadurl

Generate a short-lived download URL for an attachment on a thread.

Getbroadcastaudiencedetails

Fetch a single broadcast audience by its ID, or null if no audience with that ID exists.

Getbroadcastaudiences

Fetch a paginated list of the workspace's broadcast audiences, newest first.

Getbroadcastdetails

Fetch a single broadcast by its ID, including its authored content and who it is targeted at.

Getbroadcasts

Fetch a paginated list of the workspace's broadcasts, newest first.

Getbroadcastsenddeliveries

Fetch the individual recipients of one broadcast send — which channel got the message, which did not, and why.

Getbroadcastsends

Fetch the send history of one broadcast, newest first.

Getcustomerdetails

Fetch detailed information about a specific customer by their ID.

Getcustomers

Fetch a paginated list of customers from Plain.

Getcustomerthreads

Fetch first 10 threads for a specific customer.

Gethelpcenterarticle

Fetch detailed information for a specific help-center article by ID.

Gethelpcenterarticlebyslug

Fetch detailed information for a specific help-center article by slug.

Gethelpcenterarticlegroups

Fetch a paginated list of article groups for a specific help center.

Gethelpcenterarticles

Fetch a paginated list of articles for a specific help center.

Gethelpcenters

Fetch a paginated list of help centers.

Getlabels

Fetch a paginated list of label types from Plain.

Getmyassignedthreads

Fetch first 10 threads assigned to a specific user in Plain.

Getmyuser

Get the currently authenticated user's details.

Getmyworkspace

Get the currently authenticated user's workspace details.

Getsidekicksession

Poll a Sidekick session: read its status, its newest messages, and any approval it is blocked on.

Getsnippet

Fetch a single snippet by ID, including soft-deleted snippets (where `isDeleted` is true).

Getsnippets

Fetch a paginated list of snippets from the workspace.

Gettenantdetails

Fetch detailed information about a specific tenant by their ID.

Gettenants

Fetch a paginated list of tenants from Plain.

Getthreaddetails

Fetch complete details for a specific thread including first 50 timeline entries.

Getthreadfieldschemas

Fetch a paginated list of thread field schemas from Plain.

Getthreadknowledgesourcecitations

Fetch the knowledge sources cited by AI agent replies on a thread.

Getthreads

Fetch threads with flexible filtering options.

Getuserbyemail

Look up a Plain user by their email address.

Listsidekicksessions

List Sidekick sessions in the workspace, most recent activity first.

Markcustomerasspam

Flag a customer as spam.

Markthreadasdone

Mark a thread as done (resolved).

Markthreadastodo

Mark a thread as todo (reopen or set as active).

Mergethread

Merge one Plain thread into another (a `MERGED_INTO` native thread link).

Movelabeltype

Move a label type to a different position in the label hierarchy.

Removelabels

Remove labels from a thread by label IDs.

Reorderthreadfieldschemas

Reorder multiple thread field schemas in a single operation.

Replytothread

Reply to the last message in a thread.

Resolvesidekickapproval

Approve or deny a Sidekick tool-call approval request.

Searchbroadcasts

Search broadcasts by name.

Searchcustomers

Search for customers by name, email, short name, or external ID.

Searchtenants

Search for tenants by name or external ID.

Searchthreadlinkcandidates

Search a connected issue tracker for external entities that can be linked to a thread via `createThreadLink`.

Searchthreads

Search threads by text content in title, description, or messages.

Sendsidekickmessage

Send a follow-up message into an existing Sidekick session.

Sendtestbroadcast

Send a test copy of a broadcast to Slack channels you name, so you can see what recipients will get before the real audience does.

Snoozethread

Snooze a thread for a specified duration.

Startsidekicksession

Start a new Sidekick session and return the handle used by every other Sidekick tool.

Unarchivelabeltype

Unarchive a previously archived label type to make it available again.

Unassignthread

Unassign a thread, removing the current assignee.

Unmarkcustomerasspam

Clear the spam flag from a customer, restoring their threads to the inbox and metrics.

Updatebroadcast

Update one or more fields of an existing broadcast.

Updatebroadcastaudience

Update a broadcast audience's name, filters, or both.

Updatelabeltype

Update an existing label type's properties.

Updatethreadfieldschema

Update an existing thread field schema's properties.

Updatethreadtitle

Update the title (subject line) of an existing thread.

Upsertcustomer

Create or update a customer.

Upserthelpcenterarticle

Create or update a help-center article.

Upserttenant

Create or update a tenant.

Upserttenantfield

Create or update a tenant field.

Upsertthreadfield

Upsert (create or update) a thread field value on a thread.

FAQ

Frequently asked questions

With a standalone Plain MCP server, the agents and LLMs can only access a fixed set of Plain tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Plain and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. ChatGPT fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Plain tools.

Yes, absolutely. You can configure which Plain scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Plain data and credentials are handled as safely as possible.

Start with Plain MCP.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Plain MCP tool your agent needs.Free to start.

Start building