Skip to main content
Glama

Server Details

The OTTTA MCP server lets you manage your habit trackers. Add / create / update / delete groups, trackers and values.

The idea behind OTTTA is to make tracking very easy. The app is simple, you create groups, in the groups you put things to track on a daily basis and then it generates graphs.

You can log values to the trackers via the OTTTA website, via our API, our MCP of course and via the OTTTA Chrome Extension. Soon more ways will be available.

Ownership verified
Status
Healthy
Uptime
98.3% over 21 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation4/5

Most tools have a clearly distinct resource+action (get_account, get_group, list_trackers, list_shares). The main overlap is get_daily_values vs get_entries, which both return values for a tracker; the descriptions (per-day aggregation vs raw entries with date range) help distinguish them but an agent could still misselect.

Naming Consistency5/5

Every tool follows a clean verb_noun pattern with only get_* and list_* prefixes (get_account, get_entry..., get_tracker, list_groups, list_shares, list_trackers). The singular/plural distinction is used consistently and meaningfully.

Tool Count5/5

Eight tools is well-scoped for a tracker app, and each one targets a distinct entity or view (account, groups, trackers, entries, daily values, shares). No redundant or filler tools appear.

Completeness3/5

The surface is entirely read-only (all get_* and list_*), so for a tracker domain the obvious write operations (log an entry, create/update a tracker or group, create a share) are missing. It covers reading thoroughly, but agents cannot create or modify anything, which is a notable gap for the stated purpose.

Available Tools

8 tools
get_accountGet accountA
Read-only
Inspect

The user's email address, time zone and today's date in that time zone. Use it to turn "today" or "yesterday" into a date.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered and the description need not repeat it. The description usefully discloses the returned fields (email, time zone, current date), but adds nothing about auth requirements, caching, or freshness of the data. With annotations carrying the safety burden, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, no filler, and the returned content is front-loaded before the usage hint. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the returned fields, which is exactly what an agent needs. It could be slightly more complete by noting the date format returned, but for a zero-parameter read this is close to sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; the description correctly spends no space on nonexistent inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the exact resource contents (email address, time zone, today's date) so the agent knows precisely what 'account' means here. It does not open with a verb, but the noun phrase plus the tool name leaves no ambiguity. No sibling tool overlaps with account data, so differentiation is implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives a concrete trigger: 'Use it to turn "today" or "yesterday" into a date.' That is a clear when-to-use condition an agent can act on. It stops short of naming alternatives or exclusions, but no sibling offers the same time-zone/date resolution.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_daily_valuesGet daily valuesA
Read-only
Inspect

One value per day for the last N days up to today, like the chart. value is null before the first logged value; carried_from is set on days without a value of their own.

NameRequiredDescriptionDefault
daysNoNumber of days, up to and including today.
tracker_idYesThe id of the tracker, from list_trackers.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=false), and the description adds genuinely useful behavioral detail beyond them: value is null before the first logged value and carried_from marks days without their own value. With no output schema, this return-shape disclosure carries real weight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the cardinality ('one value per day') before the null/carry semantics. No filler, though the semicolon-joined second clause is dense and slightly harder to parse than separate sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with no output schema, the description covers the critical return semantics (daily granularity, null values, carried_from). It omits ordering, error behavior for an invalid tracker_id, and whether today's value can be partial, but nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (days, tracker_id) are already documented, including the 'up to and including today' semantics. The description's 'last N days up to today' restates the days parameter without adding format or edge-case detail, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the resource, granularity and scope explicitly: one value per day for the last N days up to today, tied to a tracker chart. It is clear what is returned and how it differs from raw entry data, though it never names the closest sibling get_entries, so an agent must infer that distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'like the chart' hints this is the charting/aggregation endpoint, but there is no explicit when-to-use, when-not, or named alternative to get_entries. With seven siblings, the description leaves the agent to infer selection on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_entriesGet logged valuesA
Read-only
Inspect

The values logged for a tracker, newest first, optionally between two days. has_more is true when there are more than limit.

NameRequiredDescriptionDefault
toNoLast day to include, YYYY-MM-DD.
fromNoFirst day to include, YYYY-MM-DD.
limitNo
tracker_idYesThe id of the tracker, from list_trackers.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=false), and the description adds genuinely new context: result ordering ('newest first') and pagination semantics ('has_more is true when there are more than limit'). It stops short of stating whether from/to are inclusive or how far back results go by default.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the resource and ordering, then the pagination flag. Every clause carries information an agent needs; nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully discloses the has_more field, which the agent could not otherwise know. Remaining gaps are modest for a simple read tool: inclusive/exclusive date semantics and whether a next-page call needs different parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%: from, to and tracker_id are documented in the schema, while limit has only bounds and a default with no prose. The description's 'between two days' and 'more than limit' hint at range and page-size semantics but add no format or edge-case detail, so it lands at the baseline for high-coverage schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the resource (values logged for a tracker) plus ordering ('newest first') and optional date scoping, which is more than a restated name. It does not, however, distinguish itself from close siblings like get_daily_values, so an agent must infer the difference between raw entries and aggregated daily values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'the values logged for a tracker, optionally between two days' tells the agent this is a per-tracker entry read with an optional range, but there is no when-to-use/when-not guidance and no mention of the alternative get_daily_values for aggregated views.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_groupGet groupB
Read-only
Inspect

One group with its name, color and the ids of its trackers.

