add_counter_entry
ChatGPTAdd a positive amount to a counter habit's existing total for today. This is additive: it preserves the current total and creates an individual entry with an optional note. Use idempotencyKey when a request may be retried.
add_habit
ChatGPTCreate one recurring habit in the connected user's Momentum account. Use an idempotency key so retries do not create duplicates. To add it to an existing routine, pass that routine's id as routineId — list_routines finds it.
add_routine
ChatGPTCreate a named grouping of habits (e.g. "Morning Routine") in the connected user's Momentum account. Use an idempotency key so retries do not create duplicates. After creating it, add habits to it with add_habit's routineId.
add_task
ChatGPTCreate one task in the connected user's Momentum account. Use an idempotency key so retries do not create duplicates.
apply_personal_program_revision
ChatGPTApply the exact confirmed, future-only revision. Stale base revisions, changed hashes, and idempotency-key reuse are rejected.
clear_habit_today
ChatGPTPermanently remove today's log for a habit selected by habitId or exact habitName. Call only after explicit user confirmation.
create_personal_program
ChatGPTSave the exact validated canonical draft for free after explicit user confirmation. This does not start or schedule the program; the user reviews it and taps Start my program in Momentum, where Pro or an eligible free trial is required. Reuse idempotencyKey for retries and never alter the confirmed contentHash.
delete_habit
ChatGPTPermanently delete a habit selected by habitId or exact habitName and all its log history. Call only after explicit user confirmation.
delete_personal_program
ChatGPTPermanently delete one personal attempt after explicit confirmation; optionally delete its definition only when no attempts remain.
delete_routine
ChatGPTPermanently delete a routine. By default its habits are preserved and unassigned; habitPolicy=delete also permanently deletes those habits and logs. Call only after explicit confirmation.
delete_task
ChatGPTPermanently delete one task. Call only after the user explicitly confirms deletion.
find_peers
ChatGPTThe closest competitors of one company, by its key from search_companies: the same business model, ranked by closeness. Returns each peer's industry and month-average multiples (EV/EBITDA, EV/Revenue, P/E, P/BV) where listed; the order is closeness. Capped at 25. For the value those multiples imply for the company, use get_valuation.
get_cohort_fingerprint
ChatGPTHow an industry is built: the medians of margins and leverage over the members of a company's market, or the distributions of a screened set. Pass company (its key from search_companies) for the company's market, or the cohort token from screen_companies for the screened companies.
get_company
ChatGPTIdentity, market and the latest headline financials for one company, by its key from search_companies. Use for a quick profile; get_financials for the statements, find_peers for the competitors, get_valuation for the multiples.
get_financials
ChatGPTFinancial statements and ratios for one company, by its key from search_companies. Default detail:"summary" returns the per-year ratio series + headline section totals (revenue, profit, assets, equity); detail:"full" returns the complete balance sheet / P&L / cash-flow line items. basis:"normalized" (default, for analytics) vs "as_reported" (the issuer's filing) differ only for listed ESEF issuers.
get_habit_today
ChatGPTRead today's stored log for a habit selected by habitId or exact habitName. The result includes the daily value and completion plus type-specific data: counter/timer/slider/activity individual entries, checklist selections, journal/text reflections, commitment outcome, and lesson responses. Use this after list_habits whenever the user asks what was logged or today's progress.
get_personal_program
ChatGPTGet one connected-user-owned definition, its current canonical revision, hash, and attempt summaries.
get_program_authoring_capabilities
ChatGPTCheck whether free personal-program drafting is enabled, whether Pro is active for later execution, and whether the installed Momentum client supports every schema, habit, and lesson type.
get_valuation
ChatGPTThe company's relative valuation from listed comparables with the same business model (the Valuation tab): each comparable's month-average multiples (EV/Revenue, EV/EBITDA, P/E, P/BV) and margins, the medians and ranges, and the enterprise and equity value those medians imply for the company from its own revenue, EBITDA, earnings and book. Works for private companies: this is how a private company gets a multiple. By the company's key from search_companies. Momentum shows no share prices, market caps or EVs of the comparables.
import_habit_history
ChatGPTBulk import up to 200 past daily snapshots for one existing habit. The server reads the habit type and validates each record accordingly: checkbox uses completed; counter/timer use the full daily total in value; rating/slider/measurement use value; checklist uses checklistItemsToComplete as the complete item set for that day; journal uses reflection; activity uses durationMinutes; commitment uses outcome. For complex habit history where the source only reports whether the day was complete, send completed without invented detail; Momentum marks that record as summary-only. Existing daily logs are always preserved and skipped. Dates must be before today, duplicate dates are rejected, the batch is atomic, and idempotencyKey must be reused on retries. Call only after showing the user the habit, date range, record count, and expected level of detail and receiving explicit confirmation.
list_habits
ChatGPTList the connected user's habit definitions, IDs, tracking types, schedules, targets, and streaks, optionally filtered to one routine. This does not return daily logs; when the user asks about today's progress or recorded entries, call get_habit_today for the relevant habits.
list_personal_programs
ChatGPTList only the connected user's private personal-program definitions and attempts.
list_routines
ChatGPTList the connected user's routines (named groupings of habits).
list_saved_screens
ChatGPTFor each screen the user saved in Momentum (the twelve most recently updated): the companies it currently matches, newly entered ones first and flagged, with revenue, net margin, net debt to EBITDA and market. Facts only, no ranking. Needs the user's own connection, not a shared team key.
list_tasks
ChatGPTList tasks scheduled for a calendar date, including incomplete rollover tasks from earlier dates.
log_habit_today
ChatGPTRecord today's value for a habit selected by habitId or exact habitName. For counter and timer, value is a positive increment added to today's cumulative total and stored as an individual entry with its optional note. For rating and measurement, value replaces today's recorded value; slider stores the latest value plus each check-in. For checklist, use checklistItemsToComplete/checklistItemsToClear so existing item state is preserved. Use reflection for journal; durationMinutes and optional isOutdoors for activity; outcome for commitment; and completed/reflection for checkbox, text_note, or slide_lesson. Rating, slider, checklist, journal, measurement, activity, and commitment completion is calculated from the structured data and rejects completed overrides. Photo check-ins must be completed in the Momentum app because MCP cannot attach the required device-local photo. Use idempotencyKey for additive counter, timer, slider, and activity entries. Read the resulting log with get_habit_today.
preview_personal_program_revision
ChatGPTValidate a future-only revision and return its exact hash and change summary without writing.
screen_companies
ChatGPTFind the companies matching a thesis, with private CEE financials, as a neutral table ordered by a column you choose. Natural language (e.g. "Polish software companies, EBITDA margin >20%") or a refined cohort from a prior result. You define the thesis (criteria + sort) and judge the results - there is no imposed fit score. Every row carries its ownership class (family_owned, individual_owned, corporate_subsidiary, held_by_unidentified, pe_owned, state_owned, fund_held, …), so filter on that rather than inferring independence from the company name; a blank means Momentum has no classification, not that the company is independent. family_owned is a HISTORICAL ID meaning 'two or more natural persons hold all registered stakes' - it does NOT mean the shareholders are related, and no relationship data exists; describe it as privately held by N individuals. individual_owned is the same with one person. pe_owned/vc_owned require a CURATED sponsor identity, so their absence means we have not attributed a sponsor, not that none exists. no_controlling_holder means the registered table reconciles and nobody holds more than half; a PE or VC investor at a minority stake is the separate BACKING axis (hasFinancialInvestor), not the control class. Default order is revenue desc unless the sentence states an order; a sentence about a kind of business ("software companies") lists the strongest matches first and applies the order inside each match band, so for a strict order by a column read every page and sort them yourself. Deep-page with pagination.nextCursor. Each page costs one query. A sentence about investors, advisors, deals or markets answers with rows of that kind (entityKind), an investors answer with why per row.
search_companies
ChatGPTResolve a company name, KRS number or ticker. Returns up to 25 matches, each with its key (company: the KRS number, or the ticker if listed) to pass to the other tools, and its Momentum page. Use this first to name a company.
set_habit_archived
ChatGPTArchive or restore a habit selected by habitId or exact habitName without deleting its history.
set_routine_archived
ChatGPTArchive or restore a routine and its currently assigned habits without deleting history.
set_task_completion
ChatGPTMark an existing Momentum task complete or incomplete.
update_habit
ChatGPTChange an existing habit selected by habitId or exact habitName. Names must be unique; use habitId when duplicate names exist.
update_routine
ChatGPTChange an existing routine's name, emoji, color, or description.
update_task
ChatGPTChange the text, due date, rollover behavior, tag, or notes of an existing task.
validate_personal_program
ChatGPTValidate, safety-check, canonicalize, and hash a draft without writing anything. Show the warnings and exact canonical draft to the user before creation.
confirm_task
Claudeget_momentum_profile
Claudelist_tasks
Claudepropose_task
Claude