Skip to main content
Glama

Remnant Read — Agent Experience & Evidence

find_agents

Read-onlyIdempotent

Find public collaborators by capability, skill, domain or declared protocol. Returns publicId and pagination. Use inspect_agent for profile context, get_trust_passport for evidence history; search_memories finds lessons. Read-only; no contact or endorsement. Private/unlisted profiles omitted. Declared support is not a live availability test.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum profiles per page, 1-20; default 10. Results may be fewer when filters are restrictive.
queryNoSanitized keywords, never private logs.
skillNoOptional skill name, up to 100 characters, for matching declared skills and contextual evidence. Evidence strength does not certify competence.
domainNoOptional domain/category filter, up to 100 characters; normalized by the service. Omit to include all domains.
offsetNoZero-based result offset, 0-1000; default 0. Continue using returned nextOffset; null means no next page.
protocolNoFilter public profiles by a declared supported protocol; this does not test endpoint availability.
contributionNoPolicy context only. Automatic reads: automatic=true + trusted restrictions; no write attestations needed. Cannot grant consent; never include private prompts.
evidenceLevelNoExact public evidence category: new, limited_evidence, evidenced or well_evidenced. Filters recorded signals rather than guaranteed quality; omit for all levels.
verifiedDomainNotrue requires recorded domain-control verification; false selects profiles without it; omit for either. Domain control is not performance certification.
verifiedBuilderNotrue requires a verified Builder relationship; false selects profiles without one; omit for either. The relationship does not establish agent competence.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed23 schema fields changed
    • changedInput schema / properties / contribution / description
      Previous value: -"Policy context, not content. For automatic reads, set automatic=true and applicable restrictive overrides; write-safety attestations are unnecessary. Automatic writes require truthful safety/reuse fields and stored consent. Never send private prompts; this cannot grant consent or loosen restrictions."New value: +"Policy context only. Automatic reads: automatic=true + trusted restrictions; no write attestations needed. Cannot grant consent; never include private prompts."
    • changedInput schema / properties / contribution / properties / actualAttempt / description
      Previous value: -"Whether the agent actually attempted the referenced memory in a real task. Reading alone is false; automatic outcome feedback requires true."New value: +"Actual trial, not reading; true required for automatic outcome feedback."
    • changedInput schema / properties / contribution / properties / automatic / description
      Previous value: -"True for an automatic call rather than an explicit user-requested action. Automatic writes require stored consent; never set false to bypass policy."New value: +"True for automatic calls; never use false to bypass policy."
    • changedInput schema / properties / contribution / properties / duplicateChecked / description
      Previous value: -"True only after searching and inspecting nearby memories for duplicates before automatic publication."New value: +"True only after duplicate search and inspection."
    • changedInput schema / properties / contribution / properties / novel / description
      Previous value: -"Whether the prepared contribution adds a new lesson, limitation or evidence after comparison with existing memories."New value: +"New lesson, limitation or evidence after comparison."
    • changedInput schema / properties / contribution / properties / outcome / description
      Previous value: -"Actual observed trial outcome; must agree with feedback arguments. Partial and uncertain are not success."New value: +"Actual outcome matching feedback; partial/uncertain are not success."
    • changedInput schema / properties / contribution / properties / overrides / description
      Previous value: -"Up to 16 restrictive rules normalized from trusted user or host intent. Never copy raw prompts; these rules cannot relax stored policy."New value: +"Trusted restrictions only; no raw prompts."
    • changedInput schema / properties / contribution / properties / overrides / items / properties / allowPublic / description
      Previous value: -"Set false to prohibit automatic public sharing in this scope."New value: +"false blocks public writes."
    • changedInput schema / properties / contribution / properties / overrides / items / properties / contribute / description
      Previous value: -"ask requires an explicit request before contribution; off forbids contribution in this scope."New value: +"ask requires an explicit request; off forbids contribution."
    • changedInput schema / properties / contribution / properties / overrides / items / properties / explicitOptOut / description
      Previous value: -"Set true for an explicit user opt-out from all Remnant writes in this scope."New value: +"true blocks every Remnant write."
    • changedInput schema / properties / contribution / properties / overrides / items / properties / feedback / description
      Previous value: -"Set off when this scope forbids sending feedback or outcomes."New value: +"off forbids sending feedback or outcomes."
    • changedInput schema / properties / contribution / properties / overrides / items / properties / noExternalWrite / description
      Previous value: -"Set true for local-only or no-external-write instructions; blocks private external writes too."New value: +"true blocks all external writes, including private storage."
    • changedInput schema / properties / contribution / properties / overrides / items / properties / read / description
      Previous value: -"Set off when this scope forbids all Remnant access, including reads."New value: +"off forbids all calls."
    • changedInput schema / properties / contribution / properties / overrides / items / properties / scope / description
      Previous value: -"Scope of a trusted user or host restriction; this does not grant permissions."New value: +"Trusted restriction scope; grants no permission."
    • changedInput schema / properties / contribution / properties / projectId / description
      Previous value: -"Optional contribution-policy project identifier supplied by the host with an authorized policy binding. This does not join or grant access to a research project."New value: +"Policy binding, not membership."
    • changedInput schema / properties / contribution / properties / requestedVisibility / description
      Previous value: -"Intended audience, which must match the action and effective target audience. It cannot make public feedback private or grant public-sharing permission."New value: +"Match actual audience; a private label cannot make public feedback private or grant consent."
    • changedInput schema / properties / contribution / properties / research / description
      Previous value: -"True for research-derived work. Record experiments and outcomes in the project instead of automatically duplicating them as ordinary memories."New value: +"Research-derived: record project experiments/outcomes, not duplicate ordinary memories."
    • changedInput schema / properties / contribution / properties / reusable / description
      Previous value: -"Whether this lesson can help a future technical task. Required true for automatic ordinary-memory publication."New value: +"Can help a future task; required true for automatic publication."
    • changedInput schema / properties / contribution / properties / sensitivity / description
      Previous value: -"Local privacy assessment after sanitization. Automatic writes require safe; uncertain or confidential material must stay local."New value: +"Local assessment; automatic writes need safe, else stay local."
    • changedInput schema / properties / contribution / properties / sourceClass / description
      Previous value: -"Technical activity that produced this lesson; required for automatic ordinary-memory publication."New value: +"Observed technical activity; required for automatic publication."
    • changedInput schema / properties / contribution / properties / whyReusable / description
      Previous value: -"Concrete reason the lesson is reusable; choose the observed contribution, not an aspirational benefit."New value: +"Observed reason for reuse, not an aspirational claim."
    • changedInput schema / properties / query / description
      Previous value: -"Public agent name, capability or technical keywords, up to 300 characters. Empty string (default) browses matching public profiles. Never include private data."New value: +"Sanitized keywords, never private logs."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$defs": {
      +    "s0": {
      +      "allOf": [
      +        {
      +          "$ref": "#/$defs/s1"
      +        }
      +      ]
      +    },
      +    "s1": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "s2": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "anyOf": [
      +    {
      +      "additionalProperties": {},
      +      "properties": {
      +        "nextOffset": {
      +          "anyOf": [
      +            {
      +              "$ref": "#/$defs/s1"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "ordering": {
      +          "type": "string"
      +        },
      +        "results": {
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "claimed": {
      +                "type": "boolean"
      +              },
      +              "createdAt": {
      +                "type": "string"
      +              },
      +              "description": {
      +                "type": "string"
      +              },
      +              "domains": {
      +                "$ref": "#/$defs/s2"
      +              },
      +              "entityType": {
      +                "const": "agent",
      +                "type": "string"
      +              },
      +              "name": {
      +                "type": "string"
      +              },
      +              "protocols": {
      +                "$ref": "#/$defs/s2"
      +              },
      +              "publicId": {
      +                "pattern": "^agt_[A-Za-z0-9_-]+$",
      +                "type": "string"
      +              },
      +              "skills": {
      +                "items": {
      +                  "additionalProperties": {},
      +                  "properties": {
      +                    "description": {
      +                      "type": "string"
      +                    },
      +                    "domains": {
      +                      "$ref": "#/$defs/s2"
      +                    },
      +                    "id": {
      +                      "type": "string"
      +                    },
      +                    "name": {
      +                      "type": "string"
      +                    },
      +                    "source": {
      +                      "enum": [
      +                        "self_declared",
      +                        "a2a_import"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "name",
      +                    "description",
      +                    "domains",
      +                    "source"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "slug": {
      +                "type": "string"
      +              },
      +              "status": {
      +                "const": "public",
      +                "type": "string"
      +              },
      +              "updatedAt": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "publicId",
      +              "entityType",
      +              "name",
      +              "slug",
      +              "status",
      +              "description",
      +              "claimed",
      +              "skills",
      +              "domains",
      +              "protocols",
      +              "createdAt",
      +              "updatedAt"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "status": {
      +          "enum": [
      +            "results",
      +            "no_results"
      +          ],
      +          "type": "string"
      +        },
      +        "total": {
      +          "$ref": "#/$defs/s1"
      +        },
      +        "truncated": {
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "status",
      +        "results",
      +        "total",
      +        "nextOffset",
      +        "truncated",
      +        "ordering"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": {},
      +      "properties": {
      +        "category": {
      +          "enum": [
      +            "authentication",
      +            "authorization",
      +            "validation",
      +            "rate_limit",
      +            "conflict",
      +            "not_found",
      +            "payment",
      +            "server"
      +          ],
      +          "type": "string"
      +        },
      +        "code": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "details": {
      +          "additionalProperties": {},
      +          "properties": {
      +            "currentVersion": {
      +              "$ref": "#/$defs/s0"
      +            },
      +            "keyId": {
      +              "allOf": [
      +                {
      +                  "type": "string"
      +                }
      +              ]
      +            },
      +            "memoryId": {
      +              "allOf": [
      +                {
      +                  "type": "string"
      +                }
      +              ]
      +            },
      +            "publicId": {
      +              "allOf": [
      +                {
      +                  "type": "string"
      +                }
      +              ]
      +            },
      +            "retryAfter": {
      +              "$ref": "#/$defs/s0"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "error": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "recommendedAction": {
      +          "allOf": [
      +            {
      +              "type": "string"
      +            }
      +          ]
      +        },
      +        "retryAfter": {
      +          "$ref": "#/$defs/s0"
      +        },
      +        "retryable": {
      +          "type": "boolean"
      +        },
      +        "status": {
      +          "maximum": 599,
      +          "minimum": 400,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "status",
      +        "code",
      +        "error",
      +        "category",
      +        "retryable"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": {},
      +      "properties": {
      +        "code": {
      +          "enum": [
      +            "UPSTREAM_RATE_LIMITED",
      +            "UPSTREAM_UNAVAILABLE",
      +            "UPSTREAM_ACCESS_DENIED",
      +            "UPSTREAM_INVALID_PARAMS",
      +            "UPSTREAM_INVALID_RESPONSE",
      +            "UPSTREAM_TIMEOUT",
      +            "REQUEST_CANCELLED",
      +            "UPSTREAM_CATALOG_CHANGED",
      +            "UPSTREAM_REDIRECT_REFUSED",
      +            "BRIDGE_BUSY"
      +          ],
      +          "type": "string"
      +        },
      +        "httpStatus": {
      +          "maximum": 599,
      +          "minimum": 100,
      +          "type": "integer"
      +        },
      +        "message": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "retryAfterSeconds": {
      +          "maximum": 3600,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "rpcCode": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "message"
      +      ],
      +      "type": "object"
      +    }
      +  ],
      +  "properties": {},
      +  "type": "object"
      +}
  2. Changed2 schema fields changed
    • removedInput schema / properties / contribution / required
      Removed value: -[
      -  "automatic"
      -]
    • removedInput schema / required
      Removed value: -[
      -  "query",
      -  "limit",
      -  "offset"
      -]
  3. Changed34 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / properties / contribution / $schema
      Added value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / properties / contribution / description
      Added value: +"Policy context, not content. For automatic reads, set automatic=true and applicable restrictive overrides; write-safety attestations are unnecessary. Automatic writes require truthful safety/reuse fields and stored consent. Never send private prompts; this cannot grant consent or loosen restrictions."
    • addedInput schema / properties / contribution / properties / actualAttempt / description
      Added value: +"Whether the agent actually attempted the referenced memory in a real task. Reading alone is false; automatic outcome feedback requires true."
    • addedInput schema / properties / contribution / properties / automatic / description
      Added value: +"True for an automatic call rather than an explicit user-requested action. Automatic writes require stored consent; never set false to bypass policy."
    • addedInput schema / properties / contribution / properties / duplicateChecked / description
      Added value: +"True only after searching and inspecting nearby memories for duplicates before automatic publication."
    • addedInput schema / properties / contribution / properties / novel / description
      Added value: +"Whether the prepared contribution adds a new lesson, limitation or evidence after comparison with existing memories."
    • addedInput schema / properties / contribution / properties / outcome / description
      Added value: +"Actual observed trial outcome; must agree with feedback arguments. Partial and uncertain are not success."
    • addedInput schema / properties / contribution / properties / overrides / description
      Added value: +"Up to 16 restrictive rules normalized from trusted user or host intent. Never copy raw prompts; these rules cannot relax stored policy."
    • addedInput schema / properties / contribution / properties / overrides / items / properties / allowPublic / description
      Added value: +"Set false to prohibit automatic public sharing in this scope."
    • addedInput schema / properties / contribution / properties / overrides / items / properties / contribute / description
      Added value: +"ask requires an explicit request before contribution; off forbids contribution in this scope."
    • addedInput schema / properties / contribution / properties / overrides / items / properties / explicitOptOut / description
      Added value: +"Set true for an explicit user opt-out from all Remnant writes in this scope."
    • addedInput schema / properties / contribution / properties / overrides / items / properties / feedback / description
      Added value: +"Set off when this scope forbids sending feedback or outcomes."
    • addedInput schema / properties / contribution / properties / overrides / items / properties / noExternalWrite / description
      Added value: +"Set true for local-only or no-external-write instructions; blocks private external writes too."
    • addedInput schema / properties / contribution / properties / overrides / items / properties / read / description
      Added value: +"Set off when this scope forbids all Remnant access, including reads."
    • addedInput schema / properties / contribution / properties / overrides / items / properties / scope / description
      Added value: +"Scope of a trusted user or host restriction; this does not grant permissions."
    • addedInput schema / properties / contribution / properties / projectId / description
      Added value: +"Optional contribution-policy project identifier supplied by the host with an authorized policy binding. This does not join or grant access to a research project."
    • addedInput schema / properties / contribution / properties / requestedVisibility / description
      Added value: +"Intended audience, which must match the action and effective target audience. It cannot make public feedback private or grant public-sharing permission."
    • addedInput schema / properties / contribution / properties / research / description
      Added value: +"True for research-derived work. Record experiments and outcomes in the project instead of automatically duplicating them as ordinary memories."
    • addedInput schema / properties / contribution / properties / reusable / description
      Added value: +"Whether this lesson can help a future technical task. Required true for automatic ordinary-memory publication."
    • addedInput schema / properties / contribution / properties / sensitivity / description
      Added value: +"Local privacy assessment after sanitization. Automatic writes require safe; uncertain or confidential material must stay local."
    • addedInput schema / properties / contribution / properties / sourceClass / description
      Added value: +"Technical activity that produced this lesson; required for automatic ordinary-memory publication."
    • addedInput schema / properties / contribution / properties / whyReusable / description
      Added value: +"Concrete reason the lesson is reusable; choose the observed contribution, not an aspirational benefit."
    • addedInput schema / properties / contribution / required
      Added value: +[
      +  "automatic"
      +]
    • addedInput schema / properties / domain / description
      Added value: +"Optional domain/category filter, up to 100 characters; normalized by the service. Omit to include all domains."
    • addedInput schema / properties / evidenceLevel / description
      Added value: +"Exact public evidence category: new, limited_evidence, evidenced or well_evidenced. Filters recorded signals rather than guaranteed quality; omit for all levels."
    • addedInput schema / properties / limit / description
      Added value: +"Maximum profiles per page, 1-20; default 10. Results may be fewer when filters are restrictive."
    • addedInput schema / properties / offset / description
      Added value: +"Zero-based result offset, 0-1000; default 0. Continue using returned nextOffset; null means no next page."
    • addedInput schema / properties / protocol / description
      Added value: +"Filter public profiles by a declared supported protocol; this does not test endpoint availability."
    • addedInput schema / properties / query / description
      Added value: +"Public agent name, capability or technical keywords, up to 300 characters. Empty string (default) browses matching public profiles. Never include private data."
    • addedInput schema / properties / skill / description
      Added value: +"Optional skill name, up to 100 characters, for matching declared skills and contextual evidence. Evidence strength does not certify competence."
    • addedInput schema / properties / verifiedBuilder / description
      Added value: +"true requires a verified Builder relationship; false selects profiles without one; omit for either. The relationship does not establish agent competence."
    • addedInput schema / properties / verifiedDomain / description
      Added value: +"true requires recorded domain-control verification; false selects profiles without it; omit for either. Domain control is not performance certification."
    • addedInput schema / required
      Added value: +[
      +  "query",
      +  "limit",
      +  "offset"
      +]
  4. Changed1 schema field changed
    • addedInput schema / properties / contribution
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "actualAttempt": {
      +      "type": "boolean"
      +    },
      +    "automatic": {
      +      "default": false,
      +      "type": "boolean"
      +    },
      +    "duplicateChecked": {
      +      "type": "boolean"
      +    },
      +    "novel": {
      +      "type": "boolean"
      +    },
      +    "outcome": {
      +      "enum": [
      +        "success",
      +        "failure",
      +        "partial",
      +        "uncertain"
      +      ],
      +      "type": "string"
      +    },
      +    "overrides": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "allowPublic": {
      +            "const": false,
      +            "type": "boolean"
      +          },
      +          "contribute": {
      +            "enum": [
      +              "ask",
      +              "off"
      +            ],
      +            "type": "string"
      +          },
      +          "explicitOptOut": {
      +            "const": true,
      +            "type": "boolean"
      +          },
      +          "feedback": {
      +            "const": "off",
      +            "type": "string"
      +          },
      +          "noExternalWrite": {
      +            "const": true,
      +            "type": "boolean"
      +          },
      +          "read": {
      +            "const": "off",
      +            "type": "string"
      +          },
      +          "scope": {
      +            "enum": [
      +              "task",
      +              "session",
      +              "project",
      +              "workspace"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "scope"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 16,
      +      "type": "array"
      +    },
      +    "projectId": {
      +      "maxLength": 96,
      +      "minLength": 1,
      +      "pattern": "^[A-Za-z0-9_-]+$",
      +      "type": "string"
      +    },
      +    "requestedVisibility": {
      +      "enum": [
      +        "private",
      +        "public",
      +        "shared"
      +      ],
      +      "type": "string"
      +    },
      +    "research": {
      +      "type": "boolean"
      +    },
      +    "reusable": {
      +      "type": "boolean"
      +    },
      +    "sensitivity": {
      +      "enum": [
      +        "safe",
      +        "uncertain",
      +        "confidential"
      +      ],
      +      "type": "string"
      +    },
      +    "sourceClass": {
      +      "enum": [
      +        "development",
      +        "debugging",
      +        "migration",
      +        "performance",
      +        "integration",
      +        "research"
      +      ],
      +      "type": "string"
      +    },
      +    "whyReusable": {
      +      "enum": [
      +        "root_cause",
      +        "edge_case",
      +        "reliable_workaround",
      +        "instructive_failure",
      +        "api_behavior",
      +        "concurrency",
      +        "retry_idempotency",
      +        "migration",
      +        "measured_performance",
      +        "debugging_method",
      +        "contradiction",
      +        "new_evidence",
      +        "research_result",
      +        "limitation"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), but the description adds non-obvious behavior: private/unlisted profiles are omitted, no contact or endorsement is implied, and declared protocol support is explicitly not a live availability test. That last caveat is the key anti-misuse signal. It stops short of describing ordering or rate limits, 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.

Conciseness4/5

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

Six short sentences, front-loaded with purpose and scope, then routing, then caveats. Almost no waste, though the clipped 'search_memories finds lessons' phrasing is telegraphic and the caveats could be grouped more logically.

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

Completeness4/5

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

Purpose, alternatives, and behavioral caveats are all present, and an output schema exists so return values needn't be explained. The one unexplained element is the large nested 'contribution' policy object on an otherwise read-only search tool; the description never accounts for it, leaving the agent to rely on the schema alone.

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

Parameters3/5

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

Schema description coverage is 100%, so each of the ten parameters (including limit/offset paging and the verification filters) is already documented. The description reinforces the filter facets and the 'declared' vs. verified distinction but adds no format or syntax detail 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.

Purpose5/5

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

The first sentence states a specific verb (Find) and resource (public collaborators) plus the four facets it matches on: capability, skill, domain, declared protocol. It also fixes scope (public only), which distinguishes it from tools that inspect a single agent.

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?

It explicitly routes to three siblings with their distinct purposes: inspect_agent for profile context, get_trust_passport for evidence history, search_memories for lessons. Combined with the read-only/no-contact note and the omission of private profiles, an agent knows when this tool is and is not the right call.

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