Plain MCP server

Connect Plain to Claude, ChatGPT, Cursor, Claude Code, Codex, Gemini, GitHub Copilot and any other MCP client, for your whole team. Metorial adds security, governance, and tracing, and gives everyone one Magic MCP URL to connect.

What you can do with the Plain MCP server

Ask your agent in plain language. Each of these maps to a real tool on the server.

  • Use the list threads tool in Plain
  • Use the manage customer tenants tool in Plain
  • Use the list label types tool in Plain
  • Use the update customer company tool in Plain
  • Use the upsert customer tool in Plain
  • Use the list customer groups tool in Plain

Supported Tools

list_threads

List Threads

List support threads with optional filtering by status, customer, or tenant. Returns thread details with pagination support.

manage_customer_tenants

Manage Customer Tenants

Add or remove a customer from tenants. Customers can belong to multiple tenants. Provide tenant identifiers to add or remove.

list_label_types

List Label Types

List all available label types in the workspace. Label types define the categories you can apply to threads (e.g., "Bug", "Feature Request"). Use the returned IDs when adding labels to threads.

update_customer_company

Update Customer Company

Change a customer's associated company. By default, Plain auto-derives the company from the customer's email domain. Use this tool to manually override it by specifying a company ID, domain, or set to null to remove the association.

upsert_customer

Upsert Customer

Create or update a customer in Plain. Uses an upsert pattern — if a customer matching the identifier exists, it will be updated; otherwise a new customer is created. Specify separate fields for creation vs. update via **onCreate** and **onUpdate**.

list_customer_groups

List Customer Groups

List all customer groups in the workspace. Customer groups are used for organizing customers by segment, pricing tier, or other criteria.

create_thread

Create Thread

Create a new support thread for a customer. Threads represent customer conversations and are created with an initial message composed of UI components (text, spacers, link buttons). You can optionally assign a tenant, labels, and priority.

update_thread_status

Update Thread Status

Change a thread's status to Todo, Done, or Snoozed. When snoozing, specify a duration in seconds after which the thread returns to Todo.

list_customers

List Customers

List customers in your Plain workspace with optional pagination. Returns customers along with their company and metadata.

get_customer

Get Customer

Look up a single customer by ID, email, or external ID. Returns detailed customer information including company and metadata.

get_thread

Get Thread

Retrieve a single support thread by ID. Returns full thread details including status, priority, labels, assignee, and associated customer/tenant information.

reply_to_thread

Reply to Thread

Send a reply to an existing thread. Text, spacer, and link components are converted to text and Markdown for the thread's channel. Optionally impersonate a customer when replying.

delete_customer

Delete Customer

Permanently delete a customer from Plain. This action cannot be undone.

manage_thread_labels

Manage Thread Labels

Add or remove labels on a thread. Use the **addLabelTypeIds** field to add labels and **removeLabelIds** to remove them. You can do both in a single call. Use the list_label_types tool to discover available label types.

upsert_tenant

Upsert Tenant

Create or update a tenant. Tenants let you organize customers to match your product's structure (e.g., teams, organizations). Uses an upsert pattern — matched by identifier, created if not found, updated otherwise.

create_timeline_event

Create Timeline Event

Create a custom event on a customer's timeline or on a specific thread. Timeline events appear in the thread view and can display rich content (text, links, spacers). Use **externalId** for idempotency.

send_email

Send Email

Send a new email to a customer. This creates a new thread with an outbound email. You can also specify Cc and Bcc recipients.

manage_customer_groups

Manage Customer Groups

Add or remove a customer from customer groups. Customer groups are used for segmentation and access control. Use the list_customer_groups tool to discover available groups.

change_thread_priority

Change Thread Priority

Change the priority level of a support thread. Priority levels: 0 = urgent, 1 = high, 2 = normal, 3 = low.

assign_thread

Assign Thread

Assign or unassign a support thread. Provide a userId to assign, or set unassign to true to remove the current assignment.

create_note

Create Note

Create an internal note visible only to your team. Target a customer or an individual thread belonging to that customer.

list_thread_timeline

List Thread Timeline

Read a thread’s messages, internal notes, custom events, and other timeline entries with cursor pagination. Message content is returned for email, chat, Slack, Microsoft Teams, and Discord; other entry types retain their type name.

list_users

List Users

List workspace team members and their IDs for assign_thread. Optionally return only assignable users.

list_companies

List Companies

List companies and their IDs and domains for update_customer_company.

get_current_user

Get Current User

Identify the machine user and workspace associated with the API key.

get_tenant

Get Tenant

Get a tenant by its ID from list_tenants, including its external ID, URL, tier, and timestamps.

