self_attest
Record a person's OWN words about their study — a DISTINCTLY TYPED record that can NEVER count as a sealed check or satisfy an auto-graded requirement.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| study | No | ||
| statement | Yes | ||
| subject_id | Yes |
Record a person's OWN words about their study — a DISTINCTLY TYPED record that can NEVER count as a sealed check or satisfy an auto-graded requirement.
| Name | Required | Description | Default |
|---|---|---|---|
| study | No | ||
| statement | Yes | ||
| subject_id | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does convey a key behavioral trait: the record is distinctly typed and will never be treated as a sealed check or auto-graded. However, it does not mention permissions, persistence, return values, or potential side effects, leaving several important aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose and immediately adds a critical constraint. Every word contributes to understanding the tool's unique role, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (3 params, no output schema, no annotations), the description covers the core purpose and a key disambiguating constraint. However, it lacks details on return values, failure modes, and the relationship to sibling attestation tools, which are important for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that 'statement' holds the person's own words and 'study' is the subject, but it does not explicitly define each parameter or explain the meaning of 'subject_id' beyond what the name implies. The description adds some semantic context but not full parameter-level detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Record a person's OWN words about their study.' It also distinguishes the record type by emphasizing it can 'NEVER count as a sealed check or satisfy an auto-graded requirement,' which sets it apart from other attestation tools. However, it does not explicitly name a sibling tool or describe the exact purpose beyond self-attestation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The warning that this record can never serve as a sealed check or auto-graded requirement implies when not to use it, but there is no explicit guidance on when to use it or which sibling tool to choose instead. The use case is partially implicit: record unsealed self-reported study words, but no direct comparison to alternatives like 'attest_record'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Several tools are near-duplicates: read_passage and resolve both fetch WEB text for a reference; word_study already includes every occurrence that word_occurrences returns; coach_next and coach_recommend both answer 'what's next.' Search/locate/cards_browse also overlap as discovery entry points, making tool selection ambiguous despite detailed descriptions.
Most names follow an object_verb snake_case pattern (cards_browse, study_create, seal_fetch), but there are many bare verbs/nouns (ask, audit, resolve, verify, canon, harmony) and inconsistent singular/plural pairs (card_get vs cards_browse, group_create vs groups_list, want_open vs wants_list). No camelCase, but the convention is not uniform.
86 tools is an extreme count for any single MCP server, far beyond the 3-15 well-scoped range; even a broad platform would be hard for an agent to navigate. Many tools belong to unrelated subdomains (coach, steward, mesh, calendar), making the surface unwieldy.
The want/offer flow has no accept/close tool, so an agent can open a want and offer a source but never see it resolved. Group and calendar coverage are one-directional (create/join only; no leave/delete/list/update), and there is no badge listing or way to update a study group. Core reading/verification/shelf flows are solid, but lifecycle gaps remain.