Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
COACH_DB_PATHNoThe path to the SQLite database file. By default, Coach AI stores data in data/coach.db.data/coach.db

Capabilities

Features and capabilities supported by this server

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

Tools

Functions exposed to the LLM to take actions

NameDescription
add_todoA

Add todo(s) with enhanced temporal and context fields.

SINGLE MODE: Provide title and optional parameters BATCH MODE: Provide todos_batch as JSON string

New fields for temporal planning:

  • timeframe: When to work on task (this_week, next_sprint, this_month, this_quarter, someday)

  • energy_required: Energy level needed (high, medium, low)

  • theme_tag: Type of work (sprint_work, strategic, admin, learning)

  • linked_goal_id: Link to a goal

  • blocked_by: What's blocking this task

Auto-categorization (both modes):

  • Theme tags from keywords (sprint/strategic/admin/learning)

  • Time estimates from notes ("30min", "2h")

  • Quick win detection (<= 30min)

  • Timeframe suggestions from keywords + priority

  • Energy level suggestions from keywords

Batch mode example (JSON string):

[
    {"title": "Smoke test GPU endpoints", "priority": "high", "timeframe": "this_week"},
    {"title": "Review platform architecture", "priority": "medium"},
    {"title": "Update ADO board", "quick": true}
]

Args: title: Task title (required for single mode) priority: Priority level - 'low', 'medium', or 'high' notes: Additional notes or context quick: Mark as quick win timeframe: When to do this (this_week, next_sprint, this_month, this_quarter, someday) energy_required: Energy level (high, medium, low) theme_tag: Work type (sprint_work, strategic, admin, learning) linked_goal_id: ID of related goal blocked_by: What's blocking this todos_batch: JSON string of todos for batch mode

list_todosB

List todos filtered by status.

Args: status: Filter by 'active', 'completed', or 'all' (default: 'active')

complete_todoB

Mark a todo as complete.

Args: todo_id: The ID of the todo to complete

delete_todoB

Delete a todo permanently.

Args: todo_id: The ID of the todo to delete

parse_task_listA

Parse natural language task list into structured todos (does NOT create them).

Use this to preview what will be created before committing. Then use add_todo(todos_batch=...) to create them.

Or use brain_dump_tasks() for a one-step workflow.

Supports multiple formats:

  • Bullet points: "- Task 1"

  • Numbered lists: "1. Task 2"

  • Checkboxes: "[ ] Task 3"

  • Section headers: "Sprint work:\n- Task 4"

Smart extraction:

  • Priority: "#high", "URGENT:", "!!"

  • Timeframe: "this week", "(this month)", "someday"

  • Time: "(30min)", "~2h"

  • Energy: "[high energy]", "[low effort]"

  • Theme: "#sprint", "@admin"

Args: text: Natural language task list default_priority: Default priority for tasks default_timeframe: Default timeframe for tasks

Returns: JSON string of parsed todos

brain_dump_tasksA

ADHD-friendly brain dump: paste a list of tasks and get them into the system.

Workflow:

  1. Parse natural language task list

  2. Optionally create all todos in batch

  3. Return summary with suggestions

Supports multiple formats:

  • Bullet points: "- Task 1"

  • Numbered lists: "1. Task 2"

  • Checkboxes: "[ ] Task 3"

  • Section headers: "Sprint work:\n- Task 4"

Smart extraction:

  • Priority: "#high", "URGENT:", "!!"

  • Timeframe: "this week", "(this month)", "someday"

  • Time: "(30min)", "~2h"

  • Energy: "[high energy]", "[low effort]"

  • Theme: "#sprint", "@admin"

Example:

brain_dump_tasks('''
Sprint work (due 11/18):
- URGENT: Smoke test GPU endpoints (2h)
- Deploy to UTest environment

Strategic (this month):
- Draft platform pitch outline (30min) [low effort]
- Research Platform One examples

Quick wins:
- Check ADO board
- Reply to emails
''')

Args: text: Natural language task list auto_create: Create todos immediately (default: True) default_priority: Default priority for unparsed tasks default_timeframe: Default timeframe for unparsed tasks

Returns: Summary of created tasks with suggestions

set_todo_timeframeB

Assign temporal timeframe to a todo.

Args: todo_id: ID of the todo timeframe: One of: this_week, next_sprint, this_month, this_quarter, someday reason: Optional reason for this timeframe

Returns: Confirmation message

batch_assign_timeframesA

Bulk assign timeframes to multiple todos (for weekly planning).

Args: assignments_json: JSON array of {todo_id, timeframe} objects

Example:

[
    {"todo_id": 10, "timeframe": "this_week"},
    {"todo_id": 15, "timeframe": "next_sprint"},
    {"todo_id": 20, "timeframe": "someday"}
]

Returns: Summary of updates

add_task_contextB

Add context note to task (where left off, why doing it, etc).

Args: todo_id: ID of the todo context: Context note to add context_type: Type of context (progress, why, blocker, link)

Returns: Confirmation message

break_down_taskA

Use LLM to decompose large task into smaller subtasks.

This returns a prompt for Claude to generate subtasks. After Claude responds, call this tool again with the response to create the subtasks in the database.

Workflow:

  1. Call break_down_task(todo_id=X) -> Returns prompt

  2. Send prompt to Claude

  3. Claude returns JSON with subtasks

  4. Subtasks are automatically created in database

Args: todo_id: ID of the task to break down subtask_count: Target number of subtasks (default: 5)

Returns: Prompt for Claude to generate subtasks, or confirmation if creating them

set_goalB

Set a new goal.