NameRequiredDescriptionDefault
group_idYesThe id of the group, from list_groups.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds the return payload shape (name, color, tracker ids), which is useful, but says nothing about missing-group behavior or whether the tracker list is bounded.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; every word conveys content the agent needs (resource plus returned fields).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully sketches the return payload and annotations cover the safety profile. It is nearly complete for a simple one-param read, missing only edge-case behavior such as an invalid or nonexistent group_id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents group_id including its origin from list_groups. The description adds no parameter-level meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (a single group) and enumerates what it returns (name, color, tracker ids), which is a specific verb-and-resource statement. It does not explicitly contrast with the sibling list_groups, though 'One group' implies the singular counterpart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no alternative named; the agent must infer that this fetches a single group by id versus list_groups. Only the singular phrasing hints at the distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_trackerGet trackerB
Read-only
Inspect

One tracker with its settings and latest value.

NameRequiredDescriptionDefault
tracker_idYesThe id of the tracker, from list_trackers.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds a modest behavioral fact — that settings and the latest value are bundled into the result — but says nothing about error behavior for an invalid id or whether values are current/stale.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Eight words, single clause, front-loaded with the resource and payload; nothing is redundant. It is terse to the point of being thin rather than padded, which keeps it efficient but limits usefulness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with annotations covering safety and no output schema, the description conveys the essential return content, which is the main gap it needs to fill. Still, it omits failure modes and any sense of result shape, leaving it adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single parameter is documented there with provenance ('from list_trackers'). The description adds no format, range, or meaning beyond what the schema already supplies, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The fragment 'One tracker with its settings and latest value' states a specific resource (tracker) and scope (a single one, versus the sibling list_trackers), plus what the response contains. It is clear but never names an alternative or explicitly contrasts with list_trackers, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use statement, no prerequisite beyond the schema's own note that the id comes from list_trackers, and no guidance on what to do when the tracker is missing. Usage must be inferred entirely from the name and the required id parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_groupsList groupsA
Read-only
Inspect

All the user's groups (like Gym or Running), with the number and ids of the trackers in each. A tracker can be in several groups.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered structurally. The description adds genuinely useful context that each group carries the count and ids of contained trackers and that membership is many-to-many, but says nothing about ordering, pagination, or empty-result behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with what is returned and followed by the one non-obvious domain fact (many-to-many membership). No filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully compensates by describing the return shape (groups with tracker counts and ids). For a zero-parameter read tool this is nearly sufficient; only pagination/ordering and the list-vs-get distinction are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the schema or description to disambiguate; baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete resource (the user's groups) with illustrative examples (Gym, Running) and even previews the returned content. It is immediately clear what the tool returns, though it never distinguishes itself from the singular sibling get_group.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus get_group, nor any conditions, prerequisites, or exclusions. The listing intent is inferable from the name alone, but the description adds no routing guidance against its close sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sharesList share linksA
Read-only
Inspect

The share links that still work: for one tracker, or for all trackers. Each has the url, when it expires (null: never) and how many times it was opened.

NameRequiredDescriptionDefault
tracker_idNoOnly the links of this tracker, from list_trackers. Leave out for all trackers.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered, and the description adds real behavioral detail: it returns only links that still work and discloses the returned fields (url, expiry with null meaning never, open count). It omits pagination and any permission/auth notes, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the resource front-loaded and no filler. The colon-and-list formatting is dense but readable, and every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly carries the return-value burden by describing url, expiry, and open count. Scope and the single parameter are both addressed; only edge details like pagination or empty-result behavior are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With one parameter at 100% schema coverage, the schema already explains tracker_id and its 'leave out for all trackers' default. The description restates that same filter rule without adding format or source detail beyond the schema, so baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

It names the resource (share links) and constrains it to those that 'still work', plus the scope (one tracker or all). The verb is only implicit from the tool name rather than stated, but the description is unambiguous and no sibling overlaps with it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'for one tracker, or for all trackers' clause implies when to pass the filter, but there is no explicit when-to-use guidance or named alternative. With no competing sibling tools the omission is minor, leaving usage only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_trackersList trackersA
Read-only
Inspect

All the user's trackers with their id, type, unit, groups, goal and latest value. Optionally only one group. "group" is the tracker's own group (it decides the color); "groups" lists every group it's in.

NameRequiredDescriptionDefault
group_idNoOnly trackers in this group (also those with another own group); 0 for trackers in no group.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful context about returned fields and the distinction between "group" and "groups," but does not cover ordering, pagination, or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the main behavior front-loaded, followed by a compact clarification of group terminology. No wasted language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one optional parameter and no output schema, the description covers what is returned and how filtering works. Minor operational details like ordering or pagination are omitted but not essential here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the group_id parameter is already well documented in the schema. The description confirms the optional filtering behavior but adds no syntax or edge-case detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (all the user's trackers) and enumerates the returned fields, making the tool's purpose clear. It does not explicitly distinguish itself from the sibling get_tracker tool, which prevents a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions that filtering to one group is optional, giving implied usage for the group_id parameter. It does not explain when to use this tool versus get_tracker or other siblings, nor does it state exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updates
    • First observedget_account
    • First observedget_daily_values
    • First observedget_entries
    • First observedget_group
    • First observedget_tracker
    • First observedlist_groups
    • First observedlist_shares
    • First observedlist_trackers

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A standalone MCP server for managing habits and quit trackers through a jhabit instance. It enables users to list trackers, log entries, and retrieve detailed statistics like streaks and abstinence time.
    -
  • A
    license
    B
    quality
    D
    maintenance
    MCP server for the Hevy workout tracker API that allows reading and writing workouts, routines, exercise templates, and body measurements.
    22
    11 npm
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources