Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GITHUB_TOKENNoGitHub personal access token with repo and read:user scopes.
LINEAR_API_KEYNoLinear personal API key.
NOTION_API_KEYNoNotion integration secret (ntn_…).
STRIPE_API_KEYNoStripe secret or restricted API key.
GRANOLA_API_KEYNoGranola API key.
SLACK_BOT_TOKENNoSlack bot token (xoxb-…).
GOOGLE_CLIENT_IDNoGoogle OAuth client ID for browser sign-in to Google APIs. Can be set in the client config or stored via `chief-of-staff-mcp login`.
GOOGLE_CLIENT_SECRETNoGoogle OAuth client secret used with GOOGLE_CLIENT_ID for browser sign-in to Google APIs.

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
gcalendar_events_listC

List events matching a given search filter.

gmail_threads_listC

List Gmail threads.

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.

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_getC

Get one event by its ID.

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.

granola_notes_getA

Read one meeting note: its AI summary, the people who attended, the calendar event it was taken against, and the folders it belongs to. Pass include='transcript' to get the transcript inline as well. A transcript too large to inline answers 413 TRANSCRIPT_TOO_LARGE. Read it with notes_transcript_get instead.

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.

linear_users_listA

List workspace members. Use this to resolve a person's name or email to the UUID that assignment expects.

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.

linear_project_updates_listA

Read the status updates posted on projects — the periodic 'on track, here is what moved' notes. Filter by project for one project's history.

github_releases_listA

List a repository's releases, newest first. Tags that were never made into releases do not appear here — repos_list_tags has those. Drafts are visible only with push access.

stripe_subscriptions_listB

List subscriptions. Filter by customer or status.

gmail_threads_modifyB

Modify the labels on a thread, and so on every message in it.

gcalendar_events_quick_addA

Create an event from a plain-text description such as 'Appointment at Somewhere on June 3rd 10am-10:25am'. Google parses the time and title; use events_insert when the fields are already known.

gmail_threads_getC

Read a Gmail thread.

gcalendar_events_insertC

Create a calendar event; returns details of the event.

gmail_drafts_createC

Save an email draft to Gmail.

slack_conversations_historyB

Fetch recent messages from a Slack channel.

notion_data_sources_queryB

Get the rows of a data source, optionally filtered and sorted. The filter grammar is one condition per column type, composed with and and or up to two levels deep. Read the schema first if you do not know the column names — a filter naming a column that is not there is a 400.

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.

gforms_forms_createA

Create a new form from a title. Only the title and the document title are honoured: the form is created with no description, no items and default settings. To add questions, call this and then forms_batch_update with the returned formId. Pass unpublished=true to create a form that does not yet accept responses.

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.

linear_initiatives_listB

List initiatives — the grouping above a project, and what Linear replaced roadmaps with.

linear_initiative_getA

Get one initiative with its projects and links.

gsheets_spreadsheets_values_updateC

Sets values in a range of a spreadsheet.

linear_initiative_update_createC

Post a status update on an initiative.

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'.

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.

gsheets_spreadsheets_createA

Create a new spreadsheet. Set its title, locale and time zone, and the sheets it starts with; write cell values afterwards with spreadsheets_values_update or spreadsheets_values_append.

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.

gdrive_comments_listC

List a file's comments. The fields parameter is required — for example comments(id,content,author,createdTime,resolved).

slack_users_listA

List members of the workspace. Use this to resolve a person's name to the user ID that Slack mentions and filters expect.

gdocs_documents_getA

Read a document's full structural content. The document ID is the long string in its URL, between '/d/' and '/edit'. Pass include_tabs_content=true for a document with several tabs, since the default response covers only the first.

gdrive_permissions_listB

List a file's or shared drive's permissions.

gdrive_permissions_deleteA

Delete a permission. Concurrent permission writes on the same file are not supported.

linear_team_membership_deleteC

Remove a member from a team.

gsheets_spreadsheets_values_getC

Returns a range of values from a spreadsheet.

gmail_messages_listC

List messages in the user's mailbox.

gmail_messages_getB

Read one message, by the id messages_list returns.

gsheets_spreadsheets_values_appendC

Appends values to a spreadsheet.

gdrive_files_exportA

Export a Google Workspace document to the requested MIME type and return the exported content. Limited to 10 MB. Common MIME types: text/plain, text/html, text/csv, application/pdf.

notion_pages_update_markdownA

Replace a page's content with Markdown, which Notion parses into blocks. This replaces the whole body, so read it first if you mean to edit rather than overwrite.

notion_pages_updateA

Update a page's property values, icon, cover, or trash state. Properties not named are left alone, and a value set to null is cleared. This cannot move a page — use pages_move.

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.

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.
morning_briefToday's meetings, emails that need you and issues due, in one message at 8am.
meeting_prep_packLast time you met them, what they emailed since and what you promised.
action_items_to_ownersEverything someone said they'd do is an assigned issue before the next meeting.
internal_weekly_updateShipped, revenue, risks: drafted from the systems, edited by a human.
inbox_triage_into_tasks_and_time_blocksEmails that are really tasks become issues with time held to do them.
email_to_calendar'Does Thursday 3pm work?' becomes an invite and a confirmation.
meetings_to_docA week of meetings summarised into a doc for the people who weren't there.
decision_logDecisions made in channels get recorded with who, when and why.
offsite_planningDates, dietary needs and the agenda gathered and published.
okr_trackerInitiative progress rolled up to the sheet and posted as an update.
fundraising_data_roomFolder assembled, revenue exported and access granted per investor.
unresolved_doc_comments_to_nudgesComments that have waited three days get their owner pinged.
contract_renewal_calendarEvery contract's notice date is on a calendar 60 days ahead.
offboarding_access_sweepFiles shared with someone who left get revoked, with a report.
sheet_to_calendarA schedule kept in a sheet becomes real events, with IDs written back.
inbox_to_sheetOrders, signups or applications that arrive by email become rows.
drive_folder_to_notionA migration that usually takes a week of copy-paste.
granola_to_notion_meeting_databaseEvery meeting note in the team's Notion with attendees and decisions as properties.
notion_tasks_and_linearNon-engineers file in Notion and see the Linear status reflected back.
spreadsheet_backlog_to_linearThe backlog someone kept in a sheet moves to Linear, IDs written back.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 47 tools

Disambiguation4/5

Tools follow a resource+action pattern and most have clearly distinct purposes, with descriptions explicitly steering between similar pairs (e.g. events_insert vs events_quick_add, issues_list vs search_issues). A few near-neighbors exist (initiatives_list vs initiative_get, the various list tools across apps), but overlap is minimal and well-documented.

Naming Consistency4/5

The dominant convention is a predictable app_resource_action pattern (gdrive_files_list, linear_issues_list, slack_chat_post_message). Minor deviations exist — unprefixed meta tools (connect, connection_status), a four-segment notion_pages_update_markdown, and the awkward linear_initiative_update_create — but overall it stays consistent and readable.

Tool Count3/5

47 tools is heavy, well past the comfortable 3-15 range, and the surface is flat with no grouping to guide selection. However, the server genuinely aggregates ~12 distinct apps, so the count is roughly proportional rather than arbitrary bloat — borderline but defensible for this scope.

Completeness3/5

Coverage is broad, but several workflows dead-end: Gmail has no send, Calendar lacks update/delete, GitHub and Stripe expose only a single list tool each. Some descriptions reference operations not present in the tool set (documents_batch_update, forms_batch_update, pages_move), signaling real holes.

Maintenance

ActivityMaintained
ResponsivenessNo issues