Args: goal: The goal description timeframe: When you want to achieve this (e.g., 'this week', 'this month', 'long-term') category: Category of the goal (e.g., 'career', 'health', 'personal', 'general')

list_goalsB

List all goals.

Args: status: Filter by 'active' or 'all' (default: 'active')

add_user_factB

Remember an important fact about the user.

Use this to remember preferences, patterns, challenges, strengths, routines, etc. These facts help personalize recommendations and support.

Args: fact: The fact to remember (e.g., "Works best in mornings", "Struggles with context switching") category: Category - 'preferences', 'challenges', 'strengths', 'patterns', 'routines', or 'general'

get_user_contextB

Get relevant context about the user (facts, patterns, preferences).

This retrieves stored facts about the user to help personalize responses.

log_accomplishmentB

Log something the user accomplished.

This helps track progress and provides positive reinforcement.

Args: description: What the user accomplished

get_recommendationA

Get a personalized recommendation for what to do next.

This analyzes the user's current todos, goals, recent activity, and known facts to suggest the most appropriate next action. This is the core "What should I do now?" feature designed to help with decision paralysis.

start_my_dayA

Start your day with smart task selection and daily note creation.

ENHANCED - Obsidian-first workflow:

  • Syncs yesterday's completed tasks from daily note

  • Intelligently selects 3-5 tasks from backlog using deterministic algorithm

  • Creates today's daily note with selected tasks organized by priority

  • Returns comprehensive briefing for the day

Selection algorithm picks:

  • 1 critical task (deadlines or highest priority)

  • 1-2 important tasks (high-impact work)

  • 2-3 quick wins (low-effort, high-dopamine)

Perfect for: "Start my day" or "What should I focus on today?"

Args: date_str: Optional date in YYYY-MM-DD format (defaults to today)

Returns: Daily briefing with selected tasks, goals, and motivational message

sync_daily_noteA

Sync completed tasks from Obsidian daily note to database.

NEW TOOL - Bidirectional sync: Reads markdown checkboxes (- [x]) from your daily note and automatically marks matching todos as complete in the database. Uses fuzzy matching to handle partial text matches.

This enables an Obsidian-first workflow: work in your daily note, check off tasks there, then sync back to Coach AI's database.

Args: date_str: Optional date in YYYY-MM-DD format (defaults to today)

Returns: Summary of tasks synced and any warnings about unmatched checkboxes

create_daily_noteA

Create today's (or specified) daily note with smart population.

Automatically pulls in:

  • Incomplete tasks from yesterday

  • Tasks related to active goals

  • A "quick win" task for low-motivation days

  • Context and insights

Args: date_str: Optional date in YYYY-MM-DD format (defaults to today)

sync_from_daily_noteA

Read today's (or specified) daily note and sync tasks.

Extracts tasks from your daily note and ensures they're in the system. Call this to refresh Coach AI's view of your daily note.

Args: date_str: Optional date in YYYY-MM-DD format (defaults to today)

get_daily_note_pathA

Get the file path to today's (or specified) daily note.

Useful for opening the note in Obsidian or checking if it exists.

Args: date_str: Optional date in YYYY-MM-DD format (defaults to today)

read_daily_note_fullA

Read the entire daily note including all content and sections.

This gives you complete access to the note for analysis, summarization, or extracting information from any section.

Args: date_str: Optional date in YYYY-MM-DD format (defaults to today)

Returns: Full note content with metadata and all sections

read_daily_note_sectionA

Read a specific section from the daily note.

Use this to read any section by name, such as "Notes", "Tasks", "Focus for Today", etc.

Args: date_str: Optional date in YYYY-MM-DD format (defaults to today) section: Name of the section to read (without ## or emoji)

Returns: Content of that section

write_daily_note_sectionA

Write or append content to a specific section in the daily note.

Use this to add summaries, insights, reflections, or any other content to specific sections of your daily note.

Args: section: Name of the section to write to (e.g., "Notes", "Coach AI Insights") content: Content to write date_str: Optional date in YYYY-MM-DD format (defaults to today) append: If True, append to existing content. If False, replace it.

Returns: Confirmation message

add_daily_note_sectionB

Add a new section to the daily note.

Creates a new section with a heading and initial content.

Args: section_name: Name for the new section content: Initial content for the section date_str: Optional date in YYYY-MM-DD format (defaults to today) emoji: Optional emoji to prefix the section heading (e.g., "📊", "💡")

Returns: Confirmation message

generate_daily_summaryA

Generate an end-of-day summary based on the daily note.

Analyzes the day's tasks, accomplishments, notes, and provides insights. This summary can be added back to the daily note or used to plan tomorrow.

Args: date_str: Optional date in YYYY-MM-DD format (defaults to today)

Returns: Generated summary with insights and recommendations

start_my_weekA

Weekly planning ritual: review last week, plan this week.

Provides a structured weekly planning session with:

  • Last week's completion summary

  • Strategic vs sprint work breakdown

  • This week's suggested focus items

  • Tasks needing timeframe assignment

  • Suggested theme for each day of the week

Perfect for: "Plan my week" or "Weekly review"

Args: week_start_date_str: Optional Monday date in YYYY-MM-DD format (defaults to next Monday)

Returns: Comprehensive weekly planning summary

set_week_themeA

Configure work themes for each day of the week.

Sets which type of work to focus on each day (e.g., "Fridays = strategic work"). This influences task selection in start_my_day().

Args: week_start_date_str: Monday date in YYYY-MM-DD format themes_json: JSON object with day themes, e.g.: {"monday": "sprint_work", "friday": "strategic"} focus_todo_ids: Optional comma-separated todo IDs to focus on this week

Returns: Confirmation message

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/94aharris/coach-ai'

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