# Plain — MCP server on mcp.ai > Connect your Plain account and use 23 tools for customer support straight from your AI agent. Connect with your own API key. Plain is a collaborative support platform for B2B support teams, offering a modern, AI-powered interface to consolidate support channels and assist customers efficiently. By: mcp.ai · official Page: https://mcp.ai/plain ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_plain?ms=1787293740000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/plain/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/plain/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/plain/skill.md Postman collection (v2.1): https://mcp.ai/plain/postman.json ## Tools - plain_add_customer_to_group(customerId: string, customerGroupIdentifiers: object[]) — Tool to add a customer to one or more customer groups. Use when you have a customer and groups ready. - plain_create_customer_group(key: string, name: string, color: string, externalId?: string) — Creates a new customer group in Plain for organizing and segmenting customers. Customer groups allow you to categorize customers (e.g., by pricing tier, feature access, or support level) and manage th - plain_create_thread(title: string, assignedTo?: object, components?: object[], labelTypeIds?: string[], customerIdentifier: object) — Tool to create a new thread. Use after obtaining valid customer identifier. - plain_delete_customer(customer_id: string) — Tool to delete a customer from the system. Use when you need to remove a customer by their ID. - plain_delete_user(user_id: string) — Tool to delete a user from the system. Use when you need to remove a user by their ID after confirming existence. - plain_fetch_company(company_id: string) — Tool to fetch company details by ID. Use when you need the full profile of a company, including name, domain, contract value, owner info, and timestamps. - plain_fetch_issues(linkFirst?: integer, customerId: string, threadFirst?: integer) — Fetches external issue tracker links (Jira, Linear, GitHub, etc.) associated with a customer's threads. Returns a flattened list of all issue links across the customer's threads, including the thread - plain_fetch_tier(tier_id: string) — Tool to fetch a tier by its ID. Use when you have a tier ID and need its metadata before proceeding. Example: "Fetch tier with ID tier_123". - plain_get_customer_by_email(email: string) — Fetch customer details by email address. Returns customer information if found, or null if no customer exists with that email. - plain_get_customer_by_id(id: string) — Tool to retrieve details of a specific customer by their unique ID. Use after obtaining the customer's ID to fetch their complete record. - plain_get_customers(last?: integer, after?: string, first?: integer, before?: string, sortBy?: object, filters?: object) — Tool to fetch a list of customers. Use when retrieving multiple customer records with pagination, filtering, or sorting. - plain_get_thread_by_id(id: string) — Fetches comprehensive details of a specific thread by ID, including customer info, status, priority, labels, and assignments. Returns null if thread not found. - plain_get_user_by_id(user_id: string) — Fetch workspace user/team member by ID. Returns detailed information about a workspace team member including their name, email, status, and avatar. Note: This fetches workspace users (team members), n - plain_list_customer_groups(last?: integer, after?: string, first?: integer, before?: string, filters?: object) — Tool to list all customer groups. Use when you need to retrieve group metadata with optional pagination or filters. - plain_list_threads(last?: integer, after?: string, first?: integer, before?: string) — DEPRECATED: Use PLAIN_PLAIN_QUERY_THREADS instead. Lists all threads (support conversations) in Plain. Returns thread summaries including ID, reference, title, status, and priority. Use this action to - plain_list_tiers(last?: integer, after?: string, first?: integer, before?: string) — Tool to retrieve a list of tiers with pagination. Use when you need to browse available tiers after determining pagination cursors. Example: 'List tiers with first=25'. - plain_query_threads(cursor?: string, statuses?: string[]) — Tool to retrieve a paginated list of threads. Use when you need to list threads with optional status filtering. - plain_remove_customer_from_group(customerId: string, customerGroupIdentifiers: object[]) — Removes a customer from one or more customer groups in Plain. Use this action to revoke customer group memberships. The customer must be a member of the specified group(s) - attempting to remove a cus - plain_run_graphql_query(query: string, variables?: object) — Execute any GraphQL query or mutation against Plain API. Use when no specific action exists or for complex operations like thread timelines, advanced filtering, and custom data retrieval. Supports que - plain_send_message(threadId: string, textContent: string, impersonation?: object, markdownContent?: string, channelSpecificOptions?: object) — Tool to send a new message within a thread. Use after identifying the thread and preparing message content. - plain_update_company(name: string, companyId?: string, domainName: string, contractValue?: integer, companyDomainName?: string, accountOwnerUserId?: string) — Upserts (creates or updates) a company in Plain. Provide either companyId (for updating an existing company by ID) or companyDomainName (for upserting by domain). Use this to create new companies, upd - plain_update_thread(title: string, threadId: string) — Tool to update a thread's title. Use when renaming a thread after confirming its ID. - plain_upsert_customer(onCreate: object, onUpdate: object, identifier: object) — Tool to upsert (create or update) a customer. Use when syncing or ensuring a customer record exists before subsequent actions. ## Example prompts - "What can I do in Plain?" - "Show me a summary of my Plain account" ## Links Docs: https://mcp.ai/docs/mcps/plain Website: https://mcp.ai/mcps/plain