Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LINEAR_API_KEYNoYour 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_KEYNoYour 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_KEYNoYour 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_KEYNoYour 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_TOKENNoBot token (xoxb-…) from your own Slack app. Alternatively, store it in your OS keychain with `support-inbox-mcp login slack`.
GOOGLE_CLIENT_IDNoGoogle 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_SECRETNoGoogle 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 include_comments to search inside comments too. This is full-text search; to filter on fields such as state or assignee, use issues_list.

linear_issue_createA

Create an issue. team_id and title are required; everything else is optional. The UUIDs for team, assignee, state and labels come from teams_list, users_list and workflow_states_list — Linear does not accept names here. Set parent_id to create a sub-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 text for a plain message; set thread_ts to reply inside an existing thread.

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 name and optionally parents.

gdrive_permissions_createA

Create a permission for a file or shared drive. type is user, group, domain or anyone; role is owner, organizer, fileOrganizer, writer, commenter or reader. For user or group, send emailAddress. Concurrent permission writes on the same file are not supported.

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 charge or payment_intent. Omit amount to refund the full sum.

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 data_source_id as the parent. Content comes as a markdown string Notion parses into blocks, or from a template: one or the other, never both.

linear_issue_updateA

Update an issue. Only the fields provided are changed. To close an issue, set state_id to a state whose type is 'completed' or 'canceled' — Linear has no separate close operation. Use added_label_ids and removed_label_ids to adjust labels; label_ids replaces them outright.

gdrive_files_listA

List the user's files. Returns all files by default, including trashed files; add trashed = false to q to hide them. q is Drive's search grammar — name contains 'Q3' and mimeType = 'application/vnd.google-apps.folder'.

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_status. Never ask the user for a key in the chat.

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

NameDescription
setupConnect every app this server uses, the quickest way each one allows.
support_email_to_linear_bug_with_a_reply_draftedBug reports leave the inbox as issues, and the customer gets a real acknowledgement.
fixed_to_reply_in_the_original_threadCustomers who reported a bug hear it's fixed in the same email thread.
qbr_account_briefSpend, payment issues, open requests and last calls, on one page before the QBR.
churn_signal_to_save_callA cancellation at period end triggers a call while there is still time.
new_customer_onboarding_kickoffPlan doc shared, kickoff booked and welcome sent on day one.
customer_slack_channel_to_requests_and_bugsAsks in shared channels get tracked and answered with a link.
refund_request_handled_end_to_endThe charge is found, the refund issued and the reply drafted, with a human approving the refund.
nps_detractor_follow_upLow scores from paying accounts get a personal reply and their complaint tracked.
help_center_gap_finderQuestions asked three times with no article get a draft article.
escalation_runbookPriority raised, call booked, customer told: one command instead of four tabs.
internal_q_and_a_from_the_docsQuestions in #ask get answered in-thread from the wiki and Drive, with links.
account_health_sheetBilling state and open bugs per account in one sheet the CS team sorts by.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 32 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count2/5

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.

Completeness3/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues