1lev1
Server Details
Track partnership work, log mission hours, and see what needs your approval on 1lev1.com.
- Status
- Healthy
- Uptime
- 69.9% over 63 days
- OAuth
- Requires browser extension
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Avi-ADAM/1lev1-mcp
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 74 tools
Most tools target distinct resource+action pairs, but several families overlap semantically — the six assistant tools (start/get/set/revise/apply/undo), multiple rikma-creation entry points (createProject, proposeRikmaBlueprint, prepareForSomeoneElse, prepareSignup), and mission retrieval tools (findMission, getMissionDetails, listUserMissions, getMissionStats). Descriptions give explicit guidance, but an agent can still misselect without careful reading.
Nearly all 74 tools follow camelCase verb_noun + 'Tool' (listRikmaProductsTool, getProjectMembersTool), with only minor deviations like getPlatformInfo, prepareSignup, and timerActionTool. Retrieval verbs vary (find/get/list/search) but the overall pattern is readable and predictable.
74 tools far exceeds the ideal 3-15 range and is likely to overwhelm an agent's tool-selection; even for a broad platform, families like the six assistant tools and multiple preparation tools could be consolidated. The count is not arbitrary, but it is excessive.
The surface covers a huge domain (projects, missions, shop, orders, shipping, leads, wishes, conversations, assistant, timers, uploads) with many create/read operations. However, notable gaps remain: no tool to update project metadata, task status, or lead stage/owner/next-step, and destructive/updating operations are often deferred to the site. Core workflows are usable but not fully closed.
Available Tools
74 toolsapplyAssistantToolCDestructiveInspect
Save a list: a PROFILE is saved to their profile right away (what they set aside leaves it; resources are only added). A WISH: its own rows are saved - a draft stays a draft (publishing is theirs, on the site: siteUrl), and rows a supplier already answered are never changed here. A RIKMA is never created here - you get the reviewUrl to give them. Docs: https://1lev1.com/mcp#applyAssistantTool
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | ||
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations covering the safety profile (destructiveHint=true, non-idempotent, closed-world), the description adds real behavioral context: PROFILE entries persist immediately with resources only added, WISH drafts stay drafts unless published on the site, supplier-answered rows are protected, and RIKMA yields a reviewUrl rather than being created. It omits concurrency behavior for expectedVersion and any error/conflict semantics, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single dense paragraph with the core action front-loaded, but the nested parentheticals and domain jargon ('what they set aside leaves it') make it harder to parse than necessary, and some clauses do not clearly map to an agent action.
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?
For a destructive mutation with no output schema and fully undocumented parameters, the description covers entity-type outcomes but says nothing about return values, error handling, or what expectedVersion guards against. It is adequate on the 'what happens' axis and thin on the 'how to call it correctly' axis.
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 coverage is 0% and the description never explains sessionId or expectedVersion. The URLs mentioned (siteUrl, reviewUrl) are not parameters of this tool, so the description contributes nothing to parameter meaning even though both required parameters are opaque.
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 states a verb and resource ('Save a list') and then layers in entity-specific behavior for PROFILE, WISH, and RIKMA, which is more than a bare tautology. However, it never says the list is the assistant's staged items or connects to the start/revise/apply workflow implied by siblings like startAssistantTool and reviseAssistantTool, so the agent must infer the tool's role in the session lifecycle.
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?
There is a partial when-not clause ('A RIKMA is never created here', supplier-answered rows are never changed here), but no positive statement of when this tool should be preferred over siblings such as setAssistantItemsTool or undoAssistantTool. The agent gets no trigger condition for invoking it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archiveRikmaProductToolADestructiveInspect
Archive (soft-delete) a personal product (origin=personal) you own. Removing a product that belongs to the rikma is a consent flow (proposeObjectArchive — members approve, silence approves at restime), so for those this tool returns the moach link instead of archiving. An archived product stays reachable at /gift/[id] for old orders and sales but vanishes from /gift and the storefront catalog. Never a hard delete — history matters. Unarchiving is done in the moach. Docs: https://1lev1.com/mcp#archiveRikmaProductTool
| Name | Required | Description | Default |
|---|---|---|---|
| archived | Yes | true = archive. false (unarchive) is not done here — the tool returns the moach link. | |
| productId | Yes | Matanot id. | |
| projectId | Yes | Rikma id the product is listed in. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false, and the description adds substantial context beyond them: it is a soft-delete, the product stays reachable at /gift/[id] for historical orders but disappears from /gift and the storefront catalog, it is never a hard delete, and the rikma path returns a moach link rather than archiving.
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?
Front-loads the core purpose and keeps each sentence functional, but is dense with internal jargon (rikma, moach, restime, Matanot) and packs the sibling-routing, location behavior, and unarchive note into a compact block that a first-time agent must parse carefully.
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?
For a soft-delete tool with no output schema, the description covers ownership prerequisites, the consent-flow divergence, what persists vs vanishes, irreversibility of the delete, and where unarchiving happens – everything needed to call 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 coverage is 100%, so the schema already documents all three parameters, including the archived=true/false semantics and the moach-link return for false. The description largely echoes that behavior without adding syntax or constraints the schema lacks, so the baseline 3 applies.
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?
States a specific verb (archive/soft-delete) and resource (a personal product with origin=personal you own), and immediately distinguishes it from updateRikmaProductTool, getRikmaProductTool, and createRikmaProductTool by scoping it to personal products rather than the rikma flow.
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?
Explicitly says when to use it (personal products you own) and when not (rikma products, which route through the proposeObjectArchive consent flow and return a moach link instead), and further tells the agent that unarchiving happens in the moach, not here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attachToProcessToolAInspect
Attach an existing object - an open mission, an open resource, a mission in progress, or a mission/resource still being voted on - to a process, so what the rikma is pursuing and what it is actually doing about it stay connected. It does not create the object: create it first (prepareMissionTool, createTaskTool, or the URL the tool returns), then attach it. Docs: https://1lev1.com/mcp#attachToProcessTool
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Its name, for the process timeline. | |
| entityId | Yes | Id of that object. | |
| processId | Yes | Process id, from listRikmaProcesses or startProcess. | |
| projectId | Yes | Rikma (project) id. | |
| entityType | Yes | What kind of object is being attached. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and non-idempotent/non-destructive, so safety is covered. The description adds genuine behavioral context by clarifying this only links pre-existing objects and requires a prior create step, which is not derivable from annotations or schema.
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?
Two sentences plus a docs link; the core action is front-loaded and the create-first caveat is placed immediately after. The 'so what the rikma is pursuing and what it is actually doing about it stay connected' clause is rhetorical padding, but overall it is tight.
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?
For a five-parameter mutation with no output schema but full annotation coverage, the description supplies the prerequisite workflow and object scope an agent needs. It omits expected behavior on repeated attaches (relevant given idempotentHint=false), which keeps it short of full completeness.
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 100%, so all five parameters are already documented in the schema. The description loosely maps its prose to the entityType enum values but adds no format, id-sourcing, or naming detail beyond what the schema provides; baseline 3 applies.
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?
States a concrete verb (attach) and resource (an existing object to a process), and enumerates the object kinds it accepts (open mission, open resource, mission in progress, voted-on mission/resource). This lets an agent separate it from creation-oriented siblings, though the jargon ('rikma') adds noise rather than precision.
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?
Explicitly gives the precondition ('It does not create the object: create it first') and names the alternative paths (prepareMissionTool, createTaskTool, or the URL the tool returns). Clear context for use; no explicit when-not condition, but the create-vs-attach split covers the main ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createPlanBoardToolAInspect
Create a planning board from rows YOU already structured. Use this when the conversation already holds the breakdown - decisions, scope, a task list: your rows are saved as written, with no second model rewriting or dropping them. Nothing is created - every row is a proposal the user approves in the real creation form at the returned reviewUrl. Every row needs a name AND a descrip; rows without one are not saved and come back in rejected. Use planProjectWorkTool instead when the user only has a loose idea in free text. Requires a projectId. On failure, error.retryable says whether calling again can help. Docs: https://1lev1.com/mcp#createPlanBoardTool
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | The rows, in the order the user should see them. 1 to 40. | |
| title | Yes | Board title - the direction these rows advance. | |
| descrip | No | One or two plain-text sentences on what this board is for. | |
| projectId | Yes | ID of the project to plan for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses that rows are saved verbatim with no second model rewriting them, that nothing is actually created (only proposals the user approves at the returned reviewUrl), that invalid rows come back in `rejected`, and that `error.retryable` signals whether a retry helps. The idempotentHint=false annotation is given real meaning by the 'proposal' framing.
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?
Front-loads the defining constraint and the sibling routing, and every sentence carries information. It is dense but no sentence is wasted; slightly long for a single paragraph, though appropriate given the schema complexity.
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?
With no output schema, the description still covers the return surface (reviewUrl, `rejected`, `error.retryable`), the save semantics, and the alternative tool. An agent has everything needed to call this correctly and interpret the result.
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 100% and the field descriptions are already detailed, so the baseline is 3. The description reinforces that every row needs both name and descrip and that violating this yields `rejected` rows, but it adds little else beyond what the schema already documents.
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?
States a specific verb and resource ('Create a planning board') plus the key qualifier 'from rows YOU already structured,' which immediately separates it from the AI-generating sibling planProjectWorkTool.
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?
Explicitly names the condition that selects this tool ('when the conversation already holds the breakdown') and the alternative with its own condition ('Use planProjectWorkTool instead when the user only has a loose idea in free text'). Also states the projectId prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createProjectToolARead-onlyIdempotentInspect
Prepare the "create a Partnership" form (a Partnership is also called a rikma, or "רקמה") and return a link that opens it pre-filled. Nothing is created yet: status is "prepared" until the user opens the link and approves the form. Give the user url exactly as returned — do not decode, shorten or rebuild it. A public-benefit or nonprofit initiative is a normal Partnership, not a failed business: every Partnership has a public support page (/project//support) where anyone can donate to it or fund a specific mission, so the public can cover the members' work hours even when nothing is ever sold. Docs: https://1lev1.com/mcp#createProjectTool
| Name | Required | Description | Default |
|---|---|---|---|
| ont | No | Whether the partnership is continuous (true) or a one-time event (false). | |
| res | No | Response time ID: feh (48h), sth (72h), nsh (96h), sevend (1 week). | |
| url | No | A link to a website related to the project. | |
| desc | No | A short public description (plain text, one or two sentences). | |
| name | Yes | The name of the new Partnership. Required. | |
| vals | No | Values and goals of the partnership, as their names. A value may contain commas. | |
| profit | No | When the Partnership expects to earn from sales: already, week, month, threeM, sixM, oneY, twoY, more, or never. `never` is the correct value for a nonprofit / public-benefit initiative - it means "selling is not the goal", not "it will fail". Such a Partnership is funded through its public support page, where donors can cover the work hours. | |
| details | No | Detailed description as raw HTML, e.g. `<h2>Title</h2><p>Body</p>`. Allowed tags: h1, h2, h3, p, ul, ol, li, strong, em, u, s, a, br, blockquote. Do NOT HTML-escape it (send `<p>`, not `<p>`). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations give readOnlyHint=true and idempotentHint=true, but the description adds crucial context the annotations cannot: the tool returns a prepared link, nothing is created until the user approves, and the returned `url` must be presented verbatim. The nonprofit clarification is genuine behavioral context about how `profit: never` is interpreted by the system. This exceeds what structured fields convey.
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?
Front-loaded with the core action and the 'nothing is created yet' caveat, which is good. However, the middle sentence about public support pages is lengthy and feels like promotional framing rather than operational guidance; it could be trimmed. The instruction to pass the URL verbatim is valuable, but the sentence order buries it after the nonprofit tangent.
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 no output schema and 8 parameters, the description does the heavy lifting: it defines the return value (a link), explains the lifecycle (prepared → user approves → created), warns against URL tampering, and disambiguates the nonprofit case. This is complete enough for an agent to invoke correctly without opening the schema.
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 100%, so the schema already documents all 8 parameters. The description reinforces the `profit` enum semantics ('never' means selling is not the goal) and explains the public support page concept — which is parameter-adjacent context a first-time caller might miss. It doesn't add syntax or format detail beyond schema, keeping it at 4.
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?
States a specific action (prepare a form, return a pre-filled link) plus the key semantic correction that nothing is actually created yet. The term 'rikma' is defined inline and the distinction from any real creation is immediate. An agent can tell this apart from prepareSignup / prepareMission / startProcessTool siblings.
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?
Clearly signals when to use: when a user wants to prepare a Partnership form. It also clarifies the nonprofit case ('A public-benefit or nonprofit initiative is a normal Partnership'). But it doesn't explicitly name a sibling alternative or state when NOT to use it (e.g. when the Partnership already exists — that's getProjectDetailsTool territory).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createRikmaProductsBatchToolAInspect
Create up to 30 products in one rikma in one call — each with the same fields as createRikmaProduct: name, description, price, stock, pictures (picId + galleryIds), categories, options and variants. Every item is created and answered on its own (results[i] with productId, or why it failed); one failure never stops the rest. A product whose extras failed is still created and marked partial. Members only. Docs: https://1lev1.com/mcp#createRikmaProductsBatchTool
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. You must be a member. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare non-read-only, non-destructive, non-idempotent. The description adds real behavioral detail beyond that: per-item isolation ('one failure never stops the rest'), the results[i] shape with productId or failure reason, and partial-success marking when extras fail. It also discloses the members-only authorization requirement.
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?
Front-loaded with the core capability and limit, then failure semantics, then auth, then docs link. Four tight sentences with no filler; the field enumeration is the only mildly redundant part.
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?
For a 2-parameter but deeply nested mutation with no output schema, the description covers return shape (results[i]), partial-failure semantics, the item cap, and auth. Minor gaps remain: no mention of whether the whole batch is rejected on malformed input versus per-item, and no rate/throughput expectations.
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 50%, but the nested item schema is unusually self-documenting, with every property described inline. The description only re-lists field names (name, description, price, stock, pictures, categories, options, variants) without adding format or constraint meaning, so it neither compensates nor detracts.
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?
States a specific verb, resource and hard scope: 'Create up to 30 products in one rikma in one call'. It also anchors itself to the sibling single-item tool ('same fields as createRikmaProduct'), so an agent can distinguish batch from single creation without opening a schema.
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?
Clear context for use (bulk creation, up to 30 items, membership required) and an implicit routing rule via the createRikmaProduct reference. It does not explicitly say when to prefer the single-item tool or what to do if more than 30 items are needed, so no full when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createRikmaProductToolAInspect
Create a fixed-price product (Matanot) for the rikma. Three hosting modes (PLAN_USER_OFFERINGS §3.3): projectId alone → the product lives on that rikma (caller must be a member); without it → personal offer hosted on the caller’s home rikma (origin=personal); newRikmaName → a fresh named rikma is created first and hosts it. Use it for the storefront: name, description, price, stock (quant, -1 = unlimited), kindOf (total/monthly/yearly/daily/unlimited), location, an uploaded cover (picId) and — on a rikma — galleryIds, categories, options and variants in the same call. For a complex recipe (BOM, margin, estimated price) use createComplexMatanot in the UI — the MCP creates the simple, shippable shelf item. Members or personal owner. Returns the new Matanot id and where it lives. Docs: https://1lev1.com/mcp#createRikmaProductTool
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Product name — shown in the catalog and on the /gift page. | |
| picId | No | Strapi upload id of the cover image. | |
| price | Yes | Fixed price in the rikma currency (or the currency code you pass). | |
| quant | No | Available quantity: a number, -1 for unlimited, or omit for 0. | |
| kindOf | No | How price×quantity is understood. Default total. | |
| descrip | No | Long description shown to the buyer. | |
| options | No | With projectId: option axes (size, colour…) to make sure exist before the variants. | |
| location | No | Where the product is (or isOnline:true via location_mode online). | |
| variants | No | With projectId: variants, each { optionValues: { size: "M" }, sku?, price?, quant?, active?, position?, imageIds? } — see upsertProductVariants. | |
| projectId | No | Host it on this rikma (you must be a member). Omit for a personal offer on your home rikma. | |
| categories | No | With projectId: category ids from listRikmaCategories. | |
| galleryIds | No | With projectId: more upload ids after the cover, in order. | |
| pricingMode | No | fixed = sold at this price (checkout:true, what the storefront reports), estimated = shown as estimate, quote = price on request. Default fixed. | |
| newRikmaName | No | Create a fresh rikma with this name and host the product there. Not combined with projectId. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds substantial behavior beyond that: the three hosting modes and their branching, the side effect of creating a brand-new rikma when newRikmaName is supplied, the membership requirement, and what the call returns (new Matanot id and where it lives). It does not discuss validation failure behavior or partial-failure on the newRikmaName path, which keeps it from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the three hosting modes, then the storefront field list, then the alternative-tool routing, then return value and docs link — a sensible hierarchy. It is dense but not padded; the only slight waste is re-listing schema fields (name, description, price, stock) that the schema already documents.
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?
For a 14-parameter mutation tool with nested objects and no output schema, the description covers the hosting-mode decision tree, permissions, the state-changing side effect of rikma creation, and the return value. An agent has enough to invoke it correctly on the first attempt.
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 coverage is 100%, so the baseline is 3, but the description adds cross-parameter meaning the schema cannot express: projectId alone vs omitted vs newRikmaName are mutually exclusive hosting modes with different ownership outcomes, which is the single most error-prone decision in this call. It also clarifies quant=-1 as unlimited and the quant×price interpretation behind kindOf.
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?
States a specific verb and resource — 'Create a fixed-price product (Matanot) for the rikma' — and immediately differentiates itself from the sibling createComplexMatanot (complex recipe/BOM) and implicitly from createRikmaProductsBatchTool. An agent knows exactly what this produces without consulting any other tool.
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?
Gives explicit routing: use this for the simple shippable shelf item, use createComplexMatanot for BOM/margin/estimated-price recipes. It also names the prerequisite helper tools (listRikmaCategories, upsertProductVariants) and the permission condition ('Members or personal owner'), leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createTaskToolAInspect
Create a task (Act, "מטלה") in a project - the way a member gets something new done. Whenever the user wants something new to happen in a project, offer this option. Choose the shape:
A mission in progress already covers the work: create an act linked to it - assignedUserId = the mission holder, missionId from getMemberMissionsTool.
Nobody in the project does this kind of work, so an implementer must be found: this is not an act - prepare a mission with prepareMissionTool.
No specific person yet: create the act with no assignee and pass tafkidims = the roles that fit it (IDs from getProjectMembersTool). The holders of those roles are notified and one of them picks it up. An act assigned to another person waits for that person to approve it; nobody is bound until they accept. The caller must be a member of the project. Requires a project ID. Docs: https://1lev1.com/mcp#createTaskTool
| Name | Required | Description | Default |
|---|---|---|---|
| link | No | Optional URL related to the task | |
| name | Yes | Short name/title of the task | |
| dateF | No | End date (ISO format) | |
| dateS | No | Start date (ISO format) | |
| hashivut | No | Urgency level of the task | white |
| missionId | No | ID of the mission in progress (mesimabetahaliches) this task belongs to, from getMemberMissionsTool. Goes with assignedUserId. | |
| projectId | Yes | ID of the project where the task will be created | |
| tafkidims | No | IDs of the roles (tafkidim) that fit the task, when no specific person is chosen; a holder of one of them picks it up. Use getProjectMembersTool to resolve role names to IDs. Mutually exclusive with assignedUserId. | |
| description | No | What has to be done and what done looks like, as plain text. Strongly recommended - a title alone is hard to act on. | |
| assignedUserId | No | ID of the person (project member) to assign this task to - usually the holder of the mission it belongs to. Use getProjectMembersTool to resolve a name to an ID. Mutually exclusive with tafkidims. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, destructive=false, idempotent=false), the description discloses the approval workflow for acts assigned to others ('nobody is bound until they accept'), role-holder notification behaviour, and the caller membership prerequisite. These are non-obvious behavioural details not derivable from the structured fields.
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?
Front-loaded with purpose then bulleted decision shapes, which is well structured. The framing sentence ('Whenever the user wants something new to happen...') and the trailing docs link are mild padding, but nothing is genuinely wasteful for a 10-parameter tool with multiple modes.
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?
With no output schema, a 10-parameter mutation tool is fully covered: prerequisite membership, required project ID, the two assignment modes, approval semantics, and a docs link. An agent has everything needed to choose and invoke it.
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 coverage is 100%, so the baseline is 3, but the description adds relational meaning the schema only partly encodes: which parameter set belongs to which mode (missionId paired with assignedUserId; tafkidims as the no-assignee path), and how getMemberMissionsTool / getProjectMembersTool resolve the IDs. It stops short of format details beyond the schema.
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?
States a specific verb and resource - create a task in a project - and immediately scopes what a task is ('the way a member gets something new done'). It explicitly contrasts itself with prepareMissionTool, so an agent can route between them without opening either schema.
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?
Gives three explicit decision branches (existing mission -> create act linked to it; nobody does this kind of work -> use prepareMissionTool instead; no specific person -> create unassigned with tafkidims). When-not-to-use is stated as directly as when-to-use, with the named alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createUploadSessionToolAInspect
Get a short-lived link where the user uploads product pictures from their phone or computer — use it when the user has pictures you cannot read (you do not get the bytes of attachments). Give the user the url; when they say they are done, call getUploadSession with the token to get the upload ids, then setProductImages. JPG/PNG/WebP only, up to maxFiles pictures (default 10, max 20), valid for 60 minutes. The link only adds pictures to the media library — it attaches nothing and shows no rikma data. Members only. Docs: https://1lev1.com/mcp#createUploadSessionTool
| Name | Required | Description | Default |
|---|---|---|---|
| maxFiles | No | How many pictures the link accepts. Default 10. | |
| productId | No | The product the pictures are for (shown on the page; attaching is still setProductImages). | |
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. You must be a member. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which only say non-readOnly, non-destructive, non-idempotent), the description discloses that the link is short-lived with a 60-minute validity, accepted formats (JPG/PNG/WebP), a default of 10 and cap of 20 files, member-only access, and that it performs no attachment. These are exactly the operational constraints an agent needs and none of them are in the structured fields.
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?
It is front-loaded with the purpose and the workflow ordering, and every clause carries information (format limits, expiry, member restriction, non-attachment caveat). It is a dense single paragraph rather than clearly segmented bullets, which slightly hurts scanability for an agent parsing multiple constraints.
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?
For a three-parameter tool with no output schema, the description covers the full lifecycle: creating the link, handing the URL to the user, retrieving upload ids via getUploadSessionTool, and finalizing with setProductImages. Constraints, validity window, and access requirements are all present.
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 coverage is 100%, so the baseline is 3, but the description reinforces the default and hard cap on maxFiles and clarifies that the link's scope is the project with a member requirement. It adds little beyond the schema definitions of productId and projectId, so it falls short of a 5.
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 opens with a specific verb and resource ('Get a short-lived link where the user uploads product pictures') and immediately distinguishes itself from media-reading tools by noting 'you do not get the bytes of attachments'. It is also clearly separable from uploadMediaFromUrlTool and setProductImagesTool, which it names.
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?
It states the triggering condition ('when the user has pictures you cannot read'), the follow-up workflow ('call getUploadSession with the token to get the upload ids, then setProductImages'), and the excluded case ('the link only adds pictures to the media library — it attaches nothing'). An agent has no ambiguity about when to pick this tool versus the image-setting siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dismissOfferToolAInspect
The person says an open mission suggested to them is not relevant: it stops being suggested to them. A filter for them only - nobody is told no. Docs: https://1lev1.com/mcp#dismissOfferTool
| Name | Required | Description | Default |
|---|---|---|---|
| openMissionId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=false and readOnlyHint=false, so the agent knows this is a non-destructive mutation. The description adds genuinely new behavioral context: it is a private, per-user filter ('a filter for them only - nobody is told no'), which is not conveyed by any annotation.
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?
Two short sentences front-load the effect, and the privacy clarification follows immediately. The trailing docs URL is useful and cheap. The phrasing is slightly informal but not padded.
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?
For a single-parameter mutation with a full annotation profile and no output schema, the description covers effect, scope, and privacy adequately. The only gap is how to obtain a valid openMissionId, which the docs link partially addresses.
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?
There is one required parameter (openMissionId) with 0% schema description coverage. The description's reference to 'an open mission suggested to them' implicitly ties the parameter to that mission, but it adds no format, source, or retrieval guidance beyond the schema's type.
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 concretely states the effect: a suggested open mission stops being suggested to the person. It is a distinct operation from siblings like findMissionTool or listMyWishOffersTool. It stops short of using a crisp verb+resource phrasing, describing the outcome narratively instead.
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?
It implies the trigger condition ('the person says an open mission suggested to them is not relevant'), which gives usable context. However, it names no alternative tools or when-not-to-use guidance, so an agent must infer how this differs from related actions such as finding or applying to missions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
findMissionToolBRead-onlyIdempotentInspect
Find a specific mission for the user by its name. Docs: https://1lev1.com/mcp#findMissionTool
| Name | Required | Description | Default |
|---|---|---|---|
| missionName | Yes | The name of the mission to find. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds only the lookup-by-name behavior; it says nothing about match semantics (exact vs partial) or what happens when no mission matches.
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?
Two short sentences, purpose front-loaded, no wasted prose. The trailing docs link is minor filler but harmless.
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?
For a single-parameter read tool with rich annotations and a fully documented schema, the definition covers what an agent needs to invoke it. Return shape and no-match behavior are unaddressed but the annotations and simple schema make this acceptable.
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 100% for the single missionName parameter, so the schema does the heavy lifting. The description's 'by its name' merely restates the parameter without adding format or matching semantics.
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?
States a specific verb (find), resource (mission), scope (for the user) and lookup key (by its name). It is distinguishable from list/get siblings at a high level, though it never names them explicitly.
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?
No when-to-use guidance and no mention of alternatives such as getMissionDetailsTool, listUserMissionsTool, or getMemberMissionsTool. An agent must infer on its own whether this returns full details or just a handle.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
findUserProjectsToolARead-onlyIdempotentInspect
Find the projects (rikmot) the current user belongs to, newest first, with their creation time. Use this when the user mentions a project by name, wants to navigate to one, or just created one. Results are paginated: when hasMore is true, call again with offset=nextOffset. Docs: https://1lev1.com/mcp#findUserProjectsTool
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size, default 50. | |
| query | No | Optional search query to filter projects by name (case-insensitive substring). | |
| offset | No | How many results to skip, default 0. | |
| userId | No | User id to list projects for. Omit to use the authenticated caller. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so safety is covered. The description adds genuine behavioral context beyond them: results are ordered newest-first, include creation time, and are paginated with hasMore/nextOffset. It does not disclose rate limits or result cap behavior, so not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, followed by trigger conditions and pagination mechanics. Every sentence carries actionable information; nothing is redundant with the schema or annotations.
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?
With no output schema, the description compensates by describing what comes back (projects with creation time, ordering, pagination cursor fields). All four parameters are covered by the schema, and usage triggers plus pagination are fully specified, leaving no gap an agent needs to call 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 coverage is 100%, so baseline is 3. The description goes beyond the schema by explaining the pagination contract (when hasMore is true, call again with offset=nextOffset), which ties the offset parameter to a return value the schema cannot express since there is no output schema.
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?
States a specific verb (find) and resource (the projects/rikmot the current user belongs to), plus ordering (newest first) and returned field (creation time). It is clearly distinguishable from siblings like getProjectDetailsTool, listProjectResourcesTool, or listRikmaProcessesTool.
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?
Gives explicit trigger conditions: when the user mentions a project by name, wants to navigate to one, or just created one. It also states the pagination follow-up rule. It does not name a specific alternative sibling to avoid, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getActiveTimersToolCRead-onlyIdempotentInspect
Get all currently active timers for the user Docs: https://1lev1.com/mcp#getActiveTimersTool
| Name | Required | Description | Default |
|---|---|---|---|
| includeDetails | No | Include detailed timer information |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: no note on whether timers are per-user only, no ordering, no freshness of the data, and no behavior of the includeDetails flag.
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?
One short sentence, front-loaded with the core action, followed by a documentation link. No padding beyond the boilerplate URL, though the URL is not actionable for tool selection.
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?
For a simple read-only lookup with rich annotations and no output schema, the definition is minimally adequate. It omits any description of what the returned timer records contain and how active is defined, which an agent would need since there is no output schema to consult.
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 100% and the single includeDetails parameter has a documented meaning and default, so the schema does the heavy lifting. The description adds no semantics on top, which lands at the baseline for a fully covered schema.
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?
States a specific verb and resource with a scope qualifier ('currently active timers for the user'), which separates it from the sibling timerActionTool that presumably mutates timers. It does not, however, explicitly name the sibling or contrast behavior, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use or when-not-to-use guidance and never references timerActionTool, the obvious alternative for acting on timers. An agent must infer the intended context purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAssistantToolARead-onlyIdempotentInspect
Read the person's current draft list on 1lev1 - a rikma blueprint (kind 'rikma'), or later their profile or a wish - with its rows, their keys and status, the version, and what was changed recently (also from the site). Call it before setAssistantItems when you are not sure you have the latest version. Docs: https://1lev1.com/mcp#getAssistantTool
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Latest session of this kind. | |
| sessionId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, so the safety profile is covered. The description adds useful context beyond that: it discloses the returned payload (rows, keys, status, version, recent changes) and the version-freshness motivation for calling it.
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?
Purpose is front-loaded, but the single sentence is dense and includes noise like the awkward parenthetical "(also from the site)" and an external docs URL. The core guidance survives, but the prose could be trimmed without loss.
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?
With no output schema, the description carries the burden of describing returns and does so (rows, keys, status, version, recent changes), which is the key missing piece for a read tool. The only residual gap is the undocumented sessionId parameter and the unclear relationship to other read siblings.
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 50%: kind has an enum with a short description, while sessionId is undocumented. The description partially compensates by naming the kind values (rikma blueprint, profile, wish) and implying "latest session" semantics, but sessionId remains unexplained in both schema and description, so this sits at the baseline.
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?
States a specific verb and resource ("Read the person's current draft list on 1lev1") and enumerates the three kinds (rikma, profile, wish), which distinguishes it from write-oriented siblings like setAssistantItemsTool. It does not, however, clarify how it differs from getWishDetailsTool or listRikmaProcessesTool, so it falls short of full sibling differentiation.
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?
Explicitly gives a when-to-use condition with an alternative: "Call it before setAssistantItems when you are not sure you have the latest version." That is actionable routing guidance, though it covers only one sibling and offers no when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLeadToolARead-onlyIdempotentInspect
Open one lead of a rikma: who they are and how to reach them (phone and email — sensitive, for the member to act on, never to be copied anywhere else), what they asked, its stage, owner, next step, day to get back, linked orders, and its log (most recent first: calls, messages, meetings, notes, status changes). Members only. Docs: https://1lev1.com/mcp#getLeadTool
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes | Lead id, from listRikmaLeadsTool (rows of kind "lead"). | |
| logLimit | No | How many log entries, default 20. | |
| projectId | Yes | Rikma id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, so the description's job is narrower and it delivers extra context: a members-only authorization requirement, an explicit PII handling warning (phone/email never to be copied elsewhere), and log ordering (most recent first). It stops short of covering payload size, truncation, or not-found behavior.
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?
Front-loaded with the verb and resource, then a single dense enumeration of returned fields; the members-only gate and docs link are cleanly separated. The long em-dash parentheticals make it heavier than necessary, but each listed item carries useful selection signal.
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?
With no output schema, the description compensates by enumerating return contents and log ordering, and it flags the authorization and sensitivity constraints for this read tool. Missing only edge-case behavior (lead not found, access denied, log truncation beyond logLimit).
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 100%, so all three parameters (projectId, leadId, logLimit with default 20 and max 100) are already documented. The description only indirectly touches parameters by noting the log is most-recent-first, which gives ordering context for logLimit but nothing beyond the schema.
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?
"Open one lead of a rikma" gives a specific verb and singular resource, and the enumeration (identity/contact, request, stage, owner, next step, follow-up date, linked orders, log) tells an agent exactly what comes back. The singular framing plus the leadId schema hint clearly separates it from listRikmaLeadsTool.
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?
Usage is implied: fetch one lead's full record when you already have its id. There is no explicit when-to-use/when-not guidance and no named alternatives (e.g. listRikmaLeadsTool to find ids, logLeadActivityTool to add entries), only a hard "Members only" gate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getMemberMissionsToolARead-onlyIdempotentInspect
List a project member's in-progress missions. A task is linked to a mission-in-progress the assignee performs, so call this after choosing the assignee (a person) to pick the missionId to pass to createTaskTool. If no mission in progress covers the work, it is not a task: prepare a mission with prepareMissionTool instead. Docs: https://1lev1.com/mcp#getMemberMissionsTool
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | ID of the member (assignee) whose in-progress missions to list | |
| projectId | Yes | ID of the project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower. The description adds genuine workflow behavior: that output feeds a missionId into createTaskTool and that tasks require a mission-in-progress. It does not describe pagination or return shape, but that is a minor gap given the annotations.
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?
Front-loads the purpose, then the workflow reason, then the alternative, in three tight sentences. The docs link is the only optional element and every sentence earns its place.
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?
With no output schema, the description still conveys that the result is a set of missions from which a missionId is selected, which is enough to use it correctly. It stops short of naming return fields, but the workflow framing compensates well.
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 coverage is 100%, so both parameters are already documented, establishing a baseline of 3. The description clarifies that userId is 'the assignee (a person)', which reinforces but does not extend the schema's own description, and adds no format or constraint details.
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?
States a specific verb and resource ('List a project member's in-progress missions') with the scoping qualifier 'in-progress' that narrows it meaningfully. It does not explicitly contrast with the close sibling listUserMissionsTool, so it falls short of full sibling differentiation.
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?
Gives explicit when-to-use ('call this after choosing the assignee... to pick the missionId to pass to createTaskTool') and an explicit when-not with an alternative ('If no mission in progress covers the work... prepare a mission with prepareMissionTool instead'). Both the trigger condition and the fallback sibling are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getMissionDetailsToolBRead-onlyIdempotentInspect
Get detailed information about a specific mission including tasks, timeline, and current status Docs: https://1lev1.com/mcp#getMissionDetailsTool
| Name | Required | Description | Default |
|---|---|---|---|
| missionId | Yes | Mission ID to get details for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered. The description adds a useful note that the payload includes tasks, timeline, and status, but says nothing about error behavior for an invalid/unknown missionId or about response size.
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?
A single front-loaded sentence with the payload contents listed immediately, followed by a documentation link. No filler, though the bare URL adds little routing value for an agent.
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?
For a simple read-only single-parameter tool, the description covers what the tool returns, which partly compensates for the absent output schema. Missing only edge-case behavior (invalid ID, permissions), which is minor at this complexity.
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?
Only one parameter exists and the schema documents it fully at 100% coverage ('Mission ID to get details for'). The description adds no format, prefix, or lookup guidance beyond what the schema already provides, so the baseline of 3 applies.
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?
States a specific verb ('Get') and resource ('detailed information about a specific mission') and enumerates the content returned (tasks, timeline, current status). This distinguishes it from listUserMissionsTool and getMissionStatsTool, though it never explicitly names those siblings as alternatives.
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?
There is no explicit when-to-use guidance or comparison against the many mission-related siblings (findMissionTool, getMissionStatsTool, getMemberMissionsTool, listUserMissionsTool). 'A specific mission' weakly implies you must already hold a mission ID, but the agent must infer this.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getMissionStatsToolBRead-onlyIdempotentInspect
Get statistics about user missions including counts by status, time spent, etc. Docs: https://1lev1.com/mcp#getMissionStatsTool
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Get stats for specific project only |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds a partial view of what the result contains (counts by status, time spent), but does not describe aggregation scope, whether counts are per-project or global, or pagination/limits.
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?
Two compact sentences, front-loaded with the purpose and followed by a docs link. Nothing is wasted, though the trailing URL adds little for an agent that already has the schema.
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?
There is no output schema, so the description should carry more of the return-value burden. It gestures at the return shape ('counts by status, time spent, etc.') but leaves the 'etc.' vague and never clarifies scope (global vs per-project) or result size.
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?
Only one optional parameter exists and its schema description ('Get stats for specific project only') is fully covered at 100%. The description adds nothing about projectId or its default behavior when omitted (presumably all projects), so baseline 3 applies.
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?
States a specific verb and resource ('Get statistics about user missions') and names the kind of data returned (counts by status, time spent). It implicitly distinguishes itself from siblings like getMissionDetailsTool and listUserMissionsTool, but never explicitly states the difference.
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?
There is no when-to-use guidance and no mention of alternatives such as getProjectStatsTool, getMissionDetailsTool, or listUserMissionsTool, which are the closest siblings. The agent must infer that this tool is for aggregate stats rather than listing or detail retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getMyUpdatesToolARead-onlyIdempotentInspect
What waits for the user and what is new for them - across their rikmas, their wishes (concierge) and their deals. Use it for "what's new today", "what is waiting for me", "what do I need to answer", "what is happening in rikma X". Returns waiting: each item is ONE ready sentence in the user's language, with its figures, where it is, its deadline (when silenceApproves is true, no answer by the deadline approves it automatically - always say so), and a link where the user answers it. Relay the sentences, most urgent first; do not reword figures. Also returns work (their missions, missions about to go dormant, open/overdue tasks), whatsNew (counts of new missions/resources/products/sales in their rikmas since yesterday) and suggestions (open matches for them). unavailable names parts that could not be read - say they could not be checked rather than calling them empty. Read-only: approving, countering or discussing happens on the site, by the user. Docs: https://1lev1.com/mcp#getMyUpdatesTool
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | The language to word the sentences in. Default: the user's language. | |
| limit | No | How many waiting items at most (default 20). | |
| rikma | No | Only rikmas whose name contains this text - use when the user names a rikma and you have no id. | |
| projectId | No | Only this rikma (its id, e.g. from findUserProjectsTool). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only/idempotent/non-destructive, and the description adds substantially more: it explains that mutations happen on the site, that sentences must be relayed verbatim without rewording figures, that silenceApproves deadlines auto-approve, and that `unavailable` sections must be reported as unread rather than empty. That is genuine behavioral context beyond the structured fields.
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?
It is dense and long, but front-loads the core purpose and then groups the return fields (waiting, work, whatsNew, suggestions, unavailable) with actionable instructions. Almost every clause carries information an agent needs, though the volume pushes against easy scanning.
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?
There is no output schema, so the description carries the full burden of explaining the return payload, and it does so thoroughly for a multi-section, complex aggregation tool. An agent has enough to call it and interpret every response section 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 100%, so lang, limit, rikma, and projectId are already fully documented in the schema, setting the baseline at 3. The description only lightly maps to parameters via the 'rikma X' scenario and the language instruction, adding marginal value over the schema.
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?
States a specific aggregation purpose: 'what waits for the user and what is new for them' across rikmas, wishes, and deals. It is clearly distinguishable from point-lookup siblings like findUserProjectsTool, listMyWishesTool, or getMissionDetailsTool, which each cover only one slice of what this digest rolls up.
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?
Gives explicit invocation phrasings ('what's new today', 'what is waiting for me', 'what is happening in rikma X'), which is strong when-to-use guidance. It stops short of naming a sibling alternative or stating when not to use it (e.g., single-item lookups), so it lands at 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPlatformInfoARead-onlyIdempotentInspect
Get general information about the 1lev1 platform, its goals, and features. Docs: https://1lev1.com/mcp#getPlatformInfo
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond a docs URL — no note on what the response contains or how fresh/authoritative it is. Baseline credit for a safe read with no additional behavioral insight.
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?
A single front-loaded sentence stating purpose, scope, and a docs link, with zero redundancy. Nothing could be removed without losing information.
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?
With no output schema, the description hints at content ('goals, and features') and points to docs, which is reasonable for a trivial no-param info tool. It stops short of describing the actual return shape, but that gap is minor given the tool's simplicity and its safety annotations.
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?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline of 4 applies for a no-param tool with an empty schema.
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?
States a specific verb ('Get') and resource ('general information about the 1lev1 platform, its goals, and features'), which clearly sets it apart from the mission/project/task oriented siblings. No explicit sibling differentiation is offered, but the meta/info nature makes it unambiguous.
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?
Usage is only implied: an agent should call this when it needs platform context. There is no explicit when-to-use, no exclusions, and no reference to any alternative tool. Acceptable but minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getProjectDetailsToolARead-onlyIdempotentInspect
Get the facts about one rikma (project): name, public description, values, links (website, GitHub, Drive, social), members, roles, open missions, missions in progress (and who holds them), open and in-progress resources, and products. Call this before planning or writing anything in a rikma - it is cheap and returns facts, unlike scanProjectDirectionsTool. For a rikma the user is not a member of, only the public face is returned (isMember:false). Docs: https://1lev1.com/mcp#getProjectDetailsTool
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, but the description adds real behavioral context: the permission-scoped return ('For a rikma the user is not a member of, only the public face is returned (isMember:false)') and the cost/latency characterization ('it is cheap'). It does not describe pagination or output shape, but for a read tool with full annotation coverage this is strong added value.
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?
Front-loaded with the core purpose, then usage guidance, then the membership caveat, then a docs link. The long enumeration of returned fields is somewhat dense but earns its place by summarizing a return payload that has no output schema. Minimal waste.
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?
With no output schema, the description carries the burden of describing returns and does so by listing the returned entities (members, roles, missions, resources, products). It is nearly complete; only the shape/format of those returns and any pagination behavior are unspecified, which is minor for a single-parameter read tool.
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 100% and the single parameter (projectId) is documented in-schema as coming from findUserProjectsTool. The description adds nothing about the parameter, so the baseline of 3 applies when structured data does the heavy lifting.
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?
States a specific verb and resource ('Get the facts about one rikma (project)') and enumerates the exact facts returned, immediately distinguishing it from scanProjectDirectionsTool by contrasting 'returns facts' with the latter. An agent can select it without opening a schema.
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?
Gives explicit when-to-use guidance ('Call this before planning or writing anything in a rikma') and names the alternative tool along with the reason to prefer this one ('it is cheap and returns facts, unlike scanProjectDirectionsTool'). Covers both the condition and the exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getProjectMembersToolARead-onlyIdempotentInspect
List the people (members) and roles (tafkidim) of a project. Use this to resolve a task assignee - a person or a role - to its ID before calling createTaskTool. For a task with no specific person, pick the roles that fit it here and pass their IDs as tafkidims. Docs: https://1lev1.com/mcp#getProjectMembersTool
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional text to filter people or roles by name | |
| projectId | Yes | ID of the project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: this is a prerequisite lookup step feeding createTaskTool, and the query param filters by name. It does not describe the shape of the returned member/role list, which is the remaining gap.
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?
Three sentences, front-loaded with what the tool returns, then the workflow reason, then the edge case. The docs link is placed last and costs nothing. No sentence is redundant.
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?
For a two-parameter read-only lookup with no output schema, the description covers purpose, routing and the follow-up call adequately. What is missing is any hint of the return payload (e.g. that each member/role comes back with an ID), which the agent needs to chain into createTaskTool.
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 100%, so both parameters (projectId, query) are already documented in the schema and the description need not repeat them. Its mention of 'pass their IDs as tafkidims' refers to createTaskTool's parameters rather than this tool's, so it adds no additional semantics for the two inputs here.
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?
States a specific verb+resource ('List the people (members) and roles (tafkidim) of a project') and immediately scopes it to a distinct concern that no sibling covers. It also introduces the domain term 'tafkidim', which removes ambiguity about what 'roles' means in this system.
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?
Explicitly names the trigger ('resolve a task assignee ... before calling createTaskTool') and the alternative branch ('for a task with no specific person, pick the roles that fit it here and pass their IDs as tafkidims'). This is a when-to-use plus a when-to-use-differently, which is the strongest form of routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getProjectStatsToolARead-onlyIdempotentInspect
Get the pulse of one rikma as numbers: members, open missions, missions in progress, open resources, open decisions (votes), active timers, missions finished and hours logged in the last N days, and when anything last happened. Use it to judge whether a rikma is active before planning. Members only; no per-member financial data. Docs: https://1lev1.com/mcp#getProjectStatsTool
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Window for the "recent" numbers, default 30. | |
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds scope context beyond the annotations: it is members-only and excludes financial data, and it clarifies the trailing-window semantics of the counts.
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?
Front-loaded with the verb and the metric list, then usage, then a docs link. The enumeration is long but justified because there is no output schema; the trailing docs URL is the only low-value element.
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?
With no output schema, the description carries the return-shape burden and does so by listing every metric plus a last-activity timestamp. Source of projectId and the days window are covered by the schema, so an agent has everything needed to call and interpret it.
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 100%, so both parameters are already documented in the schema (days default 30, projectId sourced from findUserProjectsTool). The description only alludes to 'the last N days,' adding no syntax or format detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource and then enumerates the exact metrics returned (members, open missions, missions in progress, resources, decisions, timers, finished missions, hours logged), which distinguishes it from getMissionStatsTool and getProjectDetailsTool without opening a schema.
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?
It gives an explicit use case: 'Use it to judge whether a rikma is active before planning,' and an exclusion ('no per-member financial data'). It does not name a sibling alternative (e.g. getProjectDetailsTool) for the case where narrative detail is wanted, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRikmaOrderToolARead-onlyIdempotentInspect
Get one order of the rikma by its ref (<rikmaId>:<externalId>, as POST /orders answered). Returns the same enriched order as the list, plus the holder and the note the rikma sees. Members only — buyer contact is members-only. Docs: https://1lev1.com/mcp#getRikmaOrderTool
| Name | Required | Description | Default |
|---|---|---|---|
| orderRef | Yes | The order ref, e.g. "57:pi_3Q8x…" — or an orderId (the tool tries both). | |
| projectId | Yes | Rikma id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description's added value is the return composition ('plus the holder and the note the rikma sees') and the members-only access rule, including that buyer contact is restricted. Useful context beyond structured fields, though no pagination or error behavior is disclosed.
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?
Three tight sentences, purpose front-loaded, each sentence carrying distinct information (lookup, return shape, access rule). No filler.
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?
For a simple 2-param read tool with full annotation coverage, the description is nearly complete: it explains what is fetched, what is returned, and the access limitation. Only minor gaps around error behavior for a missing ref remain.
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 coverage is 100%, so both parameters are already documented. The description adds the provenance of the ref format ('as POST /orders answered'), but the dual ref/orderId behavior is already in the schema, so this sits at the baseline for high coverage.
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?
States a specific verb (Get), resource (one order of the rikma), and lookup key (by its ref). The word 'one' plus the reference to 'the list' cleanly distinguishes it from listRikmaOrdersTool without the agent opening either schema.
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?
Provides a clear access precondition ('Members only') and implies single-order retrieval versus the list variant. It stops short of an explicit 'use this instead of listRikmaOrdersTool when...' routing statement, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRikmaProductToolARead-onlyIdempotentInspect
Get one product of the rikma in full merchant detail: its base row (price, quant, pricingMode, status_of_voting, lifecycle, archived, hideFromDiscovery, lowStockAt, unit, minOrder, maxOrder, leadTimeHours, externalKey, pricing fields), its gallery and delivery options, its option axes (product-option), every variant (sku, axisKey, optionValues, price, quant, active, position, externalKey), categories, and computed inventory (effectiveStock, isLowStock, lowVariants). Members only. Use it to verify a product before editing stock, pricing or variants. Docs: https://1lev1.com/mcp#getRikmaProductTool
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Matanot id (from listRikmaProducts). | |
| projectId | Yes | Rikma (project) id. | |
| includeArchived | No | Allow a row that is archived lifecycle=false. Default true for a direct get. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real behavioral context beyond them: membership requirement and the full breadth of the payload returned (variants, computed inventory, gallery/delivery options).
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?
Front-loads the purpose, then the payload, then usage and docs. It reads as one long sentence and the exhaustive field enumeration is dense, but since there is no output schema that enumeration earns its place.
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?
With no output schema, the description carries the return-value burden and does so thoroughly; it also notes members-only access. Only minor gaps remain (no error/pagination or clarity on how archived rows affect the return unless includeArchived is set).
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 100%, including the important 'includeArchived' default-true semantics and the note that productId comes from listRikmaProducts. The description adds no parameter syntax beyond the field listing, so the baseline 3 is appropriate.
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?
States a specific verb+resource ('Get one product of the rikma') and then enumerates exactly what comes back: base row, gallery/delivery, option axes, variants, categories, computed inventory. This clearly separates it from listRikmaProducts, listRikmaProductVariants and updateRikmaProductTool.
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?
Gives a concrete use case ('verify a product before editing stock, pricing or variants') and an eligibility constraint ('Members only'). It does not state when NOT to use it, but the intended workflow context is explicit and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getShippingConfigToolARead-onlyIdempotentInspect
Describe how a rikma delivers what it sells: whether shipping is set up, the currency, handling days, the lowest free-delivery threshold, each zone (countries, districts, cities, postal prefixes) with its methods (fee, freeOver, minSubtotal, ETA days, dispatch days), the pickup points, and per-product rules (which products are pickup/digital only). Members only. For "how much is delivery of X to ?" use quoteShipping — it prices a real cart. Docs: https://1lev1.com/mcp#getShippingConfigTool
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds value beyond them by disclosing the 'Members only' authorization requirement and by detailing the configuration content returned, which substitutes for the missing output schema.
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?
Purpose and return contents are front-loaded in a single dense sentence, followed by the usage routing and a docs link. The long enumeration is heavy but justified given there is no output schema; little of it is wasted.
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?
With no output schema, the description carries the return-value burden and does so thoroughly, while also covering auth (Members only) and disambiguation from quoteShipping. Nothing an agent needs to select and invoke this tool correctly is missing.
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?
One parameter at 100% schema coverage, where the schema already documents projectId and its source (findUserProjectsTool). The description adds no format or syntax detail for the parameter, so the baseline of 3 applies.
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?
States a specific verb (Describe) and resource (how a rikma delivers what it sells), then enumerates the exact configuration facets returned: setup status, currency, handling days, zones, methods, pickup points, per-product rules. It is unmistakably distinct from quoteShippingTool and the rest of the shop/product siblings.
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?
Explicitly routes the agent: for "how much is delivery of X to <city>?" use quoteShipping instead, because it prices a real cart. That names the alternative and the condition that selects it, plus a hard constraint (Members only) that gates invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getShopInventoryToolARead-onlyIdempotentInspect
Inventory overview for a rikma: how many products are active, archived, low, out of stock, and per-variant stock. Also loads the waiting orders and any oversold (short) units so the seller knows what the shelf does not cover. Members only. This is what the Stock tab of sales/manage shows, as facts an agent can act on. Docs: https://1lev1.com/mcp#getShopInventoryTool
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Rikma id. | |
| includeArchived | No | Count archived products in the totals. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the bar is lower. The description still adds useful context beyond them: the 'Members only' authorization requirement and a breakdown of what the response contains (counts, per-variant stock, waiting orders, oversold units).
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 core resource and its contents are front-loaded in the first two sentences, and the prerequisite follows. There is mild filler ('so the seller knows what the shelf does not cover', 'as facts an agent can act on') that does not add actionable information, keeping it from a 5.
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?
With no output schema, the description carries the return-value burden and does so by enumerating the aggregate fields returned. Combined with annotations covering the safety profile and a documented 'Members only' constraint, an agent has enough to invoke it correctly; only pagination/size expectations are unaddressed.
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 100%, so both parameters (projectId, includeArchived) are already documented by the schema. The description alludes to archived counts implicitly but adds no syntax, defaults, or format detail beyond what the schema provides; baseline 3 applies.
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?
States a specific resource ('Inventory overview for a rikma') and enumerates exactly what it aggregates: active/archived/low/out-of-stock counts, per-variant stock, waiting orders, and oversold units. This differentiates it from the list-style siblings (listRikmaProductsTool, listRikmaProductVariantsTool) because it returns aggregate counts rather than item lists.
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?
Provides a prerequisite ('Members only') and a real-world anchor ('what the Stock tab of sales/manage shows'), which implies when the tool is relevant. However, it never states when to prefer this over listRikmaProductsTool or its write counterpart setShopStockTool, so routing between siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSitePagesToolARead-onlyIdempotentInspect
Get a structured list of available pages on the 1lev1.com site, useful for navigation. Docs: https://1lev1.com/mcp#getSitePagesTool
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds only the notion that the result is a 'structured list', without saying anything about the shape, size, pagination, or caching behavior of that list.
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?
A single front-loaded sentence naming verb, resource, and scope, followed by a documentation pointer. Nothing is redundant and nothing buries the operative information.
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?
For a no-parameter, read-only listing tool with no output schema, the description covers purpose and points to external docs. The only shortfall is that 'structured list' leaves the return shape unspecified, though annotations already handle the safety and side-effect questions.
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?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. No parameter-level claims are made that could mislead an agent.
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?
States a specific verb and resource ('Get a structured list of available pages on the 1lev1.com site'), which is far more informative than the bare tool name. It does not, however, differentiate itself from the closely related sibling navigateToPageTool, so an agent cannot tell from the description alone which of the two to pick.
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?
'useful for navigation' implies a context of use, but it is a one-clause hint rather than an explicit when-to-use statement. There is no guidance on when-not to use it or how it relates to alternatives such as navigateToPageTool, searchCatalogTool, or searchContentTool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getUploadSessionToolARead-onlyIdempotentInspect
List the pictures uploaded through an upload link (from createUploadSession): uploadId, url, file name, width and height, in the order they arrived. Pass the uploadIds to setProductImages or createRikmaProduct. Only the user who created the link can read it. Docs: https://1lev1.com/mcp#getUploadSessionTool
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The token createUploadSession returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safe-read profile (readOnlyHint, idempotentHint, destructiveHint=false), and the description adds genuinely new behavior: an authorization constraint ('Only the user who created the link can read it') and an ordering guarantee ('in the order they arrived'). Return shape and pagination limits are not mentioned, keeping it below 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences: purpose and returned fields first, then the downstream hand-off, then the auth caveat. Nothing is redundant, and the docs link is the only marginal addition.
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?
With one parameter, no output schema, and annotation coverage already in place, the description supplies what is missing: the returned fields, ordering, authorization scope, and the natural next tool. An agent can call it and use the result without further inference.
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?
There is a single parameter with 100% schema description coverage, so the schema already explains that the token comes from createUploadSession. The description only restates the same provenance, adding no extra meaning such as token expiry or reuse semantics; baseline 3 applies.
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?
States a specific verb+resource ('List the pictures uploaded through an upload link') and anchors it to the sibling that creates the link (createUploadSession). It also enumerates the returned fields, so an agent knows exactly what it gets without opening the schema.
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?
Explicitly routes the result downstream: 'Pass the uploadIds to setProductImages or createRikmaProduct', which tells the agent when this tool is the right prerequisite. It stops short of an explicit when-not-to-use case or a named alternative lister, so it is strong rather than complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getWishDetailsToolARead-onlyIdempotentInspect
Get one wish (concierge request): what it needs broken into missions and resources, its coverage, and the proposals on it. Full detail for the wish owner and for anyone who proposed on it; others see only the public card of an open wish. Accepting or declining a proposal is never done here - open the returned URL and let the person decide. Docs: https://1lev1.com/mcp#getWishDetailsTool
| Name | Required | Description | Default |
|---|---|---|---|
| wishId | Yes | Wish (ratson) id, from listMyWishes or a /concierge or /wish URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context: permission-dependent visibility (owner/proposer vs. public card) and the warning that proposal decisions cannot be made here but require opening a returned URL. It does not mention pagination or rate limits, keeping it at a 4.
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?
Front-loaded with the verb and resource, followed by return contents, access scoping, and the accept/decline caveat in three efficient sentences. The trailing docs URL is minor overhead rather than filler, so it is not perfectly minimal.
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?
For a single-parameter read-only tool with no output schema, the description does the heavy lifting by describing what is returned (missions, resources, coverage, proposals) and the visibility rules. The reference to a returned URL implies response shape without fully specifying it, leaving a small gap.
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?
Only one parameter (wishId) with 100% schema description coverage, and the schema already explains its origin (from listMyWishes or a /concierge or /wish URL). The description adds no additional parameter meaning, so the baseline of 3 applies.
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?
States a specific verb and resource ('Get one wish (concierge request)') and enumerates exactly what it returns: needs broken into missions and resources, coverage, and proposals. This clearly separates it from siblings like listMyWishesTool (plural list) and getMissionDetailsTool (different resource).
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?
Gives clear context for when the tool applies, including the access-scoped outcomes ('Full detail for the wish owner and for anyone who proposed on it; others see only the public card of an open wish'). It also excludes an adjacent action ('Accepting or declining a proposal is never done here'), but does not name a sibling tool alternative, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listMyConversationsToolARead-onlyIdempotentInspect
List the conversations (forums) the caller takes part in - one per mission, act, decision, profit split or wish proposal they are involved in, newest first, with the last message. Use it to find the forumId of the thread a request is about. Docs: https://1lev1.com/mcp#listMyConversationsTool
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows, default 25. | |
| projectId | No | Only conversations of this rikma. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds behavior the annotations cannot express: result ordering ('newest first'), result granularity (one conversation per involved entity), and payload content ('with the last message'). It omits pagination behavior for the limit parameter, so it falls short of full transparency.
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?
Front-loaded with the core action, then the scoping clause, then the usage cue and docs link; every sentence carries information. The enumeration of entity types is somewhat long but it defines the tool's granularity, so it earns its space.
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?
With no output schema, the description responsibly covers what comes back (last message, newest-first ordering, one row per thread). The remaining gap is pagination/limit interaction, which an agent calling a list tool would benefit from knowing.
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 100%: limit already documents its default (25) and maximum, and projectId documents its meaning. The description adds no syntax or format detail beyond the schema (it doesn't even mention projectId), so the baseline 3 applies.
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 states a specific verb and resource ('List the conversations (forums) the caller takes part in') and pins down the scope that separates it from siblings: only threads the caller participates in, one per mission/act/decision/profit split/wish proposal. An agent can distinguish this from listMyWishesTool, listMyWishOffersTool and readConversationTool without opening any schema.
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?
It gives a concrete trigger ('Use it to find the forumId of the thread a request is about'), which is a real workflow cue. It does not, however, name the alternative tools (readConversationTool, openRikmaConversationTool) or state when not to use it, so routing between the conversation siblings is only partially resolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listMyWishesToolARead-onlyIdempotentInspect
List the caller's own wishes (concierge requests): status, coverage, and how many missions and resources each one still needs. Use it to answer "what did I ask for" and to pick the wish a follow-up is about. Docs: https://1lev1.com/mcp#listMyWishesTool
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and non-openWorld behavior, so the safety profile is covered. The description adds only the shape of the payload (status, coverage, counts), with nothing about ordering, pagination, or result limits for a list operation.
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?
Two compact sentences that front-load what is listed and when to use it, followed by a docs link. No restatement of the title and no filler.
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?
With no parameters, no output schema, and annotations covering the safety profile, the description supplies what an agent needs to select and call it. It stops short of describing result volume or ordering, which matters slightly for a list tool in a family of 40+ siblings.
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?
The tool takes zero parameters, so the baseline is 4. The description correctly adds no parameter guidance because there is nothing to configure, and it does note the per-wish output fields.
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?
States a specific verb and resource ('List the caller's own wishes'), and the parenthetical '(concierge requests)' plus the field list (status, coverage, mission/resource counts) makes the scope concrete. The 'caller's own' qualifier implicitly separates it from detail-oriented siblings like getWishDetailsTool, but no sibling is named explicitly.
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?
Gives a clear use case: answering 'what did I ask for' and selecting the wish a follow-up refers to, which usefully routes the agent toward this list tool rather than a detail tool. No explicit negative guidance or named alternatives, so it stops short of the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listMyWishOffersToolARead-onlyIdempotentInspect
The supplier side of the concierge: every proposal the caller is the proposer of - what someone asked them to provide and what they offered, with its status. Use it to answer "who wants something from me". Responding to one happens on its page, not here. Docs: https://1lev1.com/mcp#listMyWishOffersTool
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real semantic context beyond that: the result is scoped to proposals where the caller is the proposer, and each entry carries a status. It says nothing about ordering, volume, or pagination, which is the only remaining gap.
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?
Three short sentences, front-loaded with the scope, then the use case, then the exclusion, followed by a docs link. Nothing is padded, though the "concierge" framing costs a beat of parsing before the concrete meaning lands.
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?
With no input parameters and no output schema, the description carries the burden of describing what comes back, and it does: what someone asked the caller to provide, what the caller offered, and the status. Combined with annotations, an agent has everything needed to call 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?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless schema applies. The description correctly implies no filtering input is available (the list is implicitly scoped to the caller).
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 names a specific verb+resource (list every proposal the caller is the proposer of) and pins the perspective: the supplier side, not the requester side. It also distinguishes itself from the responding flow (dismissOfferTool), so an agent can separate it from listMyWishesTool without opening either schema.
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?
It gives a concrete use case in the user's own words ("who wants something from me") and an explicit exclusion ("Responding to one happens on its page, not here"), which steers the agent away from treating this as an action tool. It does not name the specific sibling tool that performs the response, so routing is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listProjectResourcesToolARead-onlyIdempotentInspect
List what a rikma already has and needs: its links (live website, repo, Drive, social), resources in progress (equipment, money, services someone provides) and open resources it is looking for, plus its products. Use it to check whether a rikma already has a website/repo before suggesting one. Members only. Docs: https://1lev1.com/mcp#listProjectResourcesTool
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, and non-open-world behavior. The description adds valuable context beyond annotations: the members-only access requirement, the categories of resources returned, and a documentation link. It does not detail pagination or exact return shape, but the bar is lower given the annotations.
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 front-loaded with what the tool lists, followed by usage, access constraint, and docs link. The first sentence is a dense enumeration that could be slightly tighter, but no sentence is wasted.
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?
For a simple one-parameter list tool with no output schema, the description supplies enough context: what it returns, when to use it, and the members-only restriction. Minor gaps like pagination or output format are not disqualifying given the tool's simplicity and annotation coverage.
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 100%, and the single projectId parameter is documented in the schema as coming from findUserProjectsTool. The description adds no additional parameter meaning or syntax, so the baseline 3 applies.
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?
States a specific verb (List) and resource (rikma resources: links, in-progress resources, open resources, products), making the scope unambiguous. It also contrasts itself with suggestion behavior ('before suggesting one'), implicitly distinguishing it from proposeProjectLinkTool.
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?
Gives a clear use case ('check whether a rikma already has a website/repo before suggesting one') and a prerequisite ('Members only'). It does not explicitly name alternatives or state when not to use this tool, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listRikmaCategoriesToolARead-onlyIdempotentInspect
List the categories a product of this rikma can be filed under: the rikma's own (scope "rikma") and the platform-wide ones (scope "platform"), with id, name, slug and parent. Members only. Docs: https://1lev1.com/mcp#listRikmaCategoriesTool
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. You must be a member. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description still adds value beyond them: it discloses the membership authorization requirement and enumerates the returned fields (id, name, slug, parent), which is meaningful given there is no output schema.
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?
One dense but well-ordered sentence: the resource and scopes come first, the returned fields next, the access constraint last, followed by a docs pointer. No filler, though the stacked parentheticals make it slightly harder to scan than a two-sentence split would be.
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?
For a single-parameter, read-only list tool with no output schema, the description supplies everything an agent needs: what is listed, the two scope values, the shape of each returned record, and the membership requirement. Nothing material is left unstated.
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?
With a single parameter at 100% schema coverage, the schema already explains that projectId comes from findUserProjectsTool and requires membership. The description only echoes 'this rikma' and 'Members only', adding no format or sourcing detail beyond the structured field, so the baseline 3 applies.
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?
States a specific verb and resource ('List the categories a product of this rikma can be filed under') and immediately disambiguates the two scopes it returns: the rikma's own ('rikma') and platform-wide ('platform'). This separates it cleanly from sibling tools like listRikmaProductOptionsTool, listRikmaProductVariantsTool and setProductCategoriesTool.
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?
Adds a real precondition ('Members only') that tells the agent the call will fail for non-members, but gives no explicit routing guidance such as when to call this versus setProductCategoriesTool (which presumably assigns categories) or the product-listing tools. Usage is implied by the listing verb rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listRikmaLeadsToolARead-onlyIdempotentInspect
List the enquiries (leads) a rikma is working on before money: people who wrote in, and concierge wish proposals the rikma is a candidate on. Each row: kind, id, name, organization, source, stage (new / contacted / talking / offered / paused), who owns it (ownerId — null means nobody took it yet), lastAt, followUpAt, nextAction and attention (unanswered / followUpDue / stale — why it needs someone). Sorted: needs attention first, then whatever waited longest. No phone or email here — open one lead for that. Members only. Docs: https://1lev1.com/mcp#listRikmaLeadsTool
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | 'open' (default): everything in play · 'attention': needs someone now · 'paused': not now · 'mine' · 'nobody': nobody took it | |
| limit | No | At most this many rows, default 30. | |
| projectId | Yes | Rikma id, from findUserProjectsTool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, and the description does not contradict them. It adds useful behavior beyond that: the sort order ('needs attention first, then whatever waited longest'), the exclusion of contact details, and the members-only requirement.
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 front-loaded with purpose, then row shape, then sort order, then the constraint and docs link — a logical order with no filler. It is dense, packing many facts into three sentences, but every clause carries information an agent needs.
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?
There is no output schema, so the description bears the full burden of describing return shape, and it does so thoroughly by enumerating each row field and the stage/attention vocabularies. Combined with the members-only note and the pointer to getLeadTool for detail, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter, including the view enum, is documented in the schema itself, so the baseline is 3. The description adds context around output fields (stage values, ownerId null meaning, attention reasons) rather than enriching the input parameters, so it does not exceed the schema on this dimension.
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 gives a specific verb and resource ('List the enquiries (leads)') and defines scope precisely: pre-money leads a rikma works on, covering both inbound people and concierge wish proposals where the rikma is a candidate. It also distinguishes itself from the single-lead sibling by saying 'open one lead for that,' which maps to getLeadTool.
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?
It names a clear alternative for the one thing this tool cannot do ('No phone or email here — open one lead for that') and states the access prerequisite ('Members only'). It stops short of explicitly contrasting when to use this list versus other pipeline tools such as getWishDetailsTool or listMyWishesTool, and leaves view selection entirely to the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listRikmaOrdersToolARead-onlyIdempotentInspect
List the paid orders the storefront reported (POST /orders, §3.3) for one rikma: ref, displayNumber, status (paid/shipped/fulfilled/cancelled), oversold, total, currency, buyer (name/email/phone — sensitive), delivery preference and address, payment ref/method, holder, paidAt/shippedAt/fulfilledAt, lines (productId/variantId, nameSnapshot, optionLabelSnapshot, skuSnapshot, quantity, unitPrice, lineTotal) and sales. Members only — buyer contact leaves the server only inside a members-only response (§5.6) and is never copied to a webhook. Docs: https://1lev1.com/mcp#listRikmaOrdersTool
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Return at most this many, default 50. | |
| status | No | Filter to one lifecycle state. | |
| projectId | Yes | Rikma id. | |
| oversoldOnly | No | Only orders whose stock ran short. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context: a members-only access requirement, that buyer contact is sensitive, and that it never leaks into webhooks — useful constraints beyond structured fields.
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?
Front-loaded with the verb and scope, which is good, but the body is a single dense run-on sentence carrying a full return-field enumeration. The field list earns some place since there is no output schema, yet the structure is a wall of text rather than scannable.
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?
With no output schema, the description usefully enumerates the returned fields and flags the sensitive buyer contact, plus the members-only constraint. That is close to complete for a list tool; pagination/default behavior is left to the schema's limit description.
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 100%, so all four parameters (limit, status, projectId, oversoldOnly) are already documented in the schema. The description restates the status enum values but adds no filtering semantics beyond what the schema provides; baseline 3 applies.
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?
States a specific verb (List) and resource (paid orders reported by the storefront for one rikma), so the agent knows it retrieves order records. It does not, however, explicitly distinguish itself from the singular sibling getRikmaOrderTool, leaving the list-vs-get choice to inference.
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?
Usage is implied: 'for one rikma' scopes it to a project and 'Members only' states an access prerequisite. There is no explicit when-to-use guidance, no exclusion, and no routing to getRikmaOrderTool or updateRikmaOrderStatusTool for adjacent tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listRikmaProcessesToolARead-onlyIdempotentInspect
List a rikma's processes: the open-ended threads it is running - an approach to a partner, a launch, a funding attempt - each with its conversation and the open missions, resources and other objects that have formed out of it. Use it to see what is already in motion before starting something new. Members only. Docs: https://1lev1.com/mcp#listRikmaProcessesTool
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Rikma (project) id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive flags. The description adds meaningful non-structured context: 'Members only' discloses an authorization requirement, and it enumerates what the return payload conceptually contains (conversation, open missions, resources, formed objects). It doesn't cover pagination, but the auth constraint and content shape are valuable additions beyond annotations.
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?
Front-loaded with the core purpose, followed by a gloss of what a 'process' means, usage guidance, and access constraint. The em-dash phrase defining 'processes' is slightly verbose but earns its place by disambiguating a domain-specific term. The trailing docs URL is short and useful.
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?
For a read-only list tool with one fully documented parameter and annotations covering the safety profile, the description supplies everything needed: what it returns conceptually, when to call it, and who can call it. Only return-format/pagination details are absent, which is acceptable given the low complexity.
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 100% – projectId is fully documented in the schema as 'Rikma (project) id.' The description adds no syntax, format, or constraint details for the single parameter, so the baseline of 3 is appropriate when the schema does all the work.
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?
Specific verb (List) plus resource (a rikma's processes) with a clarifying definition of what a 'process' is ('open-ended threads... an approach to a partner, a launch, a funding attempt'). This distinguishes it clearly from siblings like startProcessTool, attachToProcessTool, and listProjectResourcesTool.
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?
Explicit when-to-use is given: 'Use it to see what is already in motion before starting something new.' This routes agents away from redundant creation calls and toward this reconnaissance tool, with no ambiguity about the trigger condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listRikmaProductOptionsToolARead-onlyIdempotentInspect
List the option vocabulary (product-option) of one rikma: axes like size / colour, each with its values (value, label, hex, image). These are the axes a product declares it uses (product.options) and the axisKey of a variant is built from them. Members only. Use it to see what size M really is before writing a variant that claims it. Docs: https://1lev1.com/mcp#listRikmaProductOptionsTool
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Rikma id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds behavior the annotations cannot: the 'Members only' authorization requirement and the semantic context that these axes are what a variant's axisKey is constructed from.
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?
Front-loads the resource being listed and stays compact across three dense sentences plus a docs link. Slightly jargon-heavy ('axisKey', 'product.options'), but every sentence carries information and none repeats the schema.
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?
With no output schema, the description usefully sketches the return shape (value, label, hex, image) and the access constraint, which is adequate for a small vocabulary lookup. It omits any note on ordering, size, or pagination of the returned option set.
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?
There is a single required projectId with 100% schema description coverage, so the schema already documents the parameter. The description adds no format, scope, or sourcing guidance for projectId, which matches the baseline 3 for high schema coverage.
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?
States a specific verb and resource: list the product-option vocabulary (axes like size/colour with their values) for one rikma. It also positions the tool against siblings by explaining this is the axis set that product.options declares and that variant axisKey values are built from, which is exactly what distinguishes it from listRikmaProductVariantsTool and getRikmaProductTool.
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?
Gives a concrete when-to-use: check what size M really is before writing a variant that claims it, plus a 'Members only' access condition. It does not name an explicit alternative or a when-not-to-use case, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listRikmaProductsToolARead-onlyIdempotentInspect
List the products (Matanot) of one rikma for the merchant: name, price, pricing mode, status, archived, kind, quantity (-1 = unlimited), lowStockAt, stockTotal, hasVariants, and each variant (sku, price, quant, active, axisKey). This is the seller view used by the sales/manage tabs (moachShopProducts) — not the public catalog. Members only. Call it first to see what you have on the shelf before creating, editing stock or checking orders. Docs: https://1lev1.com/mcp#listRikmaProductsTool
| Name | Required | Description | Default |
|---|---|---|---|
| kindOf | No | Filter by kindOf: total, monthly, yearly, daily, unlimited. | |
| search | No | Free-text filter over name (case-insensitive, in-memory). | |
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. | |
| includeArchived | No | Also return archived products. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful context beyond them: 'Members only' (an auth requirement) and the archived-visibility behavior tied to includeArchived.
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?
Front-loaded with the core action and scope, then the field inventory. The long enumeration is justified because there is no output schema, though the sentence is dense enough that a reader must parse carefully.
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?
With no output schema, the description carries the return-value burden and does so by listing name, price, pricing mode, status, archived, kind, quantity semantics (-1 = unlimited), stock fields, hasVariants, and variant fields. Auth, scoping (one rikma via projectId from findUserProjectsTool), and sequencing are all covered; ordering/pagination is the only notable omission.
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 100%, so all four parameters (kindOf, search, projectId, includeArchived) are already documented with filters, casing behavior, and defaults. The description adds no parameter syntax or format detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list the products of one rikma for the merchant) and enumerates the exact fields returned. It explicitly distinguishes itself from the public catalog ('not the public catalog'), which separates it from siblings like searchCatalogTool and getRikmaProductTool.
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?
Gives a clear call-order rule: 'Call it first to see what you have on the shelf before creating, editing stock or checking orders,' which routes the agent to this tool ahead of create/update/stock operations. It does not name the narrower siblings (getRikmaProductTool, listRikmaProductVariantsTool) as alternatives for single-product or variant lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listRikmaProductVariantsToolARead-onlyIdempotentInspect
List the variant rows (product-variant, the SKU) of products of one rikma — price, compareAtPrice, quant (-1 unlimited), active, position, sku, name, optionValues and axisKey, with productId and pics. This is the truth the checkout consults. Members only. Docs: https://1lev1.com/mcp#listRikmaProductVariantsTool
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Rikma id. | |
| productIds | Yes | Matanot ids to pull variants for (from listRikmaProducts). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent and non-destructive behavior, and the description adds meaningful context beyond them: 'Members only' auth, the formula 'quant (-1 unlimited)', and the semantic weight of 'This is the truth the checkout consults'. It does not disclose any rate/limit or pagination behavior, so it falls 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One densely packed sentence that front-loads verb+resource, then the returned fields, then behavioral notes and a doc link. The long field enumeration is justified because there is no output schema, but the run-on construction is slightly harder to parse than a tighter phrasing would be.
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?
For a two-param, no-output-schema read tool, the definition covers everything an agent needs: what it lists, the fields it returns, the shop-domain meaning, the membership requirement, and a docs link. Annotations carry the safety profile, so nothing material is missing.
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 coverage is 100%, so both projectId and productIds are already documented, including the cross-reference to listRikmaProducts. The description only loosely reinforces this by scoping variants to 'products of one rikma' and naming productId among returned fields; it adds no syntax or constraint detail, so baseline 3 is appropriate.
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?
States a specific verb (List) and resource (variant rows / product-variant / SKU) scoped to 'products of one rikma', and even enumerates the returned fields. This clearly distinguishes it from listRikmaProductsTool and listRikmaProductOptionsTool, which operate on products and options rather than SKU-level variants.
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?
Adds an auth prerequisite ('Members only') and implies the input by saying variants belong to products of one rikma, but never states when to prefer this over listRikmaProductsTool or getRikmaProductTool. Usage is inferable rather than explicit, which fits the 'implied usage' bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listUserMissionsToolCRead-onlyIdempotentInspect
List user missions with various filtering options Docs: https://1lev1.com/mcp#listUserMissionsTool
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of missions to return | |
| filter | No | Filter missions by status | all |
| projectId | No | Filter by specific project ID (numeric) | |
| missionName | No | Search for missions by name (partial match) | |
| projectName | No | Filter by project name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description contributes nothing beyond that — no note on pagination, default limit behavior, or result ordering — so it adds no behavioral value over the structured fields.
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?
One short sentence with the action front-loaded, followed by a documentation link. It is appropriately sized, though the trailing URL is slightly noisy.
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?
For a five-parameter, zero-required listing tool with full schema coverage and covering annotations, the description is minimally adequate: the structured fields supply limits, filters, and safety semantics. It is not misleading, but it omits any mention of result shape or default-limit implications for an agent that needs to call 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 100% and every parameter (limit, filter enum, projectId, missionName, projectName) is documented in the schema itself. The phrase "various filtering options" adds no syntax, default, or matching-behavior detail beyond it, so the baseline 3 applies.
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 states a specific verb+resource ("List user missions") and mentions filtering, which is enough to understand the operation. However, it never distinguishes itself from close siblings such as getMemberMissionsTool or findMissionTool, leaving the agent to guess which listing tool is appropriate.
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?
"with various filtering options" is the only usage hint; there is no when-to-use, no prerequisite, and no named alternative among the many sibling list/find tools. An agent gets no routing guidance at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logLeadActivityToolAInspect
Record a conversation the member had with a lead — a call, a WhatsApp, an email, a meeting, or a note — in the lead's log, as the member. The first outgoing contact with a new lead marks it "contacted". Only log what the member told you happened; never invent a conversation. Members only. Docs: https://1lev1.com/mcp#logLeadActivityTool
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | When it happened, ISO (default now; up to 30 days back). | |
| body | No | What was said or agreed, in the member's words. | |
| kind | Yes | note · call · whatsapp · email · meeting | |
| leadId | Yes | Lead id. | |
| direction | No | 'out' = the member reached them, 'in' = they reached the member. Not for notes. | |
| projectId | Yes | Rikma id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false), and the description adds meaningful context beyond them: a non-obvious hidden state transition on another entity (the lead becomes "contacted" on first outgoing contact) and a members-only authorization scope. It stops short of describing repeat-logging behavior or error conditions, so a 4 rather than 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action, then the side effect, then the constraint, with a docs link at the end. No sentence is filler and nothing important is buried.
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?
For a 6-parameter mutation tool with full schema coverage, annotations, and no output schema, the definition covers purpose, constraints, and the key side effect, which is enough to call it correctly. It leaves minor gaps around whether the tool returns anything and how duplicate entries behave.
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 100% and every parameter is documented in the schema, including the direction enum meaning and the 30-day-back limit on 'at', so the baseline applies. The description adds only marginal meaning beyond that, mainly tying direction='out' to the "contacted" transition; it says nothing about 'body' length or 'projectId' scope.
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?
States a specific verb and resource ("Record a conversation ... in the lead's log") and enumerates the concrete variants (call, WhatsApp, email, meeting, note), which lets an agent distinguish it from the read-side siblings listRikmaLeadsTool and getLeadTool without opening any schema.
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?
Gives real usage constraints: "Only log what the member told you happened; never invent a conversation" and "Members only", plus the side effect that a first outgoing contact marks the lead "contacted". It does not explicitly say when not to use it or name an alternative tool (e.g., reading a lead's log via getLeadTool), which keeps it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openRikmaConversationToolAInspect
Get the rikma's own general conversation - the one thread that belongs to the whole rikma rather than to a single mission, act or decision. It is created the first time someone opens it. Use it for "what are we doing next" talk; anything about a specific mission, decision or profit split belongs in that thing's own thread, where it stays on record. Returns a forumId for readConversation and postConversationMessage. Members only. Docs: https://1lev1.com/mcp#openRikmaConversationTool
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Rikma (project) id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so mutation semantics are partly covered. The description adds genuinely new context: the thread is auto-created on first open (a side effect), and access is "Members only," which is an auth constraint not present in the annotations.
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?
Front-loads the resource and its scope, then the usage rule, then the return contract. Mostly efficient, though the parenthetical "where it stays on record" is decorative and could be cut.
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?
Covers the get-or-create side effect, the members-only constraint, and the return value (forumId) despite there being no output schema, and links to docs. Complete enough for an agent to call it correctly; only the exact error/empty behavior is unstated.
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?
Single parameter with 100% schema description coverage, so the schema already documents projectId as the rikma id. The description adds no syntax, format, or sourcing guidance beyond that, which matches the baseline 3 for a fully documented parameter.
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?
States a specific resource (the rikma's own general conversation) with a clear scope boundary: the thread belonging to the whole rikma rather than to a mission, act or decision. An agent can distinguish it from siblings like listMyConversationsTool and readConversationTool without opening a schema.
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?
Explicitly prescribes when to use it ("what are we doing next" talk) and when not to (anything about a specific mission, decision or profit split belongs in that thing's own thread). It also tells the agent what to do next with the result, naming readConversation and postConversationMessage as consumers of the returned forumId.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
planProjectWorkToolAInspect
Turn a free-text brief into a planning board for a project: proposed missions, chores (acts) and resources, deduplicated against what the project already has. Nothing is created - the tool returns a reviewUrl where the user approves each row in the real form. Use this when the user describes something they want the project to achieve in loose words. If the conversation already holds a concrete breakdown (tasks, scope, decisions), use createPlanBoardTool instead - it saves your rows as written. Requires a projectId (use findUserProjectsTool first if unknown). On failure, error.retryable says whether calling again can help. Docs: https://1lev1.com/mcp#planProjectWorkTool
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | What the user wants to advance, in their own words. At least 20 characters - the richer the brief, the better the breakdown. | |
| title | No | Optional title for the board; otherwise one is suggested. | |
| projectId | Yes | ID of the project to plan for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=false), and the description adds genuinely non-obvious behavior: results are deduplicated against existing project content, nothing is persisted in the project, the return is a reviewUrl with per-row approval, and error.retryable signals whether a retry helps. These details go well beyond the annotations.
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 core action and the createPlanBoardTool alternative are front-loaded, and each sentence (dedup, review flow, prerequisite, retry semantics, docs link) carries distinct information. It is on the longer side, but nothing is redundant.
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?
With no output schema, the description still explains the return value (a reviewUrl for per-row approval), the deduplication behavior, the error contract, and the prerequisite tool. An agent has everything needed to call this 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 100%, so the schema already documents text, title, and projectId, and the description largely repeats this (projectId required, richer brief is better). The findUserProjectsTool hint for projectId adds slight value, but with the schema doing the heavy lifting the baseline 3 is appropriate.
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 states a specific verb and resource: 'Turn a free-text brief into a planning board' with the concrete outputs (proposed missions, chores/acts, resources). It explicitly distinguishes itself from the sibling createPlanBoardTool, so an agent can route correctly without opening either schema.
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?
It gives explicit when-to-use ('the user describes something in loose words'), when-not-to-use ('if the conversation already holds a concrete breakdown... use createPlanBoardTool instead'), and a prerequisite (requires projectId, use findUserProjectsTool first if unknown). This is a complete routing decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postConversationMessageToolAInspect
Post a message, as the user, in a conversation (forum) they take part in - an update on a mission, an answer in a decision thread, a note on a profit split. The other participants are notified. Use it ONLY when the user asked to say or record something; never to think out loud, and never to agree or refuse on their behalf (approving a decision, a split or a proposal is always their own click). The message is marked as written through an agent. Docs: https://1lev1.com/mcp#postConversationMessageTool
| Name | Required | Description | Default |
|---|---|---|---|
| forumId | Yes | Forum id, from listMyConversations. | |
| message | Yes | The message, in the user's own words and language. Plain text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-destructive, non-idempotent write. The description adds genuinely new behavior: other participants are notified, and the message is visibly marked as written through an agent. It does not state what happens on failure or whether repeated posts duplicate, but the added side-effect disclosure is substantial.
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?
Front-loads the action, then the notifications side effect, then the usage constraints, in three tight sentences with no filler. Slightly long, and the docs URL is a minor appendage, but every clause carries decision-relevant information.
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?
For a two-parameter, non-destructive write with full schema coverage, the description covers purpose, side effects, and invocation boundaries. No output schema exists and none is needed for a post-only action.
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 100% for both parameters (forumId sourced from listMyConversations, message in the user's own words/language, plain text, 4000 max). The description echoes the 'in the user's own words and language' intent but adds no format or syntax beyond the schema, so baseline 3 applies.
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?
States a specific verb and resource ('Post a message, as the user, in a conversation (forum) they take part in') and grounds it with three concrete examples (mission update, decision thread answer, profit split note). It is immediately distinguishable from siblings like readConversationTool and openRikmaConversationTool.
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?
Gives an explicit positive trigger ('ONLY when the user asked to say or record something') and two explicit exclusions ('never to think out loud', 'never to agree or refuse on their behalf'), plus the reason (approvals are the user's own click). This is the strongest form of routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepareForSomeoneElseToolAInspect
Prepare a rikma on 1lev1 for ANOTHER person - not the user you are talking to - and get two links to pass on to them: (1) previewUrl - the rich public rikma page showing products, missions, hours/rates, resources, values and share split (read-only, safe to share anywhere, and live-synced with behind-the-scenes edits), and (2) manageUrl - the behind-the-scenes studio where they can edit everything without logging in first (add/remove missions, products, resources and partners, adjust hours +/- and rates, preview the public page, and click to sign up or claim and create the rikma). Use this when a member markets 1lev1 and sets up a new customer's business, or helps another member get started. NEVER use it for the user themselves; for their own business, partnership or idea use proposeRikmaBlueprint. If it is not clear who the rikma is for, ask before calling. Pass that other person's name and email as the user gave them for this, and the intent and blueprint exactly as prepareSignup takes them (include detailed missions with hours & ratePerHour where relevant so they can tweak hours immediately). Direct signupUrl (no account yet) or receiveUrl (existing account) is also returned. Nothing is created until the recipient creates it, and the caller keeps no access once claimed. Refused when the email is the user's own. Valid 14 days. Docs: https://1lev1.com/mcp#prepareForSomeoneElseTool
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | ||
| name | Yes | The name the person gave you to sign up with. | |
| Yes | The email the person gave you to sign up with - the confirmation goes there. | ||
| intent | Yes | ||
| wishText | No | ||
| aboutText | No | ||
| blueprint | No | ||
| countries | No | Country names in English, e.g. ["Israel"]. | |
| forSomeoneElse | Yes | Confirms the rikma is for another person, not the user you are talking to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, destructive=false, idempotent=false) it discloses what actually happens: nothing is created until the recipient claims it, the caller loses access once claimed, the call is refused when the email matches the user's own, and links expire after 14 days. That is exactly the mutation/consequence context annotations cannot convey.
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?
Front-loaded with purpose and the two returned links, then when-to-use, then safety constraints — a sensible ordering. It is a single dense paragraph that runs long, and the parenthetical enumerations of editable items are slightly padded, but nearly every clause carries operational information.
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?
For a 9-parameter tool with a deeply nested blueprint and no output schema, the description explains the returned artifacts (previewUrl, manageUrl, plus signupUrl/receiveUrl), their access model, and expiry — the critical gaps are closed. Remaining shortfall is that several optional top-level parameters are never explained.
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?
With only 44% schema coverage, the description carries real weight: it tells the agent to pass the other person's name and email as given, to reuse prepareSignup's intent and blueprint shape, and to include missions with hours and ratePerHour so the recipient can tweak immediately. It leaves lang, wishText, aboutText, and countries unaddressed, so it doesn't fully close the coverage gap.
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?
States a concrete verb and resource ("Prepare a rikma on 1lev1 for ANOTHER person") with an explicit scope contrast against the user's own case. It immediately names the sibling it is not (proposeRikmaBlueprint) and distinguishes itself from prepareSignup by reference, so an agent can route correctly without opening schemas.
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?
Gives explicit when-to-use triggers (a member markets 1lev1 and sets up a new customer's business, or helps another member get started), an explicit when-NOT ("NEVER use it for the user themselves... use proposeRikmaBlueprint"), and an ambiguity rule ("If it is not clear who the rikma is for, ask before calling").
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepareMissionToolARead-onlyIdempotentInspect
Prepare the mission creation form and return a link that opens it pre-filled. Use this when the user should review and confirm the mission before it is published. A mission is for work that needs an implementer to be found. If a mission in progress already covers the work, create a task (act) on it with createTaskTool instead. Check the rikma's open missions (getProjectDetailsTool) first: when one already covers the work, point the user to it rather than preparing a duplicate. Mission names are also entries in a platform-wide catalogue where each name is unique; publishing a name that is already there reuses that catalogue entry automatically (the rikma's mission keeps its own description, hours and rate), so never rename a mission just to make it unique. Nothing is created yet: status is "prepared" until the user opens the link and publishes. Give the user url exactly as returned — do not decode, shorten or rebuild it. Requires a projectId - use findUserProjects first if not known. Docs: https://1lev1.com/mcp#prepareMissionTool
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Mission name (required). | |
| roles | No | Role names, free text. Matched to the catalogue; created when missing. Up to 8. | |
| valph | No | Value per hour. | |
| nhours | No | Estimated hours. | |
| skills | No | Skill names, free text in the user's language. Matched to the platform catalogue; a skill that does not exist yet is created. Up to 8. | |
| descrip | No | Mission description as rich HTML - strongly preferred over plain text; a partner decides whether to join from this. Allowed tags: h1, h3, p, ul, ol, li, strong, em, a, br. Recommended shape: a short intro <p>, then a <ul> of concrete deliverables and what done looks like. Do NOT HTML-escape it (send `<p>`, not `<p>`). | |
| workways | No | Work-mode names (how the work is done, e.g. "remote", "on-site"), free text. Matched to the catalogue; created when missing. Up to 8. | |
| projectId | Yes | ID of the project where the mission will be created. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotent/non-destructive, and the description adds genuinely new behavioral facts: nothing is created yet (status 'prepared' until publish), catalogue name uniqueness is reused automatically, never rename to force uniqueness, and the returned url must be passed through verbatim. That is well beyond what the annotations convey.
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?
Front-loaded with purpose and the primary routing rule, with dense but non-redundant sentences. It is on the long side and the catalogue-uniqueness passage is somewhat sprawling, but nearly every sentence carries operational information.
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?
There is no output schema, yet the description explains the return value (url, used as-is), the deferred-creation semantics, required inputs and the sibling tools to consult first. For an 8-param tool with rich annotations, nothing an agent needs to call it correctly is missing.
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 100% and each parameter (roles, skills, valph, nhours, descrip, workways) is documented in the schema itself. The description only adds the projectId sourcing hint and the catalogue-matching nuance, so the baseline 3 is appropriate.
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?
Opens with a specific verb+resource ('Prepare the mission creation form') and states the concrete output (a pre-filled link). It goes further by defining what a mission is ('work that needs an implementer to be found'), which cleanly distinguishes it from createTaskTool and the get* inspection tools.
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?
Explicit when-to-use ('when the user should review and confirm the mission before it is published'), explicit alternatives ('create a task (act) on it with createTaskTool instead'), and a prerequisite check ('Check the rikma's open missions (getProjectDetailsTool) first'). It also names findUserProjects as the way to obtain a missing projectId.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepareSignupAInspect
Prepare a 1lev1 signup for a person who has NO 1lev1 account yet, so joining is one screen - the agreement prefilled with their name, email and countries, and the password on the same screen. Use it only when the person's own request is what 1lev1 does: finding partners for their work, turning a business or an idea into a partnership where the work, resources and money each partner brings become a share, or having something made or arranged by partners through the concierge. Do not bring it up in any other conversation. Before calling, tell the person what will be sent and get their go-ahead; pass only the name and email they gave you for this signup (ask for them - never take them from memory or earlier chats). intent: "business" (add their business so the concierge finds and orders from it), "partnership" (see an existing partnership on 1lev1), "idea" (break an idea down and recruit partners) - for these three send the rikma blueprint you built (the same shape as proposeRikmaBlueprint takes: fields, products first, missions, resources, partners) and you get TWO links to share with the person: previewUrl (the rich public rikma page, safe to share with anyone) and manageUrl (behind-the-scenes studio where they can edit the rikma, add/remove missions, products and resources, adjust hours +/-, watch shares update live, and sign up & create from there), plus signupUrl (direct 1-screen prefilled signup); "join" (join rikmas - pass aboutText: who they are, what they do); "order" (they want something made or arranged - pass wishText). You cannot sign, set a password or confirm the email for them, and nothing is created until they do. Always give them BOTH previewUrl (public rikma page) and manageUrl (behind-the-scenes control & signup) when preparing a rikma, or signupUrl otherwise (valid 24h). After they confirm their email they land straight in what you prepared. Docs: https://1lev1.com/mcp#prepareSignup
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | ||
| name | Yes | The name the person gave you to sign up with. | |
| Yes | The email the person gave you to sign up with - the confirmation goes there. | ||
| intent | Yes | ||
| wishText | No | ||
| aboutText | No | ||
| blueprint | No | ||
| countries | No | Country names in English, e.g. ["Israel"]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations: states the mutation is incomplete by design ('You cannot sign, set a password or confirm the email for them, and nothing is created until they do'), gives link lifetimes ('valid 24h'), and describes the post-confirmation landing state. It also discloses the return payload (previewUrl, manageUrl, signupUrl) despite there being no output schema.
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?
Front-loaded correctly (purpose, then eligibility, then consent, then intents), but it is one dense run-on paragraph where the intent enumeration is buried in semicolon clauses. It also repeats itself: previewUrl/manageUrl are explained twice and 'signupUrl' is introduced then re-recommended at the end.
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?
For an 8-parameter tool with a deeply nested blueprint and no output schema, the description covers the risky parts well: consent, input provenance, intent-to-payload mapping, and returned links. It is only short of complete because `lang` is undocumented and country-handling is left implicit.
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?
With only 38% schema coverage, the description carries real weight: it defines all five intent values and, critically, binds each to the right payload (blueprint for business/partnership/idea, aboutText for join, wishText for order) and warns against sourcing name/email from memory. The gap is `lang`, which is never mentioned, and `countries` gets only an indirect mention ('prefilled with their name, email and countries').
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?
Opening sentence gives a specific verb ('Prepare'), a specific resource ('a 1lev1 signup') and a hard scope condition ('for a person who has NO 1lev1 account yet'), so the agent can tell this apart from prepareForSomeoneElseTool or proposeRikmaBlueprintTool without opening a schema. The 'one screen' framing further explains what 'prepare' actually produces.
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?
Explicit gating on both sides: use only when the person's own request matches one of three named 1lev1 use cases, 'Do not bring it up in any other conversation', and a mandatory consent step ('tell the person what will be sent and get their go-ahead'). It also excludes this tool when the person already has an account and points at proposeRikmaBlueprintTool as the shape reference for the blueprint payload.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proposeProductEditsBatchToolAInspect
proposeProductEdit for up to 50 products of one rikma in one call. A proposal belongs to one product (that is how editObject works: one decision per object, with its own clock and vote), so each product gets its own proposal — or applies at once when it is personal. Every item is answered on its own (results[i]); one failing item never stops the others. Members only. Docs: https://1lev1.com/mcp#proposeProductEditsBatchTool
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. You must be a member. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing partial-failure semantics ("Every item is answered on its own (results[i]); one failing item never stops the others") — a property no annotation conveys and which directly affects how an agent should read the response. It also explains the per-product proposal model (own clock and vote), the immediate-apply exception for personal products, and the membership requirement. idempotentHint=false is consistent with the described propose-per-product behavior.
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?
Three front-loaded sentences that earn their place, with the cap, rikma scoping, and per-item isolation stated first. The parenthetical about editObject ("one decision per object, with its own clock and vote") is slightly jargon-heavy and could be tightened, but it carries real domain meaning.
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?
For a batch mutation tool with nested items and no output schema, the definition covers the essentials an agent needs: the 50-item cap, the single-rikma constraint, membership, per-item results, and independence of failures. What is missing is minor — it does not preview what a returned proposal contains or how to confirm the outcome after the call.
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?
With only 50% schema description coverage, the description does add useful meaning: it clarifies that items is a list of per-product edits, capped at 50, all bound to a single rikma, and that each entry produces its own proposal. It does not explain the individual edit fields (name, price, reason, categories, pricingMode) or their differential behavior, leaving that half of the semantics to the schema, so a baseline 3 is appropriate.
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?
States a specific verb and resource ("proposeProductEdit for up to 50 products of one rikma in one call"), which both identifies the operation and implicitly distinguishes it from the single-item sibling proposeProductEditTool. The batch scope and the one-rikma binding are stated up front, so an agent can tell it apart from createRikmaProductsBatchTool or updateRikmaProductTool without opening any schema.
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?
Gives a clear operating context: "one rikma", max 50 products, and the constraint "Members only", plus the crucial domain rule that a proposal belongs to one product, so each product gets its own proposal. It does not explicitly say "use proposeProductEditTool instead for a single product" or state when-not to use this tool, which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proposeProductEditToolAInspect
Change a product's name, description, price, pricing mode or categories. On a rikma product the terms (name, description, price) become an edit proposal to the partners (editObject): the result has proposalId, silenceApprovesAt (when silence approves it at the rikma's restime) and voteUrl — you never approve it. On a personal product, or in a rikma of one, everything applies at once. Categories always apply at once. One open proposal per product: if one is already open, answer it first. Members only. Docs: https://1lev1.com/mcp#proposeProductEditTool
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name. A term. | |
| price | No | New base price. A term. | |
| reason | No | Why — shown to the partners on the proposal. | |
| descrip | No | New description. A term. | |
| productId | Yes | Matanot id, from listRikmaProducts. | |
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. You must be a member. | |
| categories | No | Replace the categories (ids from listRikmaCategories). Operational — applied at once. | |
| pricingMode | No | Personal products only: a rikma product's pricing mode changes its recipe and is changed in the moach. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without an output schema, the description carries the disclosure burden and does it well: it explains that a proposal is created, names the returned fields (proposalId, silenceApprovesAt, voteUrl), states the caller never approves, and flags the single-open-proposal constraint. Annotations only say the call is not read-only and not idempotent; the description adds the real behavioral contract.
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 main action is front-loaded in the first sentence and the rest is dense with necessary conditional behavior. It is somewhat compressed into run-on clauses with internal jargon ('restime', 'editObject') and typos ('rikma'), which costs a little clarity but not much length.
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?
Covers the mutation's effect, the proposal lifecycle, the membership prerequisite, the one-open-proposal limit, and points to external docs — enough for an agent to call it correctly. Minor gaps remain around what happens on failure or which fields are required versus optional, though the schema handles the latter.
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 100%, and the schema already labels name/price/descrip as 'A term', categories as 'Operational — applied at once', and pricingMode as personal-products-only. The description restates that terms become a proposal, which is useful framing but largely duplicates structured data. No new syntax, format, or validation meaning is added beyond the schema.
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?
Opens with a specific verb+resource and enumerates exactly which fields can change (name, description, price, pricing mode, categories). It also splits behavior by product type (rikma vs personal), which an agent needs. It does not distinguish itself from close siblings such as updateRikmaProductTool, setProductCategoriesTool, or proposeProductEditsBatchTool, so the boundary is left to inference.
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?
Gives clear usage context: terms become a proposal on a rikma product, apply immediately on a personal product, categories always apply at once, and members only. It also states a precondition — one open proposal per product, answer it first if one exists. The gap is that it never names the alternative tool to use when a direct update or a batch edit is what's wanted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proposeProjectLinkToolAInspect
Set or clear one of a rikma's links - its website, GitHub repo, Drive, Discord, Facebook, X or WhatsApp. In a rikma with more than one member, changing the website or the Facebook link opens a decision the members vote on (silence approves it when the rikma clock runs out); the other links change directly. Members only. Check listProjectResourcesTool first - the link may already be there. Docs: https://1lev1.com/mcp#proposeProjectLinkTool
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL. Pass an empty string to clear the link. | |
| kind | Yes | Which link to set. | |
| projectId | Yes | Rikma (project) id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the generic mutation profile (readOnlyHint=false, idempotentHint=false). The description goes well beyond that: in multi-member rikmas, website and Facebook changes open a member vote where silence approves on clock expiry, while other links change directly. That voting/approval semantics is exactly the kind of non-obvious behavior an agent needs.
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?
Front-loads the action and target, then layers permission and voting behavior, ending with a docs link. Dense but every sentence carries information; the trailing docs URL is the only mild padding.
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?
With no output schema, the description covers action, target, permissions, and the vote-vs-direct distinction well. It stops short of describing the response (e.g., whether a proposal id is returned when a vote opens), which an agent invoking a mutation tool would benefit from.
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 100%, and the schema itself documents url (empty string clears), kind (enum), and projectId. The description adds nothing beyond what the schema already states, so the baseline of 3 applies.
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?
States a specific verb pair (set or clear) and the exact resource (one of a rikma's named links), enumerating the link kinds. An agent can distinguish this from sibling tools like listProjectResourcesTool or createProjectTool immediately.
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?
Gives explicit sequencing guidance ('Check listProjectResourcesTool first - the link may already be there') and a gate ('Members only'), plus the condition that triggers a vote. It stops short of stating when not to use the tool, but the routing context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proposeRikmaBlueprintToolAInspect
Turn a business, an existing partnership or an idea into a draft rikma on 1lev1: the rikma, its PRODUCTS, missions, resources and partners. Use it when someone wants to add their business so the concierge can find and order from them, to see how their partnership would look on 1lev1, or to break an idea down and recruit partners. Build it yourself from the site you read or from the conversation:
products FIRST: every distinct thing they sell is a product, with its price when it is stated (do not invent prices - leave price out and ask), and
keywords: the words a customer would use for the need it answers, not the product name (a "brunch tray" answers "catering", "breakfast for guests"), andcategories: 1-3 broad domains ("events", "food") - they are linked to the platform's existing categories, which the concierge compares with every wish.missions and resources only when they make a product (put their refs in the product recipe) or when someone is still needed. holder "me" = the person you are talking to does it; holder "open" = recruit someone; holder "partner" + partnerRef = an exact
reffrom a row inpartners. For every partner to invite, add a partner row with a user-provided email and link each mission/resource they will bring with holder "partner" and partnerRef. Do not invent or infer an email; ask the person for it. A partner row without an email cannot receive email, and a partner without linked missions/resources gets only the general rikma join invitation.a running cost is priced per period, never as a total: rent or a subscription is a resource with kindOf "monthly" (or "yearly") and its price per month; ongoing work every month is a mission with
recurring: trueandhoursper month.whyon each row: one sentence of where it came from ("the site lists it at 180"). Pass projectId to add to a rikma the person is already a member of. The draft is the user's own; a rikma prepared for another person is prepareForSomeoneElse. Show the rows to the person in the conversation, ask about anything you guessed (prices especially), and confirm every partner email before using it - never invent an address. To invite a partner to contribute, add them in partners with a ref, then set holder:"partner" and partnerRef to that exact ref on each mission/resource they will bring; listing a partner alone does not create a work invitation. Fix what they say with setAssistantItems, then give them reviewUrl: on that page they tick what to create and create it with one click. On creation the server sends a partner invitation email when delivery is allowed; registered partners also get mission/resource invitation cards. The result reports delivery and includes a join link to share if no email could be sent. Nothing exists and no invitation is sent until the person creates it there. Docs: https://1lev1.com/mcp#proposeRikmaBlueprintTool
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | ||
| missions | No | ||
| partners | No | ||
| products | No | ||
| projectId | No | An existing rikma of the caller to import into (from findUserProjectsTool). | |
| resources | No | ||
| sourceText | No | The site text or conversation summary this was drawn from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say this is a non-destructive, non-idempotent write; the description goes much further, explaining that nothing is created and no email is sent until the user clicks reviewUrl, that partner invitation emails are sent server-side on creation, and that the result reports delivery plus a shareable join link. That is exactly the side-effect detail an agent needs before invoking.
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 purpose and trigger are front-loaded and the bullets carry real operating rules, but the text is a dense wall that repeatedly restates the same prohibition on inventing prices and emails rather than stating it once. It reads partly as workflow coaching rather than tool contract, which lengthens scan time without adding new information.
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?
With 7 parameters, deep nesting, no output schema and no param descriptions in the schema, this is a complex tool — and the description covers the workflow, the reviewUrl handoff and the return behavior ('reports delivery and includes a join link'). The remaining gap is the un-narrated `fields` sub-object and its enums, though those are largely top-level metadata.
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 only 29%, and the description compensates well for the semantic core — products-first with price/keywords/categories, holder 'me'/'open'/'partner' plus partnerRef, per-period pricing for recurring costs, and `why` on each row. But the entire `fields` object (track, vals, restime, currency, location, descripFor, linkToWebsite, publicDescription) and the cryptic `restime` enum are left unexplained, so a meaningful chunk of the payload is documented nowhere.
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 opening sentence states a specific verb and resource: turn a business/partnership/idea into a draft rikma containing products, missions, resources and partners. It also separates itself from the sibling `prepareForSomeoneElse` ('a rikma prepared for another person is prepareForSomeoneElse') and from creation tools ('Nothing exists ... until the person creates it there').
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?
Three concrete triggering situations are given ('add their business so the concierge can find and order from them', 'see how their partnership would look', 'break an idea down and recruit partners'), plus guidance on when to pass projectId and which sibling handles the prepared-for-someone-else case. There is no explicit 'do not use this for X' exclusion, so it stops short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quoteShippingToolARead-onlyIdempotentInspect
Price delivery of a cart from one rikma to an address — "how much is delivery to Haifa?". Give the products (and variant when the product has variants) with quantities, and the address (city is enough inside Israel; the district is resolved from it). Unit prices are read from the rikma's own catalog, so free-delivery thresholds apply as at checkout. Returns every option (delivery methods, pickup points, digital, "contact the seller") with fee, whether it is free, how much more makes it free, ETA and next dispatch day, plus why delivery is unavailable (outsideZones, noDeliveryProducts, needsAddress, weightUnknown). Members only; read-only — nothing is ordered. Docs: https://1lev1.com/mcp#quoteShippingTool
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | What is being sent. | |
| address | No | Where it goes. Omit to see pickup/digital options and which methods would need an address. | |
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), it discloses that pricing is read from the rikma's own catalog so free-delivery thresholds apply as at checkout, that the district is resolved from the city, that membership is required, and enumerates the unavailability reasons returned. This is substantive behavioral context the annotations alone cannot convey.
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?
Front-loaded with the verb and a concrete example, with no filler sentences. It is a single dense paragraph packing in return-value and eligibility detail; readable but could be broken up for faster scanning.
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?
With no output schema, the description compensates fully by enumerating return content (options, fee, free flag, amount-to-free, ETA, dispatch day, unavailability reasons). Nested parameters (items, address) and the optional address path are both covered, so an agent has everything needed to call and interpret it.
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 coverage is 100% so the baseline is 3, but the description adds real meaning: productId/variant pairing from listRikmaProducts-style ids, quantity semantics, and the fact that a city alone is sufficient inside Israel. It stops short of documenting item limits or optional-field nuances beyond what the schema already states.
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?
States a specific verb and resource ('Price delivery of a cart from one rikma to an address') and grounds it with a concrete user question ('how much is delivery to Haifa?'). This clearly separates it from siblings like getShippingConfigTool (configuration) and listRikmaProductsTool (catalog lookup).
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?
Gives a clear usage context ('Members only; read-only — nothing is ordered') and explains the address requirement including the optional-address case for pickup/digital. It does not explicitly name alternative tools (e.g. getShippingConfigTool for config, searchCatalogTool for finding products), so routing is slightly inferred rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
readConversationToolARead-onlyIdempotentInspect
Read one conversation (forum) the caller takes part in: its messages, newest last, with who wrote each. Use it before answering in a thread, so the reply fits what was already said. Docs: https://1lev1.com/mcp#readConversationTool
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many of the most recent messages, default 30. | |
| forumId | Yes | Forum id, from listMyConversations. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds behavior annotations do not: messages are returned newest-last and each is attributed to its author, plus the participation restriction. It does not describe truncation or error behavior when the forum is inaccessible.
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?
Two short sentences plus a docs link, with the purpose and return shape front-loaded ahead of the usage guidance. No filler or restated name/title 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?
There is no output schema, yet the description supplies the return shape (messages in order, with authors) and the intended use, which is enough for a two-parameter read tool. Minor omissions remain, such as whether it errors or returns empty for a forum the caller cannot access.
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 100%, with both forumId (source: listMyConversations) and limit (most recent, default 30) documented in the schema itself. The description adds virtually nothing about the parameters beyond the ordering detail 'newest last', so the baseline 3 applies.
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 gives a specific verb and resource ('Read one conversation (forum)') and scopes it to conversations 'the caller takes part in', which separates it from listMyConversationsTool's plural listing. It also states the returned content (messages with authors, newest last). It stops short of naming a sibling explicitly, so it is clear but not fully differentiated.
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?
'Use it before answering in a thread, so the reply fits what was already said' gives a concrete triggering condition, which is more than most read tools offer. It gives no exclusion or explicit alternative, though the schema's forumId note points at listMyConversationsTool as the source of the id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reviseAssistantToolAInspect
Change a list with the person's own words ("that's right, drop the second, add photography") - the platform turns them into ops. Prefer setAssistantItems when you can name the ops yourself; this one runs a model. Docs: https://1lev1.com/mcp#reviseAssistantTool
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | ||
| instruction | Yes | ||
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the mutation profile (readOnlyHint=false, destructiveHint=false, not idempotent), so the description's added value is the key behavioral fact that a model interprets the free text rather than the caller naming ops. It omits what happens on failure or a version mismatch, so it stops short of full disclosure.
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?
Two tight sentences plus a docs link, with the differentiation from setAssistantItems front-loaded. Slightly dense with nested quotes, but nothing is wasted.
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?
For a model-backed mutation with no output schema, the description covers what the tool does and when to use it but not the prerequisites (a session must already exist) or the meaning of expectedVersion. An agent can invoke it, but may not handle version conflicts or the assistant session lifecycle 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% across three required params. The quoted example ('that's right, drop the second, add photography') usefully conveys that instruction is natural-language text relative to a list, but sessionId and especially expectedVersion (an optimistic-concurrency token) are left completely unexplained.
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?
States a specific verb and resource (change a list) with a concrete input example, and explicitly separates itself from setAssistantItems. An agent can tell the two apart without opening either schema.
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?
Explicit routing rule: 'Prefer setAssistantItems when you can name the ops yourself; this one runs a model.' It names the alternative and the condition that selects it, which is exactly what usage guidance should do.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scanProjectDirectionsToolAInspect
Cheaply scan a project's real current state and propose a few DIRECTIONS for advancing it - strategic angles, not task lists. Use this when the user asks something open-ended like "what should we do next?" or "how do we move this forward?" and has not described a specific goal. These are saved as suggested directions only: nothing is created, and no mission, chore or resource comes out of this call. To break one direction down into concrete missions and resources afterwards, the user opens it on the returned reviewUrl and approves each row there. Requires a projectId. On failure, error.retryable says whether calling again can help. Docs: https://1lev1.com/mcp#scanProjectDirectionsTool
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ID of the project to scan. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by scoping side effects precisely ('saved as suggested directions only: nothing is created, and no mission, chore or resource comes out of this call'), naming the returned reviewUrl as the approval surface, and disclosing failure semantics ('error.retryable' indicates whether a retry can help). This clarifies what the non-readOnly, non-idempotent hints actually mean in practice.
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?
Four sentences, front-loaded with the core action and scope before the triggering conditions, side effects and failure handling. Dense and purposeful, though the docs URL and failure clause make it slightly longer than strictly necessary.
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?
No output schema exists, and the description still names the key output artifact (reviewUrl) and the approval flow that consumes it, plus retryability on failure. It stops short of saying how many directions come back or what the failure payloads look like, but an agent has enough 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?
Only one parameter (projectId) and schema description coverage is 100%, so the schema already documents it fully. The description merely restates 'Requires a projectId' without adding format, sourcing or validation detail, which matches the baseline 3 for high-coverage schemas.
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?
States a specific verb and resource ('cheaply scan a project's real current state and propose DIRECTIONS') and explicitly narrows scope ('strategic angles, not task lists'), which separates it from siblings like planProjectWorkTool, createTaskTool and createPlanBoardTool that produce concrete work items.
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?
Names the triggering situation verbatim (open-ended 'what should we do next?' / 'how do we move this forward?' with no specific goal stated) and routes the follow-up work to a different path — opening the returned reviewUrl to break a direction into missions. Explicit when-to-use plus a named next step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchCatalogToolARead-onlyIdempotentInspect
Search what the platform already offers publicly: products for sale, open missions (work looking for someone) and open resources (equipment, money, services a rikma needs). Use it before opening a new wish or mission - somebody may already do this. Public data only. Docs: https://1lev1.com/mcp#searchCatalogTool
| Name | Required | Description | Default |
|---|---|---|---|
| kinds | No | Which directories to search. Default: all three. | |
| limit | No | Maximum rows per kind, default 10. | |
| query | Yes | Free text; matched against names, descriptions and rikma names. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds a genuine access-scope disclosure ('Public data only') that the annotations do not state, which is useful context for an agent. It stops short of describing result ordering, empty-result behavior, or pagination.
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?
Three short sentences, front-loaded with the resource scope before the usage note. The docs link is minor filler but not disruptive. Every sentence carries some information, though the trailing URL could be trimmed.
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?
For a read-only, three-parameter search tool with a fully documented schema, the description covers what to search, when to reach for it, and the public-data constraint. With no output schema present, it could say more about the shape of results (grouped by kind, row limits), but nothing critical to correct invocation is missing.
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 100%, so all three parameters (kinds, limit, query) are already documented in the schema, including the 'matched against names, descriptions and rikma names' semantics. The description adds nothing beyond that baseline, so a 3 is correct.
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?
States a specific verb (search) and resource (the public catalog), then enumerates the three directories it covers: products for sale, open missions, and open resources. An agent can tell this apart from mutation-oriented siblings like createProjectTool or prepareMissionTool without opening any schema.
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?
Gives explicit when-to-use guidance: 'Use it before opening a new wish or mission - somebody may already do this.' It also scopes usage with 'Public data only.' It does not, however, contrast itself with likely-overlapping siblings such as searchContentTool or findMissionTool, leaving that routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchContentToolARead-onlyIdempotentInspect
Search inside the rikmas the caller belongs to: rikma names and descriptions, open missions, missions in progress, acts, open and in-progress resources, and products. Use it to find something when the rikma is not known - "where was that task about the logo". For public listings of other rikmas use searchCatalogTool instead. Docs: https://1lev1.com/mcp#searchContentTool
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows per kind, default 10. | |
| query | Yes | Free text; matched against names and descriptions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered. The description adds the meaningful access constraint that results are limited to rikmas the caller belongs to, but says nothing about result format, ranking, or pagination behavior beyond what the schema's limit parameter implies.
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?
Three front-loaded sentences: scope and indexed content first, then the usage trigger with an example, then the sibling routing. The docs link is a useful pointer rather than filler, and no sentence is redundant.
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?
For a two-parameter read-only search with full schema coverage and complete annotations, nothing an agent needs is missing: purpose, scope, usage trigger, alternative tool, and a docs reference are all present. No output schema exists, so return-shape detail is not owed.
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 coverage is 100%, so the baseline is 3, but the description goes beyond the schema's terse "matched against names and descriptions" by enumerating the entity kinds whose names/descriptions are searched. That materially clarifies what the single query parameter actually matches.
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?
States a specific verb (search) and scope (inside the rikmas the caller belongs to), then enumerates exactly what surfaces are indexed: rikma names/descriptions, missions, acts, resources, products. It explicitly distinguishes itself from the sibling searchCatalogTool, so an agent can route without opening either schema.
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?
Gives an explicit when-to-use condition ("when the rikma is not known") with a concrete example query. It also names the alternative and its distinct condition ("For public listings of other rikmas use searchCatalogTool instead"), which is textbook alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setAssistantItemsToolAInspect
Change the draft list with small ops - what the person just told you: keep ("that is right"), drop ("not now", reversible with restore), add, rename, setSpec (price, keywords, hours…), link (a product recipe), setField (the rikma name, description…). Refer to rows only by their key. Rows already created on the platform, or a wish row a supplier answered, cannot be changed here - you get reason "created"/"committed"; send the person to the site for those. Pass the version you last saw; conflict:true means it changed meanwhile (maybe on the site) - show the returned list and ask again. Docs: https://1lev1.com/mcp#setAssistantItemsTool
| Name | Required | Description | Default |
|---|---|---|---|
| ops | Yes | ||
| say | No | Your one-line summary of the change, for the transcript. | |
| sessionId | Yes | ||
| instruction | No | The person's words, for the shared transcript. | |
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the mutation profile (readOnly false, destructive false, idempotent false, openWorld false), and the description adds genuine extra context: drop is reversible via restore, version conflicts surface as conflict:true, and failures return reason codes 'created'/'committed'. It does not describe auth requirements or the full shape of the returned list, but the disclosure goes well beyond the annotations.
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?
Front-loaded with the core action and packed into a few dense sentences where each clause carries op semantics, conflict handling, or error routing. The run-on parenthetical style and domain jargon ('rikma') add reading cost, but there is little pure filler.
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?
For a 5-param mutation tool with no output schema and low schema coverage, the description covers the important ground: op vocabulary, version/conflict handling, and terminal error reasons. It does not explain sessionId or enumerate the group values, and success return content is only alluded to ('show the returned list').
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 coverage is only 40%, so the description has to carry weight, and it does: it explains key ('refer to rows only by their key'), spec contents (price, keywords, hours), setField targets (rikma name, description), link (a product recipe), and expectedVersion ('pass the version you last saw'). sessionId and the group enum values are left to the schema, but the operation-bearing parameters are well covered.
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 states a specific verb+resource ('change the draft list with small ops') and enumerates the eight operations, so the agent knows exactly what the tool mutates. It also implicitly separates the draft list from committed rows, which is what distinguishes it from applyAssistantTool, though no sibling is named explicitly.
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?
It maps real user utterances to ops ("that is right"→keep, "not now"→drop) and gives an explicit negative case: rows already on the platform or a supplier-answered wish row cannot be changed here and the person should be sent to the site. The conflict path (pass expectedVersion, conflict:true means show the list and ask again) is also spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setProductCategoriesToolAInspect
Replace the categories of a product with these ids (from listRikmaCategories; [] removes them all). Where a product is filed is operational — applied at once, no proposal. Members only. Docs: https://1lev1.com/mcp#setProductCategoriesTool
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Matanot id, from listRikmaProducts. | |
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. You must be a member. | |
| categoryIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond the annotations: the change is applied immediately rather than proposed, the [] case removes every existing assignment, and membership is required. That materially improves on the bare readOnlyHint=false / destructiveHint=false pair. Minor tension: a set-replacement operation reads as idempotent in nature while idempotentHint=false says otherwise, but the description does not state a conflicting behavior, so this is not a contradiction.
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?
Two tight sentences, front-loaded with the action and its replacement semantics, then the immediacy caveat and prerequisites. The trailing docs URL is fine but the parenthetical and em-dash stacking makes it slightly denser than needed.
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?
For a 3-parameter mutation tool with no output schema, everything needed to call it correctly is present: identifier sources, clear semantics, member prerequisite, and the fact that the write takes effect immediately. Nothing essential is missing.
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 coverage is 67%; the two id parameters are already documented in the schema, but categoryIds has no schema description at all — the description supplies its source (listRikmaCategories) and the empty-array convention, which is the key undocumented meaning. The 20-item cap and id format are left to the schema.
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?
"Replace the categories of a product with these ids" states a specific verb (replace), resource (product categories) and the exact replacement semantics. The clause "applied at once, no proposal" implicitly separates it from the sibling propose* tools, so an agent can route between them without opening a schema.
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?
Gives concrete operational guidance: ids come from listRikmaCategories, an empty array clears all assignments, and the caller must be a member. It does not explicitly say when to prefer this over updateRikmaProductTool or upsertProductCategories-style siblings, so routing against those is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setProductImagesToolAInspect
Set a product's pictures: the cover (coverId), the gallery after it (galleryIds, in order; max 12 pictures with the cover) and, optionally, each variant's own pictures. Pictures are operational — like stock, they apply at once on every product, rikma or personal, with no proposal: they show the same product, they do not change what anyone agreed to. Ids come from getUploadSession, uploadMediaFromUrl or getRikmaProduct. Omit galleryIds to keep the gallery and only change the cover. Members only. Docs: https://1lev1.com/mcp#setProductImagesTool
| Name | Required | Description | Default |
|---|---|---|---|
| coverId | No | Upload id of the cover picture. | |
| variants | No | Per-variant pictures. | |
| productId | Yes | Matanot id, from listRikmaProducts. | |
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. You must be a member. | |
| galleryIds | No | Upload ids after the cover, in order. [] clears the gallery but the cover. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the safety profile (not read-only, not destructive, not idempotent), so the description's job is to add context — which it does: changes take effect at once on every product, no approval flow, members-only auth, and a 12-picture cap including the cover. It does not explain what happens to existing images not mentioned or any failure/response behavior, which keeps it short of 5.
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?
Front-loaded with the operation, then limits, then semantics, then id sources, then auth — a sensible order with little waste. The 'rikma or personal' aside and the trailing docs URL add marginal words, but nothing is redundant enough to obscure the call.
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?
For a 5-parameter mutation tool with no output schema and full annotation coverage, everything an agent needs is present: required ids, per-slot semantics, limits, ordering, and the auth requirement. Nothing essential about invoking it correctly is missing.
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 coverage is 100% so the baseline is 3, and the description genuinely adds meaning beyond the schema: gallery ordering is significant, the 12-picture total includes the cover, an empty array clears the gallery but preserves the cover, and variant pictures are optional per-variant. It still does not say what happens for an absent coverId, which is the one gap.
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?
States a specific verb and resource ('Set a product's pictures'), enumerates exactly which slots are set (cover, gallery, per-variant), and implicitly separates itself from the proposal-based siblings in the same family. An agent can distinguish it from proposeProductEditTool or setProductCategoriesTool without opening the schema.
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?
Gives explicit operating instructions: omit galleryIds to leave the gallery untouched, sourced ids come from getUploadSession, uploadMediaFromUrl or getRikmaProduct, and membership is required. It also states the key decision rule versus the propose* siblings — this applies immediately with no proposal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setShopStockToolAInspect
Update the shelf stock of a product or of one of its variants. Operational change (§4.6): any rikma member may do it, it applies at once, and prices are never touched. Two modes: set counts the shelf ("there are 7"), add adds a delivery ("12 came in"), reading the quantity on the server first so a sale that landed meanwhile is not overwritten. Use quant=-1 for unlimited. A product that is sold by variant keeps its stock on the variants (Matanot.quant is not used). Members only. Docs: https://1lev1.com/mcp#setShopStockTool
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | `set` counts, `add` delivers. Default set. | |
| value | No | Units: the new count (`set`) or how many came in (`add`). Ignored when unlimited=true. | |
| productId | Yes | Matanot id (from listRikmaProducts). | |
| projectId | Yes | Rikma id. | |
| unlimited | No | Pass true for unlimited stock (-1). | |
| variantId | No | Variant id (from listRikmaProductVariants or listRikmaProducts). Required when the product has variants. Pass null/omit for a simple product. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: applies immediately, never touches prices, only members may invoke, and the add path reads server-side quantity first to avoid clobbering concurrent sales — which is consistent with idempotentHint=false. However, the stale 'quant=-1' reference conflicts with the actual 'unlimited' parameter and could mislead an agent.
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?
Front-loads the action and mode distinction, then adds preconditions and the variant caveat in a compact paragraph; the docs link is unobtrusive. The stray 'quant' reference is the only wasted/confusing 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?
With 6 parameters, full schema descriptions, and no output schema, the description covers permissions, side effects, concurrency behavior, and variant handling adequately. Return/confirmation behavior is not described, but that is a minor gap given the rich schema and annotations.
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 coverage is 100%, so baseline is 3; the description's mode explanation and variant rule largely restate schema text. The 'sale that landed meanwhile' nuance is useful, but the 'quant=-1' mention references a parameter name that does not exist in the schema.
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?
States a specific verb and resource ('Update the shelf stock of a product or of one of its variants') and narrows scope to stock only, which separates it from the general updateRikmaProductTool. It never names that sibling explicitly, so the differentiation is implied 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains the two modes (set counts existing units, add records a delivery) with concrete examples, states the members-only precondition, and specifies the variant rule. It does not point to an alternative tool or say when not to use it, e.g. for catalog/price edits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
startAssistantToolAInspect
Open the person's living list of (a) their PROFILE - skills, roles, ways of working, values, resources they own - seeded from what is on it now, plus what text says about them (pass what they told you); or (b) a WISH - pass ratsonId (from listMyWishesTool), or text to start a new draft wish from their words. Returns the rows with keys. Then refine with setAssistantItems (your own ops - preferred) or reviseAssistant (their words), and save with applyAssistant. A rikma is not started here: use proposeRikmaBlueprint. Docs: https://1lev1.com/mcp#startAssistantTool
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| text | No | ||
| ratsonId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it is not read-only and not destructive, so the write nature is known. The description adds meaningful context that this seeds from 'what is on it now' and returns rows with keys, which annotations don't convey. But it does not state whether starting overwrites existing list contents, whether it can be called repeatedly, or the auth/ownership requirements.
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?
Dense but front-loaded: the core purpose opens the sentence, then branches into (a) and (b), then the follow-up flow. Some nested parentheticals make it slightly heavy, but no sentence is wasted.
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?
Covers both usage branches, the follow-up editing/saving workflow, an exclusion to a sibling tool, and a docs link. Given the complex multi-step domain and no output schema, it provides an agent enough to call correctly, though it omits return-shape detail and ownership/permission context.
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 coverage is 0%, so the description must compensate. It explains that text is 'what they told you' and ratsonId comes from listMyWishesTool, and that kind selects profile vs wish. However it never maps ratsonId is only for wish, nor clarifies that text can seed either kind, leaving some ambiguity about parameter combinations.
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?
States a specific verb+resource: 'Open the person's living list' of a PROFILE or WISH, with the two kinds clearly distinguished. It does not name what a 'living list' or 'rikma' means in domain terms, but the two branch types are concrete enough for an agent to act.
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?
Gives clear when-to-use guidance for each branch (pass text vs ratsonId) and names the follow-up tools (setAssistantItems, reviseAssistant, applyAssistant). It also states an exclusion: 'A rikma is not started here: use proposeRikmaBlueprint.' Lacks explicit preconditions (e.g., must a profile already exist to seed from?).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
startProcessToolAInspect
Start a process in a rikma: a named thread with its own conversation, for something that is not yet a mission or a resource - approaching an organisation, preparing a launch, chasing funding. The description becomes the first message, so a half-formed idea can be written in plain words and take shape later: as it becomes concrete, the open missions and resources it needs are created in the normal way and attached with attachToProcess. Members only. Use it when the user wants to record something the rikma is pursuing, not to file your own notes. Docs: https://1lev1.com/mcp#startProcessTool
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Short name, e.g. "Approach: city community centre". | |
| projectId | Yes | Rikma (project) id. | |
| description | No | The raw text, in the user's own words: what this is, who it involves, what is hoped for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (non-read-only, non-destructive, non-idempotent, closed-world), so the bar is lower. The description adds real context beyond them: the description field becomes the first message (a side effect), and the operation is restricted to members (an auth requirement). It does not describe the returned object, though no output schema exists.
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?
Purpose is front-loaded in the first clause and every sentence carries content (definition, lifecycle, member restriction, usage rule). It is slightly long and the 'take shape later' phrasing is a touch indirect, but nothing is filler.
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?
For a non-idempotent creation tool with full schema coverage, no output schema, and annotations already declaring the safety profile, the description supplies the remaining essentials: what the entity is, what gets created as a side effect, who may call it, and how the lifecycle continues into attached missions/resources.
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 coverage is 100%, so the baseline is 3, but the description earns extra credit by explaining the semantic role of the `description` parameter ('becomes the first message ... can be written in plain words') — meaning the schema itself does not convey. It does not clarify `name` beyond the schema's own example.
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?
States a concrete verb+resource ('Start a process in a rikma') and then defines what a process actually is ('a named thread with its own conversation'). It explicitly distinguishes it from the siblings it could be confused with — 'something that is not yet a mission or a resource' — so an agent can separate it from prepareMissionTool/createTaskTool/createProjectTool.
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?
Gives explicit when-to-use ('when the user wants to record something the rikma is pursuing') and an explicit exclusion ('not to file your own notes'), plus a prerequisite constraint ('Members only'). It also routes the later-stage workflow to the named sibling attachToProcess, so alternatives are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timerActionToolBInspect
Perform actions on user timers (start, stop, pause, resume) Docs: https://1lev1.com/mcp#timerActionTool
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The action to perform on the timer | |
| missionId | No | Specific mission ID (optional, will find active timer if not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, covering the safety profile. The description adds that multiple actions are supported but does not disclose side effects, reversibility, or permission requirements. With annotations doing the heavy lifting, a 3 is appropriate.
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?
Single, front-loaded sentence with no wasted words. The docs link is appended efficiently. It is appropriately sized for a simple action tool, though it could be slightly more informative without sacrificing conciseness.
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?
The tool is a mutation with no output schema, and the description is minimal. It does not explain what happens on start/stop/pause/resume or how the missionId interacts with active timer discovery. For a non-idempotent action tool, this leaves some gaps.
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 coverage is 100%, and the schema already documents both parameters including the enum values and the optional missionId behavior. The description adds no additional meaning beyond what the schema provides, so the baseline 3 applies.
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?
States a specific verb ('Perform actions') and resource ('user timers') with the full action set enumerated. It is clear, though it does not differentiate itself from siblings like getActiveTimersTool or applyAssistantTool, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention getActiveTimersTool for finding timers, nor does it explain when each action is appropriate. The only hint is an external docs link, which is not inline guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undoAssistantToolBInspect
Undo the last change to the draft list (from here or from the site). Docs: https://1lev1.com/mcp#undoAssistantTool
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | ||
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and closed-world scope, so the safety profile is covered structurally. The description adds genuinely useful scope context — that the undone change may have originated from the site, not just this session — but says nothing about the version-conflict behavior implied by expectedVersion or what happens on repeated calls given non-idempotency.
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?
A single front-loaded sentence with the verb and target up front, plus a docs link; no filler. Slightly compact given the undocumented parameters, but nothing is wasted.
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?
For a mutation tool with two required, fully undocumented parameters and no output schema, the description omits precondition/failure behavior and return semantics. The only substantive detail added is the cross-context scope of the undo, leaving an agent unable to call it confidently against a version guard.
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% for two required parameters, and the description mentions neither sessionId nor expectedVersion. expectedVersion in particular carries concurrency semantics (it likely guards against undoing the wrong revision) that the agent cannot infer from the bare 'integer' type, so the description fails to compensate for the coverage gap.
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?
States a specific verb and resource ('Undo the last change to the draft list') and scopes it to the most recent change only, which distinguishes it from the sibling applyAssistantTool/reviseAssistantTool pair that make forward changes. It does not explicitly name a sibling or contrast with a redo/version-history tool, so it falls short of full differentiation.
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 last change' implies a single-step, most-recent-only undo rather than an arbitrary rollback, and '(from here or from the site)' signals it spans changes made outside this session. However, there is no explicit guidance on when to prefer this over applyAssistantTool/reviseAssistantTool or on failure/precondition handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateRikmaOrderStatusToolAInspect
Advance a paid store order to shipped, fulfilled, or cancel it as its holder. Any member may mark shipped/fulfilled (getting the parcel out is the rikma’s work); cancel is holder-only — the member whose till took the money — because it resets their own self-reported sales not yet in a split; sales already in a split are left and the rikma is told to settle the refund. Idempotent (same status twice succeeds quietly); backwards transitions refuse (§3.4). On cancel, pass restock:true to put the items back on the shelf (default: only when the order was not yet shipped). Members only. Docs: https://1lev1.com/mcp#updateRikmaOrderStatusTool
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | shipped → parcel left, fulfilled → delivered/picked up, cancel → refund. | |
| reason | No | Cancel reason shown on the order and in sale notes. | |
| restock | No | On cancel: put items back in stock. Default: only when not yet shipped. | |
| orderRef | Yes | Order ref (`<rikma>:<externalId>` as POST /orders answered) or orderId. | |
| projectId | Yes | Rikma id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'Idempotent (same status twice succeeds quietly)', but the annotations declare idempotentHint=false, a direct contradiction an agent would act on when deciding whether to retry. There is also tension with destructiveHint=false given that cancel can trigger a refund, restock inventory and reset self-reported sales. Rich context aside, the explicit conflict with structured metadata forces a 1 per the contradiction rule.
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?
Front-loaded with the core action and organized as action → permission → edge cases → docs link; nearly every clause carries operational weight. It is dense and slightly run-on, and domain terms like 'rikma' and 'till' are used without definition, which costs a point.
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?
For a 5-parameter mutation tool with no output schema and a rich annotation set, the description covers the gaps that matter: permissions per action, permission boundaries, idempotency, invalid transitions, restock defaulting, and a docs URL. An agent has everything needed to call it correctly aside from the annotation conflict noted above.
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 coverage is 100%, so the baseline is 3, and the description goes beyond it by tying the action enum values to workflow consequences (shipped = parcel left, fulfilled = delivered/picked up, cancel = refund) and by explaining when the restock default flips (only when not yet shipped). It adds little on orderRef/projectId format, which the schema already covers.
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?
States a specific verb+resource+target set: advancing a paid store order to shipped, fulfilled, or cancel. An agent can immediately distinguish it from getRikmaOrderTool/listRikmaOrdersTool (reads) and from setShopStockTool (inventory).
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?
Explicitly routes by actor and condition: any member may mark shipped/fulfilled, cancel is holder-only because it resets their own self-reported sales, and sales already in a split are left for the rikma to settle. It also states behavioral rules (idempotent repeats, backwards transitions refused, restock default) so the agent knows when the call is legal before invoking it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateRikmaProductToolBInspect
Update shop-facing fields of a product: hideFromDiscovery (show/hide in the public /gift directory), and kindOf for operational edits. More broadly this is the merchant-facing "show/hide" for discovery — what the sales/manage products tab does. Pricing of a rikma product is a term and belongs in editObject with rikma consent (§4.6); this tool says so and returns the edit URL when asked to change price on such a product. For discovery, the change applies at once. Docs: https://1lev1.com/mcp#updateRikmaProductTool
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New display name (for personal products this applies at once; for rikma products it is a term). | |
| descrip | No | New description. | |
| productId | Yes | Matanot id (from listRikmaProducts). | |
| projectId | Yes | Rikma id (membership check). | |
| hideFromDiscovery | No | Hide it from /gift directory (true) or show it again (false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-readonly, non-destructive, non-idempotent mutation, so the safety bar is lower. The description adds behavior beyond that: discovery changes 'apply at once', and requests to change price return the edit URL rather than performing the change. These operational traits are genuinely useful and not derivable from annotations.
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 main purpose is front-loaded, but the middle sentences are meandering ('more broadly this is...', the §4.6 citation, the docs link) and include a field (kindOf) not in the schema. It is not bloated enough to be a 2, but several clauses do not earn their place cleanly.
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?
For a mutation tool with annotations and no output schema, it covers the key routing (pricing -> editObject) and the immediate-effect behavior, which is adequate. But it omits any note on partial vs. full updates and misdescribes the editable fields, leaving an agent with an incomplete/inconsistent picture of what can actually be changed.
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 coverage is 100%, so the schema already documents every parameter including hideFromDiscovery's semantics. The description adds little parameter-level detail and instead references a non-existent 'kindOf' field, which is misleading rather than additive. Baseline 3 applies when the schema carries the load.
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 states a specific verb+resource ('Update shop-facing fields of a product') and positions itself against editObject for pricing, which helps distinguish it. However it leads with 'kindOf for operational edits', a field that does not exist in the input schema, muddying exactly what this tool edits (actual params are name, descrip, hideFromDiscovery). The core purpose is clear but the field list is inconsistent with the schema.
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?
It gives clear context ('merchant-facing show/hide for discovery — what the sales/manage products tab does') and names the alternative for pricing edits (editObject with rikma consent). The when-to-use is concrete, though it stops short of explicit when-not-to-use conditions beyond the pricing case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uploadMediaFromUrlToolAInspect
Upload one product picture from a public URL (the server downloads it) or from base64 (for agents that can read files; up to 3MB). The bytes must really be JPG, PNG or WebP (checked, not trusted from the name); a URL picture is up to 10MB. Internal or private addresses are refused. Returns uploadId for setProductImages or createRikmaProduct. For pictures the user attached to the chat, use createUploadSession instead. Members only. Docs: https://1lev1.com/mcp#uploadMediaFromUrlTool
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public http(s) URL of the picture. | |
| base64 | No | The picture as base64 or a data: URL. Use url or base64, not both. | |
| fileName | No | A name for the stored file. | |
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. You must be a member. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety profile (readOnly=false, destructive=false, openWorld=false, idempotent=false). The description adds genuinely non-obvious behavior: the server downloads the URL, per-source size caps (3MB base64, 10MB URL), magic-byte validation rather than extension trust, and refusal of internal/private addresses (SSRF guard). These are real additions, but the return contract is only summarized as 'returns uploadId', with no mention of error shapes or whether partial/failed uploads leave residue.
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?
Front-loaded with the core action and both input modes, then constraints, then routing and prerequisites — a sensible priority order. It is dense with parentheticals in a single paragraph, which costs a little readability, but no sentence is filler.
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?
For a 4-param upload tool with no output schema, it covers the source modes, size limits, validation, auth requirement, SSRF policy, downstream handoff, and a sibling alternative. An agent has everything needed to call it correctly on the first attempt.
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 coverage is 100%, so the baseline is 3, and the description still adds meaning: the per-parameter size ceilings (3MB base64 vs 10MB URL) and the byte-level format restriction are not in the schema. The url-vs-base64 exclusivity is already in the schema text, so that part is repetition.
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?
States a specific verb and resource (upload one product picture) plus both accepted sources (public URL downloaded server-side, or base64). It explicitly distinguishes itself from the sibling createUploadSessionTool for chat-attached files, so an agent can route without opening either schema.
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?
Gives explicit when-to-use (URL or base64 for agents that can read files) and when-not-to-use (chat attachments go to createUploadSession). It also names the downstream consumers (setProductImages, createRikmaProduct) and the membership prerequisite, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upsertProductOptionsToolAInspect
Create or extend the rikma's option axes — e.g. Size (S, M, L) and Colour (Red #d22, Blue #22d). Axes belong to the rikma and are shared by its products; an axis with the same key gains the new values and keeps the old ones (another product may sell them), labels and swatch colours are updated. Operational: applied at once. Up to 3 axes per call and 30 values per axis. Members only. Docs: https://1lev1.com/mcp#upsertProductOptionsTool
| Name | Required | Description | Default |
|---|---|---|---|
| options | Yes | ||
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. You must be a member. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the merge contract ('an axis with the same key gains the new values and keeps the old ones... labels and swatch colours are updated'), the authorization requirement (members only), per-call limits, and that changes take effect at once with no preview. These are exactly the facts an agent needs before mutating shared data. The gap is that it never states what comes back on success/failure or what happens to values already referenced by other products' variants when a label is relabelled.
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?
Front-loaded with the verb and resource, then examples, then merge semantics, then operational facts — a clean information gradient. The em-dash example clause and the docs link add length, but every sentence carries distinct content; nothing is pure filler.
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?
For a non-idempotent, non-destructive write tool with no output schema and only two top-level parameters, the description covers purpose, merge behavior, limits, auth, and immediacy — enough for a correct call. What it omits is the response shape and any warning about downstream effects on products or variants that consume the axis, which would matter for a shared-resource mutation.
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 coverage is only 50%, so the description has work to do, and it does explain the semantic role of the 'key' field (matching an existing axis by key triggers merge rather than duplication), which is more than the schema's one-line note conveys. It also restates the maxItems limits in human terms and reinforces the projectId membership requirement. It does not clarify the string-vs-object value union, hex format, or how 'value' keys behave when defaulted, leaving part of the coverage gap unfilled.
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 gives a specific verb and resource ('Create or extend the rikma's option axes') and backs it with concrete domain examples (Size S/M/L, Colour with hex). It implicitly separates this from variant-level tools by explaining that axes belong to the rikma and are shared by its products, but it never names the close sibling upsertProductVariantsTool or listRikmaProductOptionsTool, so the differentiation is inferred 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies real operating constraints — members only, up to 3 axes per call, 30 values per axis, applied immediately — which shape how the tool is invoked. It does not say when to prefer this over upsertProductVariantsTool, or when to read state first with listRikmaProductOptionsTool, and it gives no exclusion conditions; usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upsertProductVariantsToolAInspect
Create or update variants of a product. Each item names its options ({ "size": "M", "color": "Red" } — the axes must exist: upsertProductOptions), and the axisKey is built from them. An item with variantId, or with options that match an existing variant, updates it; otherwise a new variant is created. Only the fields you pass move. Stock (quant, -1 unlimited), active, SKU, position and pictures apply at once. On a rikma product a new variant, or a price that moves, goes to the partners as one edit proposal (proposalId, silenceApprovesAt, voteUrl); on a personal product everything applies at once. Variants are never deleted — set active:false. Members only. Docs: https://1lev1.com/mcp#upsertProductVariantsTool
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Why — shown to the partners when something is proposed. | |
| variants | Yes | ||
| productId | Yes | Matanot id, from listRikmaProducts. | |
| projectId | Yes | Rikma (project) id, from findUserProjectsTool. You must be a member. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, destructiveHint=false, idempotentHint=false; the description goes far beyond with partial-update semantics ("Only the fields you pass move"), the rikma-vs-personal proposal fork with proposalId, silenceApprovesAt and voteUrl, and the operational-vs-term split (stock/active/SKU/position/pictures apply at once, a price move becomes a proposal). The membership requirement is also disclosed. No contradiction with destructiveHint=false, since deletion is explicitly excluded.
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?
Front-loaded with the operation, then match semantics, then the proposal consequence, then the deletion rule and access restriction — a sensible ordering with no filler. Some sentences are telegraphic jargon ("term", "rikma", "Matanot") and the operational-field list reads as a compressed parenthetical, which costs a little readability but not accuracy.
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?
With no output schema, the description carries the return burden and does name the proposal fields an agent must surface to a user (proposalId, silenceApprovesAt, voteUrl). For a 4-parameter, 100-item batch mutation with a dual apply path, the definition is nearly complete; the main residue is what the response looks like when everything applies immediately on a personal product.
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 coverage is 75%, so parameters are largely documented already, but the description adds real semantics the schema lacks: that axisKey is derived from the options map, that variantId-versus-optionValues selects update vs create, and that "quant, -1 unlimited ... apply at once" versus a changed price which is a term. It still doesn't clarify the return payload shape for the immediate-apply case.
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?
"Create or update variants of a product" names a specific verb pair and resource, and the rest of the description immediately separates it from siblings: option axes come from upsertProductOptions, and listing is handled elsewhere. An agent can distinguish this from listRikmaProductVariantsTool and updateRikmaProductTool without opening a schema.
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?
It gives explicit create-vs-update conditions (variantId present, or options matching an existing variant) and states the non-obvious alternative to deletion: "Variants are never deleted — set active:false." It also points at upsertProductOptions as a prerequisite. It stops short of routing between this tool and proposeProductEditTool/proposeProductEditsBatchTool, which an agent would need to choose a write path.
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.
15 tool updates
- Added
createRikmaProductsBatchTool - Changed
createRikmaProductTool4 fields changed- added
Input schema / properties / categoriesAdded value: +{ + "description": "With projectId: category ids from listRikmaCategories.", + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array" +} - added
Input schema / properties / galleryIdsAdded value: +{ + "description": "With projectId: more upload ids after the cover, in order.", + "items": { + "type": "string" + }, + "maxItems": 11, + "type": "array" +} - added
Input schema / properties / optionsAdded value: +{ + "description": "With projectId: option axes (size, colour…) to make sure exist before the variants.", + "items": { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 40, + "type": "string" + }, + "name": { + "maxLength": 60, + "minLength": 1, + "type": "string" + }, + "values": { + "items": { + "anyOf": [ + { + "maxLength": 60, + "minLength": 1, + "type": "string" + }, + { + "additionalProperties": false, + "properties": { + "hex": { + "type": [ + "string", + "null" + ] + }, + "label": { + "maxLength": 60, + "minLength": 1, + "type": "string" + }, + "value": { + "maxLength": 40, + "type": "string" + } + }, + "required": [ + "label" + ], + "type": "object" + } + ] + }, + "maxItems": 30, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "name", + "values" + ], + "type": "object" + }, + "maxItems": 3, + "type": "array" +} - added
Input schema / properties / variantsAdded value: +{ + "description": "With projectId: variants, each { optionValues: { size: \"M\" }, sku?, price?, quant?, active?, position?, imageIds? } — see upsertProductVariants.", + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "maxItems": 100, + "type": "array" +}
- Added
createUploadSessionTool - Added
getLeadTool - Added
getUploadSessionTool - Added
listRikmaCategoriesTool - Added
listRikmaLeadsTool - Added
logLeadActivityTool - Added
proposeProductEditsBatchTool - Added
proposeProductEditTool - Added
setProductCategoriesTool - Added
setProductImagesTool - Added
uploadMediaFromUrlTool - Added
upsertProductOptionsTool - Added
upsertProductVariantsTool
5 tool updates
- Changed
prepareForSomeoneElseTool2 fields changed- changed
Input schema / properties / blueprint / properties / partners / items / properties / email / patternPrevious value: -"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"New value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" - changed
Input schema / properties / email / patternPrevious value: -"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"New value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
- Changed
prepareSignup2 fields changed- changed
Input schema / properties / blueprint / properties / partners / items / properties / email / patternPrevious value: -"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"New value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" - changed
Input schema / properties / email / patternPrevious value: -"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"New value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
- Changed
proposeRikmaBlueprintTool1 field changed- changed
Input schema / properties / partners / items / properties / email / patternPrevious value: -"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"New value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
- Changed
quoteShippingTool2 fields changed- removed
Input schema / properties / items / items / properties / variantId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / items / items / properties / variantId / typeAdded value: +[ + "string", + "null" +]
- Changed
setShopStockTool2 fields changed- removed
Input schema / properties / variantId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / variantId / typeAdded value: +[ + "string", + "null" +]
2 tool updates
- Added
getShippingConfigTool - Added
quoteShippingTool
12 tool updates
- Added
archiveRikmaProductTool - Added
createRikmaProductTool - Added
getRikmaOrderTool - Added
getRikmaProductTool - Added
getShopInventoryTool - Added
listRikmaOrdersTool - Added
listRikmaProductOptionsTool - Added
listRikmaProductsTool - Added
listRikmaProductVariantsTool - Added
setShopStockTool - Added
updateRikmaOrderStatusTool - Added
updateRikmaProductTool
3 tool updates
- Changed
prepareForSomeoneElseTool5 fields changed- added
Input schema / properties / blueprint / properties / missions / items / properties / holder / descriptionAdded value: +"me = the person importing does it; open = recruit someone; partner = link to a partner by partnerRef and invite them to contribute." - added
Input schema / properties / blueprint / properties / missions / items / properties / partnerRef / descriptionAdded value: +"Exact `ref` of the partner who will do this mission when holder is \"partner\"." - added
Input schema / properties / blueprint / properties / partners / items / properties / email / descriptionAdded value: +"Email address to send the rikma invitation to. Ask the person for it; never guess or invent it. If omitted, no email invitation can be sent." - added
Input schema / properties / blueprint / properties / resources / items / properties / holder / descriptionAdded value: +"me = the person importing does it; open = recruit someone; partner = link to a partner by partnerRef and invite them to contribute." - added
Input schema / properties / blueprint / properties / resources / items / properties / partnerRef / descriptionAdded value: +"Exact `ref` of the partner who will provide this resource when holder is \"partner\"."
- Changed
prepareSignup5 fields changed- added
Input schema / properties / blueprint / properties / missions / items / properties / holder / descriptionAdded value: +"me = the person importing does it; open = recruit someone; partner = link to a partner by partnerRef and invite them to contribute." - added
Input schema / properties / blueprint / properties / missions / items / properties / partnerRef / descriptionAdded value: +"Exact `ref` of the partner who will do this mission when holder is \"partner\"." - added
Input schema / properties / blueprint / properties / partners / items / properties / email / descriptionAdded value: +"Email address to send the rikma invitation to. Ask the person for it; never guess or invent it. If omitted, no email invitation can be sent." - added
Input schema / properties / blueprint / properties / resources / items / properties / holder / descriptionAdded value: +"me = the person importing does it; open = recruit someone; partner = link to a partner by partnerRef and invite them to contribute." - added
Input schema / properties / blueprint / properties / resources / items / properties / partnerRef / descriptionAdded value: +"Exact `ref` of the partner who will provide this resource when holder is \"partner\"."
- Changed
proposeRikmaBlueprintTool5 fields changed- added
Input schema / properties / missions / items / properties / holder / descriptionAdded value: +"me = the person importing does it; open = recruit someone; partner = link to a partner by partnerRef and invite them to contribute." - added
Input schema / properties / missions / items / properties / partnerRef / descriptionAdded value: +"Exact `ref` of the partner who will do this mission when holder is \"partner\"." - added
Input schema / properties / partners / items / properties / email / descriptionAdded value: +"Email address to send the rikma invitation to. Ask the person for it; never guess or invent it. If omitted, no email invitation can be sent." - added
Input schema / properties / resources / items / properties / holder / descriptionAdded value: +"me = the person importing does it; open = recruit someone; partner = link to a partner by partnerRef and invite them to contribute." - added
Input schema / properties / resources / items / properties / partnerRef / descriptionAdded value: +"Exact `ref` of the partner who will provide this resource when holder is \"partner\"."
1 tool update
- Added
prepareForSomeoneElseTool
1 tool update
- Added
getMyUpdatesTool
2 tool updates
- Changed
prepareSignup4 fields changed- added
Input schema / properties / blueprint / properties / missions / items / properties / hours / descriptionAdded value: +"Hours in total, or per month when recurring" - added
Input schema / properties / blueprint / properties / missions / items / properties / recurring / descriptionAdded value: +"Ongoing work, every month" - added
Input schema / properties / blueprint / properties / resources / items / properties / kindOf / descriptionAdded value: +"monthly / yearly = a running cost (rent, subscription); price is then per month / year" - added
Input schema / properties / blueprint / properties / resources / items / properties / price / descriptionAdded value: +"Per month / year when kindOf is monthly / yearly, otherwise the whole price"
- Changed
proposeRikmaBlueprintTool4 fields changed- added
Input schema / properties / missions / items / properties / hours / descriptionAdded value: +"Hours in total, or per month when recurring" - added
Input schema / properties / missions / items / properties / recurring / descriptionAdded value: +"Ongoing work, every month" - added
Input schema / properties / resources / items / properties / kindOf / descriptionAdded value: +"monthly / yearly = a running cost (rent, subscription); price is then per month / year" - added
Input schema / properties / resources / items / properties / price / descriptionAdded value: +"Per month / year when kindOf is monthly / yearly, otherwise the whole price"
45 tool updates
- Added
applyAssistantTool - Added
attachToProcessTool - Removed
createNewApiKey - Added
createPlanBoardTool - Added
createProjectTool - Added
createTaskTool - Added
dismissOfferTool - Added
findMissionTool - Added
findUserProjectsTool - Added
getActiveTimersTool - Added
getAssistantTool - Added
getMemberMissionsTool - Added
getMissionDetailsTool - Added
getMissionStatsTool - Added
getProjectDetailsTool - Added
getProjectMembersTool - Added
getProjectStatsTool - Added
getSitePagesTool - Added
getWishDetailsTool - Removed
howToConnect - Added
listMyConversationsTool - Added
listMyWishesTool - Added
listMyWishOffersTool - Added
listProjectResourcesTool - Added
listRikmaProcessesTool - Added
listUserMissionsTool - Added
navigateToPageTool - Added
openRikmaConversationTool - Added
planProjectWorkTool - Added
postConversationMessageTool - Added
prepareMissionTool - Added
prepareSignup - Added
proposeProjectLinkTool - Added
proposeRikmaBlueprintTool - Added
readConversationTool - Added
reviseAssistantTool - Added
scanProjectDirectionsTool - Added
searchCatalogTool - Added
searchContentTool - Added
setAssistantItemsTool - Added
shareRikmaPreviewTool - Added
startAssistantTool - Added
startProcessTool - Added
timerActionTool - Added
undoAssistantTool
1 tool update
- Added
createNewApiKey
2 tool updates
- First observed
getPlatformInfo - First observed
howToConnect
Related MCP Connectors
See your team's status, delegate work, follow progress, and approve requests from your AI client.
View client requests, prepare actions and approve work within your firm's permissions.
Field service management: missions, schedule, field work reports, clients and timesheets.
Time tracking, tasks and team chat for humans and AI agents.
Related MCP Servers
- AlicenseCqualityAmaintenanceA living map of all your work: projects, tasks, decisions and what waits on whom, kept by you and your agents through the same tools, with every change logged.107 npm1MIT
- AlicenseAqualityBmaintenanceEnables tracking work time with start/stop timers, logging entries, and generating reports.48 npm35 PyPIMIT
- AlicenseAqualityBmaintenanceEnables trades and field service work to be tracked per job: logging labor hours at worker rates and materials used, keeping running totals in integer cents per currency, and moving each job through a status machine from open to invoiced or archived. It also produces daily or weekly summaries of hours and value, and renders a printable card with a signature line for client sign-off.110MIT
- FlicenseNot gradedqualityDmaintenanceLightweight project management for teams and AI agents.-
Glama MCP Gateway
Add one secure layer between your agents and this server.