Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DATA_DIRNoWritable volume for the JSON store. Falls back to temp dir, then in-memory.<cwd>/data
LLM_PROVIDERNoProvider selection: `auto` | `anthropic` | `openrouter` | `none`. In `auto` mode, uses Anthropic if its key is set, else OpenRouter if its key is set, else the offline deterministic extractor.auto
LINEAR_API_KEYNoEnables real Linear ticket lifecycle.
LINEAR_TEAM_IDNoLinear team ID for ticket creation. Auto-detected if omitted.
ANTHROPIC_MODELNoClaude model to use for extraction.claude-sonnet-4-6
EMAIL_IMAP_HOSTNoIMAP host for searching email evidence.
EMAIL_IMAP_PASSNoIMAP password for searching email evidence.
EMAIL_IMAP_USERNoIMAP username for searching email evidence.
EMAIL_SMTP_HOSTNoSMTP host for sending email nudges.
EMAIL_SMTP_PASSNoSMTP password for sending email nudges.
EMAIL_SMTP_USERNoSMTP username for sending email nudges.
SLACK_BOT_TOKENNoEnables real Slack evidence search + DM nudges. Requires scopes: channels:read, groups:read, channels:history, groups:history, im:history, users:read, users:read.email, chat:write.
OPENROUTER_MODELNoFree OpenRouter model for extraction.meta-llama/llama-3.1-8b-instruct:free
ANTHROPIC_API_KEYNoEnables Claude-based extraction (paid).
OPENROUTER_API_KEYNoEnables free-tier OpenRouter extraction.
SCHEDULER_INTERVAL_MSNoReal-world poll cadence in milliseconds for the scheduler.3600000
SLACK_EVIDENCE_CHANNELSNoComma-separated list of Slack channel names or IDs to search for evidence.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tasks
{
  "list": {},
  "cancel": {},
  "requests": {
    "tools": {
      "call": {}
    }
  }
}
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": true,
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
extract_commitmentsA

Parses a meeting transcript and returns structured commitment objects: who promised what, to whom, by when, and with what confidence. For every commitment found it immediately creates a durable store record AND a Linear ticket — catching the 90% of commitments that would never become a manual ticket. Deduplicates against commitments already in the store.

get_sample_transcriptA

Returns a ready-to-use sample meeting transcript (with participants and meeting date) designed to exercise all three confidence levels — paste its transcript_text into extract_commitments to run the demo flow.

upsert_commitmentB

Creates or updates a commitment record in the durable store. The store is the source of truth for every commitment lifecycle state.

query_commitmentsA

Returns commitments matching a filter — used by the scheduler to find items due for a poll or nudge check. With no filters, returns every commitment.

promote_commitmentA

Promotes a logged aspirational commitment ("we should probably...") so the scheduler starts actively chasing it. This is the human override that moves an idea into the follow-up loop.

search_slack_evidenceA

Searches Slack for messages that could constitute evidence a commitment was fulfilled. Returns raw candidate messages; the verification agent scores them semantically rather than trusting keyword hits.

search_email_evidenceA

Searches a mocked inbox/sent-items store for emails relevant to a commitment — e.g. mail sent to an external beneficiary that proves the work shipped.

send_nudgeA

Sends a contextual reminder to the commitment owner via Slack or email, referencing the original commitment language and deadline. Tone calibration: gentle first, specific second, urgent only on hard blockers.

linear_create_ticketA

Creates a Linear ticket for a newly extracted commitment so it's never lost — even commitments nobody manually ticketed. Keys stay server-side in the Linear service; this tool never exposes them to the model.

linear_get_statusA

Reads the current status of a Linear ticket — used by the scheduler to verify work marked Done in Linear, not just in Slack/email.

linear_update_statusB

Updates the status of a Linear ticket. Lets the scheduler pick up a ticket manually marked Done.

linear_escalateB

Adds a manager as a watcher on the ticket with a supportive, context-rich comment explaining what was promised, what has been tried, and why it is being surfaced now.

simulate_days_passingA

Advances the internal clock by N days and runs one scheduler poll. This is the demo control that makes a week of chasing observable in seconds. In production the scheduler polls itself on a real interval (SCHEDULER_INTERVAL_MS) — this tool exists so the full open → nudge → escalate lifecycle can be shown live.

reset_demoA

Wipes the commitment store, ticket store, and resets the virtual clock to today. Use this to restart the demo scenario cleanly.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
Health ChecksCurrent health status of all registered health checks
Commitment DashboardUI component for Commitment Dashboard
Widget ExamplesProvides metadata and examples for all registered UI widgets

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ionfwsrijan/FollowThrough'

If you have feedback or need assistance with the MCP directory API, please join our Discord server