Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
system_statusA

Return Alfred's non-sensitive local health and schema status.

agenda_getA

Return Alfred's deterministic local task agenda with freshness.

memory_searchA

Search local memory anchors and their one-hop active graph context.

profile_getA

Return the local owner node and current, evidence-backed profile relationships.

rememberC

Store a confirmed local memory; the calling client is recorded as actor.

memory_correctA

Correct one recalled memory while preserving its superseded history and evidence.

memory_feedbackB

Record whether a recalled memory was relevant, irrelevant, or incorrect.

forgetA

Preview deleting one memory; nothing is deleted until action_commit confirms it.

Decision 8 classifies deleting data as strong-confirm, never unattended, so an MCP client -- which can call tools without a human watching in the moment -- cannot delete in a single call.

calendar_event_proposeA

Preview a calendar event write; nothing reaches Google until action_commit confirms it.

start and end must be ISO 8601 timestamps, not phrases. The owner says "tomorrow from 10:30 am"; resolve that against the current time given above and pass 2026-08-20T10:30:00-04:00.

calendar_id accepts the name the owner uses -- "family car", "Dunlap Family" -- as well as a real Google id. Pass whatever calendar they named; it is resolved here, and an unknown or ambiguous name comes back as an error listing the writable calendars rather than guessing.

message_draftA

Preview a Gmail draft; nothing reaches Gmail until a human confirms it.

message_send_proposeA

Preview sending Gmail. Telegram attaches approve/cancel; do not paste the letter in chat.

github_issue_proposeA

Preview a GitHub issue creation; nothing reaches GitHub until action_commit confirms it.

composio_searchA

Find overflow-app tools on Composio's free tier (Notion, Spotify, Linear, …).

Do not use this for Gmail, Calendar, GitHub, Slack, Telegram, or Fitbit — those are first-party Alfred connectors. Returns slugs, whether they write, and required argument names. Then call composio_execute with a slug.

composio_statusA

Show Composio connected accounts and this UTC month's free-tier usage.

composio_connectA

Return a Composio Connect Link so the owner can sign into an overflow app.

Open the URL, finish sign-in, then retry the original request. Not for Gmail/Calendar/GitHub/Slack/Telegram/Fitbit.

composio_executeA

Run a Composio read now, or preview a write for Telegram approval.

arguments_json is a JSON object matching the tool's input fields from composio_search. Writes return needs_approval; never call action_commit.

action_commitB

Consume a fresh approval token and perform the action it previewed.

brief_getA

Render the deterministic local morning brief on demand, not just on schedule.

threads_awaiting_replyA

List unread Gmail threads that look like they need a reply.

Groups active unread mail by thread_id and drops messages that carry a List-Unsubscribe header (newsletters Gmail often labels PERSONAL). Run alfred gmail-thread-backfill once if older rows are missing thread_id / list_unsubscribe.

availability_getA

Find free gaps in the synced Google Calendar over the next few days.

Timed events block the day; all-day events are listed as ambiguous context rather than busy hours. Overlapping meetings merge before gaps are computed. timezone is an IANA name; default working hours are 09:00–17:00 local.

pull_requests_getA

List open GitHub pull requests you authored or were asked to review.

Fetches a live snapshot via GitHub search (not notifications sync), marks PRs stale when updated_at is older than stale_after_days.

connector_statusA

Report each connector's health; never its credentials or synced content.

connector_records_getA

Return one connector's currently-active synced records, most recently observed first.

brief_get/agenda_get already fold calendar events, GitHub notifications, and Canvas missing assignments into one ranked digest, but nothing else exposes a connector's raw synced content directly -- for example gmail-sync's unread-message records (subject/from/snippet) never reach an MCP caller otherwise. This reads the same connector_records table every sync already writes to (ConnectorRecordStore), so it needs no new storage or sync logic.

task_upsertA

Create a task, or update an existing one's title/due date when task_id is given.

Decision 8 classifies this as automatic and reversible, unlike deletion, so it needs no approval step.

task_completeA

Mark an open task completed; completing an already-completed task is a no-op.

reminder_setA

Schedule a Telegram reminder; chat_id must already be locally paired to receive it.

Alfred's only delivery channel today is Telegram, so the caller must say which paired chat this goes to -- there is no channel-agnostic queue to defer that choice to. When Hermes is answering an inbound Telegram turn, chat_id may be omitted and is read from ALFRED_TELEGRAM_CHAT_ID.

daily repeats at the same local wall-clock time (wake-up, bedtime, study lock-in). When daily is true, timezone must be an IANA name such as America/New_York so the hour survives a daylight-saving change.

nag_until_doneA

Repeat a reminder until the linked task is completed or attempts run out.

Each firing re-reads task state, so completing the task anywhere silences future nags. The final attempt is labeled explicitly as the last reminder.

important_date_setA

Remember a birthday or other annual date and remind on that day each year.

Stored as an ordinary task (next occurrence as due_at) plus an annual reminder job — not a separate calendar. The morning brief and weekly window surface dates in the next seven days under Birthdays & dates. timezone is an IANA name so the local morning of the date survives daylight saving. year is optional and only used to say "turns N".

important_dates_getA

List upcoming birthdays and important dates inside the weekly window.

Defaults to seven days so a "what's coming up this week" question and the morning brief share the same horizon. Pass a larger window to look further ahead; pass 0 for only dates still later today.

mood_recordA

Record a 1–5 mood check-in with an optional short note.

Stored separately from habits: mood tracks how things felt, not whether a behavior happened. Use journal_get to review recent entries and whether a trend can be named.

gratitude_recordA

Append a free-text gratitude journal entry.

journal_getA

Return recent mood check-ins, gratitude entries, and mood trend.

Trend direction is only named when there are at least five days with mood check-ins and the older/newer daily averages differ by at least 0.5 on the 1–5 scale; otherwise mood_trend.reason explains the refusal so a null direction does not read as "no change".

task_scheduleA

Run an instruction later and send the answer to a paired chat.

Use this, not a reminder, when the user wants something done at a time rather than something said: "check the order at 3 and text me" has no message to deliver yet, because the answer does not exist until the work runs. A reminder would just hand the task back to them.

When it comes due the instruction is queued as an ordinary agent turn, so the reply arrives looking exactly like any other answer. Never schedule this kind of work in your own runtime's cron: Alfred owns schedules and delivery here, and a job elsewhere silently never fires.

run_at is ISO-8601 with an offset. daily repeats it, and then timezone must be an IANA name (America/New_York) so the task keeps its local hour across a daylight-saving change. When Hermes is answering an inbound Telegram turn, chat_id may be omitted and is read from ALFRED_TELEGRAM_CHAT_ID.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources