support-inbox-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LINEAR_API_KEY | No | Your own Linear API key (get one at https://linear.app/settings/account/security). Alternatively, store it in your OS keychain with `support-inbox-mcp login linear`. | |
| NOTION_API_KEY | No | Your own Notion integration secret (ntn_…), from https://www.notion.so/profile/integrations. Share the pages it should see with the integration. Alternatively, store it in your OS keychain with `support-inbox-mcp login notion`. | |
| STRIPE_API_KEY | No | Your own Stripe secret or restricted key (get one at https://dashboard.stripe.com/apikeys). Alternatively, store it in your OS keychain with `support-inbox-mcp login stripe`. | |
| GRANOLA_API_KEY | No | Your own Granola API key (get one in the Granola app: Settings → Connectors → API keys; Business plan or above). Alternatively, store it in your OS keychain with `support-inbox-mcp login granola`. | |
| SLACK_BOT_TOKEN | No | Bot token (xoxb-…) from your own Slack app. Alternatively, store it in your OS keychain with `support-inbox-mcp login slack`. | |
| GOOGLE_CLIENT_ID | No | Google OAuth client ID, for connecting Google apps. Alternatively, sign in via browser with your own OAuth client using `support-inbox-mcp login google`. | |
| GOOGLE_CLIENT_SECRET | No | Google OAuth client secret, for connecting Google apps. Alternatively, sign in via browser with your own OAuth client using `support-inbox-mcp login google`. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gmail_threads_listC | List Gmail threads. |
| gmail_threads_getC | Read a Gmail thread. |
| linear_search_issuesA | Search issues by text, across titles and descriptions. Set |
| linear_issue_createA | Create an issue. |
| gmail_drafts_createC | Save an email draft to Gmail. |
| gmail_threads_modifyB | Modify the labels on a thread, and so on every message in it. |
| linear_issues_listA | List issues, optionally filtered. Conditions on one filter object combine with AND. To find a team's open work, filter on team.key and state.type. |
| linear_attachments_listB | List attachments — the links between Linear issues and things outside it. |
| stripe_customers_retrieveB | Retrieve a single customer by ID. |
| stripe_invoices_listA | List invoices, most recently created first. Filter by customer, subscription, status or collection method. |
| linear_customer_needs_listA | List customer requests. Filter by issue to see what a piece of work is wanted for, or by customer to see everything one company has asked for. |
| granola_notes_listA | List meeting notes, filtered by when they were created or last updated and optionally narrowed to one folder and its subfolders. Returns each note's id, title, owner and timestamps, not its content. Fetch that with notes_get. Only notes that already have a generated AI summary appear here. |
| gdocs_documents_createA | Create a blank document with a title. Only the title is honoured — the document is created empty. To add content, call this and then documents_batch_update with the returned documentId. |
| stripe_subscriptions_listB | List subscriptions. Filter by customer or status. |
| slack_chat_post_messageA | Send a message to a Slack channel, private group, or DM. Provide |
| gcalendar_events_insertC | Create a calendar event; returns details of the event. |
| gdrive_files_copyA | Create a copy of a file and apply any requested updates with patch semantics. Typically send a new |
| gdrive_permissions_createA | Create a permission for a file or shared drive. |
| gmail_messages_sendC | Send an email via the Gmail API. |
| slack_conversations_historyB | Fetch recent messages from a Slack channel. |
| linear_customer_need_createA | Record a customer request, optionally attached to an issue or project. This is the one Linear mutation whose reply carries no object — it answers only with whether it worked. |
| stripe_customers_listA | List customers, most recently created first. Filter by email to find one. |
| stripe_charges_listB | List charges, most recently created first. |
| stripe_refunds_createA | Refund a charge. Provide either |
| gforms_forms_responses_listA | List a form's submitted responses, newest page first, up to 5000 per page. The only supported filter is on submission time: pass filter='timestamp >= 2026-01-01T00:00:00Z' to read what has arrived since a point in time. Answers come back keyed by questionId. |
| notion_searchA | Search the titles of pages and data sources shared with this integration. Titles only — it does not search page content — and it returns nothing that has not been shared. With no query it lists everything visible, which is how you find the IDs to start from. |
| notion_pages_createA | Create a page — as a subpage of another page, or as a row of a database by giving its |
| linear_issue_updateA | Update an issue. Only the fields provided are changed. To close an issue, set |
| gdrive_files_listA | List the user's files. Returns all files by default, including trashed files; add |
| gsheets_spreadsheets_values_updateC | Sets values in a range of a spreadsheet. |
| connectA | Connect one app this server uses. For an app that issues keys, says where to get one and the terminal command that stores it. For Google, once the user's own OAuth client is set, starts the browser sign-in and returns at once: the user approves in the browser and the next call works. To see which apps are connected, call |
| connection_statusA | See which apps this server is connected to, and how to connect each one that is not. Changes nothing. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| setup | Connect every app this server uses, the quickest way each one allows. |
| support_email_to_linear_bug_with_a_reply_drafted | Bug reports leave the inbox as issues, and the customer gets a real acknowledgement. |
| fixed_to_reply_in_the_original_thread | Customers who reported a bug hear it's fixed in the same email thread. |
| qbr_account_brief | Spend, payment issues, open requests and last calls, on one page before the QBR. |
| churn_signal_to_save_call | A cancellation at period end triggers a call while there is still time. |
| new_customer_onboarding_kickoff | Plan doc shared, kickoff booked and welcome sent on day one. |
| customer_slack_channel_to_requests_and_bugs | Asks in shared channels get tracked and answered with a link. |
| refund_request_handled_end_to_end | The charge is found, the refund issued and the reply drafted, with a human approving the refund. |
| nps_detractor_follow_up | Low scores from paying accounts get a personal reply and their complaint tracked. |
| help_center_gap_finder | Questions asked three times with no article get a draft article. |
| escalation_runbook | Priority raised, call booked, customer told: one command instead of four tabs. |
| internal_q_and_a_from_the_docs | Questions in #ask get answered in-thread from the wiki and Drive, with links. |
| account_health_sheet | Billing state and open bugs per account in one sheet the CS team sorts by. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 32 tools
Tools are namespaced by service and target distinct actions; descriptions actively disambiguate overlapping pairs like linear_search_issues vs linear_issues_list (full-text vs field filter) and connect vs connection_status (change vs read). A few pairs (gmail_threads_list/get, list vs retrieve) are close but clearly separated by descriptions.
Nearly all tools follow a {service}_{resource}_{verb} snake_case pattern (gdrive_files_copy, gmail_threads_list, stripe_invoices_list), and casing is uniformly lowercase snake_case. Minor deviations: verb position varies (linear_search_issues puts the verb first) and connect/connection_status lack a service prefix, but the convention is still readable.
32 tools spanning ~11 unrelated services (Drive, Gmail, Linear, Stripe, Granola, Docs, Slack, Calendar, Forms, Notion, Sheets) is heavy for a server named 'support-inbox'. The breadth exceeds a well-scoped surface and crosses into the 'too many' band.
Email, issue, and customer workflows get reasonable read/write coverage, but lifecycle operations are thin: little or no delete/archive, no Gmail label or search-by-content management, and limited Linear comment/label tooling. The multi-domain scope makes full coverage across every connected app unlikely.