Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LINEAR_API_KEYNoLinear: Personal API key
NOTION_API_KEYNoNotion: Integration secret (ntn_…)
STRIPE_API_KEYNoStripe: Secret or restricted key
TAVILY_API_KEYNoTavily: API key
GRANOLA_API_KEYNoGranola: API key
SLACK_BOT_TOKENNoSlack: Bot token (xoxb-…)
GOOGLE_CLIENT_IDNoGoogle: OAuth client ID
FIRECRAWL_API_KEYNoFirecrawl: API key
GOOGLE_CLIENT_SECRETNoGoogle: OAuth client secret

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.

tavily_searchA

Execute a real-time web search optimized for AI agents. Use when sources are unknown or current web context is needed. Prefer search_depth advanced with chunks_per_source 3 for stronger evidence per source.

firecrawl_scrapeB

Scrape a single URL and optionally extract information. Use when the user wants to read or summarize a specific webpage. Supports markdown, HTML, screenshots, and structured JSON extraction.

gmail_threads_listC

List Gmail threads.

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.

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.

gmail_drafts_createC

Save an email draft to Gmail.

gcalendar_events_insertC

Create a calendar event; returns details of the event.

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.

gsheets_spreadsheets_values_getC

Returns a range of values from a spreadsheet.

firecrawl_extractA

Extract structured data from one or more URLs using an LLM. Poll results with extract_status.

gsheets_spreadsheets_values_updateC

Sets values in a range of a spreadsheet.

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.

gmail_messages_sendC

Send an email via the Gmail API.

stripe_prices_listA

List prices. Filter by product to find what a product costs.

stripe_checkout_sessions_createA

Create a Checkout Session and get a hosted payment URL. Pass line_items with price IDs and quantities, mode='payment' for one-time or mode='subscription' for recurring.

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.

stripe_customers_createC

Create a customer.

stripe_invoice_items_createA

Add a line to an invoice. Name an existing price as pricing.price, or give an amount directly. Without invoice the line waits for the customer's next subscription invoice.

stripe_invoices_createA

Create a draft invoice for a customer. It bills nothing until finalised, so this is the safe half of invoicing.

stripe_invoices_finalizeA

Finalise a draft invoice, making it open and payable. The amounts stop being editable at this point.

stripe_subscriptions_listB

List subscriptions. Filter by customer or status.

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_customer_createB

Create a customer. Only name is required.

slack_conversations_createB

Create a channel. Slack refuses a name that is already taken.

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.

tavily_research_createA

Create an async research task that searches, analyzes sources, and generates a cited report. Poll results with research_get.

tavily_research_getA

Retrieve the status and results of a research task by request_id. HTTP 202 means still running; poll until HTTP 200.

stripe_customers_retrieveB

Retrieve a single customer by 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.

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.

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

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.
pre_call_brief_for_tomorrow_s_external_meetingsCompany news, what they sell and the last email thread, in a DM the night before.
call_to_follow_up_email_and_next_stepThe recap email is drafted, the next meeting held and the CRM updated before the rep leaves the room.
lead_list_enrichmentA column of domains becomes size, product, pricing model and a recent signal per row.
inbound_demo_request_to_bookedA qualified request gets a meeting and a researched AE within the hour.
scope_agreed_on_a_call_to_payment_linkThe deal closes while the buyer still remembers saying yes.
signed_quote_to_stripe_invoiceThe quote's line items become the invoice's, with no retyping.
closed_won_handoffAccount page, customer record and internal channel exist the day the deal closes.
target_account_researchEvery account in the target list gets a cited brief on its page.
pipeline_digestDeals with no meeting booked in two weeks get flagged to their owner.
trial_ending_to_rep_alert_and_nudgeTrials that end in three days get a human touch instead of a silent expiry.
no_show_recoveryA meeting with no notes was a no-show, and it gets a reschedule email.
security_questionnaire_prefilledTwo hundred rows answered from your own policies, for a human to review.
new_thread_from_an_unknown_domain_to_crmInbound that didn't come through a form still lands in the CRM with context.
mail_merge_from_a_sheetPersonalised drafts per row, status written back, nothing sent without review.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 35 tools

Disambiguation4/5

Most tools are clearly separated by app prefix and action, e.g. gmail_messages_send vs gmail_drafts_create. Some overlap remains among tavily_search, tavily_research_create, firecrawl_scrape, and firecrawl_extract, which could be confused for general web research tasks. Overall the set is mostly distinct but not perfectly unambiguous.

Naming Consistency5/5

Tool names follow a highly predictable snake_case pattern, usually app/service/resource/action, such as notion_pages_create, stripe_invoices_finalize, and gcalendar_events_list. Minor deviations like connect and connection_status are meta-tools and do not break the pattern. The naming convention is consistent throughout.

Tool Count2/5

With 35 tools, this is well above the typical 3-15 well-scoped range and exceeds the 25+ threshold for being too many. Although the server spans many integrations, the surface feels heavy and likely includes tools that could be consolidated or conditionally exposed. The count is not well-scoped for a single sales-prep agent.

Completeness2/5

Coverage is broad across apps but shallow and has significant gaps: Gmail can list threads but not read message bodies, Calendar can list/insert but not update/delete, and Linear only creates customers. granola_notes_get even references a notes_transcript_get tool that is not present, creating a dead end. These gaps would likely cause agent failures in real sales-prep workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues