Skip to main content
Glama

Submit a contribution to a shared-project task

submit_contribution

Submit one contribution to an AIO shared-project task. Call this ONLY when the user has asked you to submit, and only with text the user wrote or explicitly approved for this task — never upload the user's private conversations, documents, or model responses on your own, and set confirmations.userApproved and confirmations.noPrivateMaterial to true only when that is actually so. Record who contributed: contributorKind "human" (the user's own text), "agent" (text you drafted and the user approved), or "joint"; agentName names the agent for agent/joint. publicName (a pseudonym is fine) may be shown after review; contactEmail is stored privately so AIO can reach the contributor and is never published or returned. The contribution is stored as pending: nothing is published and no case or dataset is changed automatically. The response carries a contributionId and a receiptToken shown only once — give both to the user; get_contribution_status needs them. Rate-limited; an identical resubmission is rejected as a duplicate. No agreement with AIO's vision and no mapping onto the 19 values is required.

Input Schema

NameRequiredDescriptionDefault
bodyYesThe contribution itself, in the user's own words or as approved by the user. Follow the task's format example.
caseIdYesOne of the task's caseIds, e.g. "med-protective-custody".
taskIdYesTask id from list_contribution_tasks.
evidenceNoEvidence items — a paragraph number of the decision, a statutory provision, a published source URL, or a quoted passage of the original. Required (at least one) for tasks with requiresEvidence.
agentNameNoRequired for agent or joint: the agent or tool that took part, e.g. "Claude (MCP)".
publicNameYesName to show if the contribution is published after review. A pseudonym is fine.
contactEmailYesThe contributor's contact address. Stored privately, never published, never returned in any response.
userApprovedYestrue only if the user asked for this submission and wrote or approved this exact text.
contributorKindYesWho produced the text: the user (human), the agent with the user's approval (agent), or both (joint).
noPrivateMaterialYestrue only if the text contains no private conversation, document, or response the user has not separately agreed to share.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior4/5

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

Goes well beyond the annotations, disclosing that the contribution is stored as pending, nothing is published automatically, contactEmail is never published or returned, the receiptToken is shown only once, and that resubmission is rate-limited and duplicates rejected. This matches the non-idempotent, non-readOnly annotations rather than contradicting them. Slight gap: it does not spell out the review timeline or what happens to rejected contributions.

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

Conciseness4/5

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

Front-loads the core action and the safety constraint, and every clause carries information (privacy, consent, pending state, tokens, rate limits). It is a single dense block rather than a scannable structure, which costs a point but there is little filler.

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

Completeness5/5

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

No output schema exists, so the description supplies the return contract (contributionId plus a one-time receiptToken and the need to hand both to the user). Combined with the consent and privacy rules for a 10-parameter mutation tool, an agent has everything needed to call it safely and correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: it explains the three contributorKind values, when agentName is required, that publicName may be a pseudonym shown after review, and that contactEmail is stored privately. It also ties the confirmation flags to a concrete honesty condition rather than restating their type.

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

Purpose5/5

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

States a specific verb (submit) and resource (one contribution to an AIO shared-project task) with clear scope. It is immediately distinguishable from siblings like get_contribution_status or list_contribution_tasks, which the description even names as consumers of its output.

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

Usage Guidelines5/5

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

Explicitly states when to call ("ONLY when the user has asked you to submit"), when not to ("never upload the user's private conversations, documents, or model responses on your own"), and the condition under which the confirmation flags may be set. It also names the follow-up tool (get_contribution_status) and what it needs.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.