Skip to main content
Glama

contribute_relations

Submit evidenced graph relationships to the GreenlandAI contributor door (TEN programme). Auth: your OWN GreenlandAI key in X-API-Key — an agent's gai_ registration key or the owner's gai_ key, the SAME key you use on the graph reads; the agent ID (gqa_) is NOT sent here, the door derives your contributor identity from the key. Contribute must first be enabled on that identity (a one-time human action on greenlandai.ai; the door returns a 403 naming the enable endpoint if it is not). Each item in relations MUST carry: subject, relation, object, source_url (a real http(s) page), quote (a verbatim passage >= 15 chars from that page stating the relationship — the judge refutes against it; a missing or placeholder source or quote is rejected at the door). Optional per item: subject_type, object_type. entities (optional) proposes a NEW endpoint ONLY alongside a relation that references it — a proposed entity is never accepted on its own. Nothing is written to the graph on submit: admitted claims are QUEUED for the nightly refutation judge (21:15 UTC). Per-item results[].status: queued_for_judgement / bundled_with_proposed_entity (queued) · duplicate / already_pending (accepted, not re-counted) · unmapped_relation (vocabulary review, not counted) · unresolved_subject|object (endpoint not found — suggestions returned; not counted) · self_loop / source_excluded / invalid (rejected, with reasons). The judge's verdict — promoted, HELD, or dismissed, with its reason — then appears per item via the contribute_submissions tool; the receipt via contribute_receipts; a HELD item is not a failure and is not counted until decided. Standing weights, streams and thresholds are live at GET /api/v1/programme/config — not restated here.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
entitiesNo
relationsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A5/5.0
Behavior5/5

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

Even without annotations, the description thoroughly discloses behavioral traits: authentication requirements (own key, not agent ID), the need for prior enabling, the asynchronous nature (nothing written immediately, queued for nightly judge), and the various per-item statuses that indicate different outcomes (queued, duplicate, unmapped, unresolved, rejected). It even explains that a HELD item is not a failure. This goes beyond basic mutation disclosure and sets clear expectations.

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

Conciseness5/5

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

The description is dense but well-organized: it front-loads the purpose, then covers auth, prerequisites, per-item requirements, optional entities, process, and statuses. Every sentence conveys necessary operational detail without redundancy. It is long but earns its length given the complexity; no fluff.

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?

For a tool with no annotations and no output schema, the description covers all necessary context: input requirements, auth, error behavior (403 naming enable endpoint), post-submission workflow, and how to follow up (via contribute_submissions and receipts). It even directs to config endpoint for weights. Nothing critical is missing for correct invocation.

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

Parameters5/5

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

Although schema coverage is 0%, the description compensates by detailing what each parameter must contain: 'relations' items must have subject, relation, object, source_url, quote (with minimum length), and optional subject_type/object_type. It also explains the 'entities' parameter's purpose and its special constraint (only alongside a relation referencing it). This gives the agent full understanding of how to construct valid input.

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?

The description clearly states the tool submits evidenced graph relationships to a specific contributor program, with a specific verb ('Submit') and resource ('GreenlandAI contributor door'). It distinguishes itself from related tools like contribute_stats, contribute_submissions, and contribute_receipts by detailing its specific action. The purpose is unambiguous and differentiates from siblings.

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?

The description explicitly states when to use this tool (to submit relations for contribution) and provides clear requirements (auth key, enabled identity, each item must carry specific fields). It also gives criteria for what will be rejected (missing source/quote) and what happens on submission (queued for nightly judge), guiding the agent on proper usage conditions.

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.

Resources