list_tenants

List Tenants

List tenants and their IDs, external IDs, and tiers for customer membership and thread operations.

Connect Plain to your AI client

Every client uses the same Magic MCP URL, and so does any other MCP client. Add it once and sign in with SSO.

  1. Enable Plain in Metorial. In your Metorial portal, enable the Plain MCP server and sign in with the account that owns the data. Access stays governed by your team policies.
  2. Add a custom connector. Open Customize, then Connectors. Select Add, then Custom, then Web.
  3. Paste your Metorial MCP URL. Name it Metorial, paste your Magic MCP URL (<your-magic-mcp-url>) and continue.
  4. Sign in. Select Add and sign in to load Plain tools.

Run Plain through the Metorial gateway

One governed layer for every app your agents reach, not a separate connector per tool.

  • Give Plain and every other app to your whole team through one MCP gateway, behind your SSO.
  • Scope which teams and agents can use Plain tools with role-based access control, and trace every call.
  • Prefer to run it yourself? Metorial is open source and self-hostable.

More integrations teams use with Plain

Notion

Create, read, update, and archive pages and databases in a Notion workspace. Manage blocks (paragraphs, lists, headings, embeds, etc.) within pages. Query databases with filters and sorts across rich property types including text, numbers, dates, selects, relations, and formulas. Search across pages and databases by title. Add and read comments on pages and blocks. Upload files to pages. Manage workspace users and retrieve user profiles.

GitHub

Manage repositories, issues, and pull requests. Create and configure branches, star repositories, review code, and merge changes. Automate CI/CD workflows with GitHub Actions, manage workflow runs, secrets, and artifacts. Track issues with labels, milestones, and assignees. Search across code, repositories, issues, and users. Manage organizations, teams, and memberships. Create and manage projects, gists, packages, deployments, and environments. Access security alerts including code scanning, secret scanning, and Dependabot alerts. Read and write file contents in repositories. Manage webhooks, notifications, and codespaces.

Slack

Slack: connect with bot OAuth or user OAuth to work with messages, conversations, search, files, Canvases, Lists, profiles, reactions, reminders, and workspace productivity settings.

Salesforce

Manage CRM data including Accounts, Contacts, Leads, Opportunities, Cases, and custom objects. Create, read, update, and delete records. Query data using SOQL and search across objects using SOSL. Perform bulk data operations for large-scale imports, exports, and migrations. Execute composite requests to batch multiple operations in a single API call. Access analytics, reports, and dashboards. Manage files and attachments associated with records. Interact with Chatter feeds, posts, and groups for social collaboration. Manage org metadata including custom objects, fields, layouts, and workflows. Query data using GraphQL for precise data retrieval across related objects.

Apolloio

Search and prospect B2B contacts and companies from a database of over 275 million people and 70 million organizations. Enrich people and company data with emails, phone numbers, and firmographic details. Create and manage contacts, accounts, deals, and tasks. Add contacts to email sequences and manage sequence statuses. Log and search call records. Perform bulk operations for contact creation, account creation, task creation, and data enrichment.

Sharepoint

Manage SharePoint sites, document libraries, lists, and files. Create, read, update, and delete lists and list items with custom columns. Resolve site users to numeric Person/Group LookupId values. Upload, download, move, copy, and version files in document libraries. Search across sites, files, folders, lists, and list items using Microsoft Search. Manage permissions at site, list, and item levels with granular access control. Define and manage content types and site columns. Retrieve site properties and search for sites across Microsoft 365.

Technical notes for Plain

Manage customer support customers, threads, conversations, internal notes, labels, companies, tenants, and customer groups. Discover workspace and resource IDs, read thread history across supported channels, send email, reply to threads, and manage assignment, priority, and status.

Frequently asked questions

Common questions about connecting Plain to AI agents with Metorial.

  1. How many tools does the Plain MCP server have?
    The Plain MCP server exposes 27 tools, including List Threads, Manage Customer Tenants, List Label Types. Each one is governed and traced through Metorial.
  2. Plain exposes tools your agents call on demand; it does not publish event triggers yet. Everything still runs through one governed MCP URL.
  3. Any MCP client, including VS Code, Windsurf, Zed, OpenCode and Grok. Each one reaches the Plain MCP server through the same Metorial URL.
  4. Use role-based access control to decide which teams, users, and agents can use Plain and which of its tools they can call.
  5. Yes. Metorial is open source, so you can run the Plain MCP server yourself or use the hosted gateway.

Connect Plain to production AI agents

See how Metorial gives your team governed access to Plain, with tracing and security controls built in.