Skip to main content
Glama

Enrich an existing subject

enrich_subject
Idempotent

Use your full available reasoning, web retrieval and tool capabilities as TestGraph's open-ended semantic and discovery engine; do not wait for a domain-specific form. TestGraph supplies graph primitives and verification while you derive useful structure and reconcile evidence. Add missing identifiers, attributes, provenance and related unreviewed subjects to an existing subject without creating another review. Use this proactively when authoritative information was missed during the original save. Find only authoritative facts with plausible future TestGraph use: identity, likely queries, location, classification, relationships, comparison or verification. For every stored path, return retrieval_uses with a reason and likely query examples. Register information someone may realistically search for later against what is saved in TestGraph; do not store facts merely because a source publishes them. Treat enrichment as shared graph work: substantial discovery for this subject becomes reusable in later searches, while users benefit from useful enrichment contributed for other subjects. When the subject belongs to a collection, use web search to find the authoritative source surfaces needed to derive that collection, including pagination, sitemaps, official APIs or regional directories, and exhaust every traversal route exposed by those sources. Submit source_manifest mapping every member to its consulted source pages, then submit every discovered member as an unreviewed subject and connect it to the collection. Do not omit members because they are unreviewed, numerous or may be materialised later. Do not ask the user for routine lookup permission unless automatic lookup is unavailable or identity is genuinely ambiguous. Existing conflicting values are preserved rather than silently overwritten. When the client supports concurrent tool calls, submit independent writes concurrently in batches of up to 10. Do not batch dependent operations until their prerequisites are confirmed. Reuse the same canonical key for the same subject and derive deterministic idempotency keys from a stable run identifier, target and operation so retries and restarted conversations safely return existing writes instead of creating duplicates. WORKFLOW PRECONDITION: for an existing subject, the server checks classification before mutation. The authenticated user may always enrich a subject they own or one attached to their own non-deleted review without waiting for another AI, including while classification is disputed. Ownership is determined by the authenticated user, not the AI client; all other evidence and write validations still apply. Enrichment does not confirm or resolve classification. For other contributors, an unsettled subject returns classification_review_required or classification_resolution_required without applying the requested update. Complete the returned durable workflow, then retry the unchanged request with the same deterministic idempotency key. You must not report the update as complete when this prerequisite is returned. WORKFLOW: the server now owns the post-enrichment procedure. A successful response includes durable workflow state and the next required classification action. workflow.next_action names an exposed MCP tool; call it with workflow.next_action_arguments and follow workflow.next_action_instruction rather than reconstructing the procedure yourself. WORKFLOW: after every successful write, inspect workflow.workflow_action_required. When it is true, you must follow workflow.next_action with workflow.next_action_arguments and workflow.next_action_instruction for the classification decision. When independent review or dispute resolution is pending, leave that classification action pending and continue requested enrichment of the authenticated user's own subject or one attached to their own non-deleted review. Report a successful enrichment separately from the still-pending classification.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
attributesNo
provenanceNo
subject_idNoPreferred stable subject locator returned by search, fetch or save_experience.
identifiersNo
source_modelNo
subject_typeNo
canonical_keyNo
idempotency_keyYes
subject_contextNoOptional related subjects and relationships. Use subject as the reserved ref for the existing subject being enriched.
collection_assessmentYesRequired collection assessment for enrichment. For member status, use subject as the existing target ref, discover every authoritative source surface, submit an exhaustive source_manifest, and submit the target plus every derived sibling. unavailable is only for genuine collection-identity or authoritative-source failure; it is invalid when collection evidence is known and cannot be used for size, effort, inconvenience, latency, quick-review scope or deferred work.
subject_enrichment_checkYesRequired evidence check for this enrichment. Reconcile sources against identifiers, attributes, provenance or subject_context request paths.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / source_model
      Added value: +{
      +  "maxLength": 160,
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • removedInput schema / properties / version_check
      Removed value: -{
      -  "description": "Required live deployment token. Call get_server_info immediately before this write and pass write_version_token unchanged. Stale or missing tokens are rejected before any write occurs.",
      -  "maxLength": 64,
      -  "minLength": 64,
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "idempotency_key",
      -  "subject_enrichment_check",
      -  "collection_assessment",
      -  "version_check"
      -]New value: +[
      +  "idempotency_key",
      +  "subject_enrichment_check",
      +  "collection_assessment"
      +]
  3. Changed2 schema fields changed
    • addedInput schema / properties / version_check
      Added value: +{
      +  "description": "Required live deployment token. Call get_server_info immediately before this write and pass write_version_token unchanged. Stale or missing tokens are rejected before any write occurs.",
      +  "maxLength": 64,
      +  "minLength": 64,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "idempotency_key",
      -  "subject_enrichment_check",
      -  "collection_assessment"
      -]New value: +[
      +  "idempotency_key",
      +  "subject_enrichment_check",
      +  "collection_assessment",
      +  "version_check"
      +]
  4. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations carry only idempotentHint=true, readOnlyHint=false, destructiveHint=false; the description adds rich behavioral context: idempotency via deterministic keys ('retries and restarted conversations safely return existing writes'), concurrency batching ('batches of up to 10'), conflict policy ('existing conflicting values are preserved rather than silently overwritten'), and the server-owned workflow state machine (workflow.next_action, classification prerequisites returning classification_review_required). No contradiction with annotations; the description substantially amplifies them.

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

Conciseness3/5

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

Front-loaded with purpose and scoping, but the description is exceptionally long with redundant WORKFLOW sections and overlapping guidance on classification, idempotency, and concurrency. The dense instruction set is warranted given tool complexity, but it repeats the same workflow directive multiple times and could be tightened without losing information.

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 an 11-param tool with nested objects and no output schema, the description is remarkably complete: it covers return behavior ('A successful response includes durable workflow state and the next required classification action', 'inspect workflow.workflow_action_required'), workflow prerequisites, collection traversal exhaustion, and error conditions (classification_review_required). Nothing an agent needs to invoke this correctly is left unaddressed.

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 description coverage is low (36%), so the description compensates for the three required params: idempotency_key (deterministic derivation), collection_assessment (exhaustive source manifest, status semantics), and subject_enrichment_check (retrieval_uses mapping). It also explains subject_context's reserved 'subject' ref. However, attributes, provenance, identifiers, source_model, subject_type, and canonical_key receive no elaboration beyond naming, leaving some compensation gaps at this coverage level.

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-resource ('Add missing identifiers, attributes, provenance and related unreviewed subjects to an existing subject') and explicitly differentiates from the creation path ('without creating another review'), distinguishing it from save_experience and correct_subject_fact siblings. The purpose as a semantic discovery/enrichment engine is unambiguous.

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

Usage Guidelines4/5

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

Gives clear when-to-use guidance ('Use this proactively when authoritative information was missed during the original save') and contrasts with creating another review. However, it never names explicit alternatives like correct_subject_fact or propose_subject_reclassification, so exclusion guidance is implied rather than stated. The 'do not ask for routine lookup permission' and 'do not omit members' guidance provides strong usage boundaries.

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.