Skip to main content
Glama

Brapi Server Info

brapi_server_info
Read-onlyIdempotent

Return the full orientation envelope for a BrAPI connection — server identity, capabilities, content counts, suggested finders, and notes. Pass forceRefresh to refetch the cached capability scan; pass an alias to read a non-default connection.

Input Schema

NameRequiredDescriptionDefault
aliasNoConnection alias. Omit to use alias `default`. An alias registered via `brapi_connect` works, and so does one the server has a URL configured for (a built-in alias, an operator-configured alias, or `default` on a deployment with a default server), which connects on first use. Calls that used a non-default alias must pass that same alias here.
forceRefreshNoBypass the cached capability profile and refetch from the server.

Output Schema

NameRequiredDescriptionDefault
authNoAuth summary for the active connection.
aliasNoConnection alias.
errorNoPresent when the call failed. Absent on success.
notesNoServer-specific quirks or degradation notes.
serverNoNormalized server identity block.
baseUrlNoBrAPI v2 base URL for this connection.
contentNoContent summary (crops + optional totals).
dialectNoActive dialect adapter — translates outbound filters and declares known-dead routes for this server.
fetchedAtNoISO 8601 timestamp of when this envelope was composed.
attributionNoAttribution metadata for built-in known-server connections. Absent when the alias is not built-in or points away from its built-in base URL.
capabilitiesNoCapability profile derived from /serverinfo or /calls.
nextToolSuggestionsNoEntry-point finders (studies, germplasm, variables, locations — in that order) whose GET or POST /search route this server exposes under the active dialect. Empty when none apply.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • changedInput schema / properties / alias / description
      Previous value: -"Connection alias. Omit to read the connection registered under alias `default` — i.e. a prior `brapi_connect` call that did not specify an alias. Calls that used a non-default alias must pass that same alias here."New value: +"Connection alias. Omit to use alias `default`. An alias registered via `brapi_connect` works, and so does one the server has a URL configured for (a built-in alias, an operator-configured alias, or `default` on a deployment with a default server), which connects on first use. Calls that used a non-default alias must pass that same alias here."
    • changedOutput schema / properties / attribution / description
      Previous value: -"Attribution metadata for built-in known-server connections. Absent for custom (env-only) connections."New value: +"Attribution metadata for built-in known-server connections. Absent when the alias is not built-in or points away from its built-in base URL."
    • changedOutput schema / properties / capabilities / description
      Previous value: -"Capability profile derived from /serverinfo."New value: +"Capability profile derived from /serverinfo or /calls."
    • changedOutput schema / properties / capabilities / properties / supportedCount / description
      Previous value: -"Total distinct services the server advertises in /calls."New value: +"Total distinct services the server advertises in /serverinfo or /calls."
    • changedOutput schema / properties / dialect / properties / id / description
      Previous value: -"Active dialect id (e.g. \"spec\", \"cassavabase\"). Names a registered adapter that translates outbound filters and declares known-dead routes."New value: +"Active dialect id (e.g. \"spec\", \"cassavabase\")."
    • changedOutput schema / properties / dialect / properties / inferredMappingCount / description
      Previous value: -"Number of filter translations inferred from naming conventions but not independently verified. A non-zero count means some result narrowing on this server may not fire as expected."New value: +"Filter translations inferred from naming conventions, unverified; when non-zero, some narrowing on this server may not fire."
    • changedOutput schema / properties / dialect / properties / verifiedMappingCount / description
      Previous value: -"Number of filter translations the dialect has empirically verified against a live server. Higher means more confidence in the translation table."New value: +"Filter translations verified against a live server. Absent when the dialect publishes no mapping summary."
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `unknown_alias`: No connection has been registered under the requested alias. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `unknown_alias`: No connection is registered under the requested alias, and the server has no base URL configured for it to connect on first use. `auth_token_exchange_failed`: Connecting the alias on first use, the SGN or OAuth token exchange against the BrAPI /token endpoint failed. `auth_no_access_token`: Connecting the alias on first use, the token endpoint answered without returning an access token. `capability_discovery_unavailable`: Neither /serverinfo nor /calls listed any call, and at least one of them timed out, was unreachable, or answered 429 or a 5xx other than 501, so nothing was cached. `upstream_unauthorized`: The BrAPI server answered HTTP 401: it requires credentials, or rejected the ones sent. `upstream_forbidden`: The BrAPI server answered HTTP 403: the credentials sent, or their absence, lack access. `alias_base_url_invalid`: The base URL configured on the server for this alias is not an absolute http(s) URL, or carries credentials. `private_address_blocked`: The base URL configured for this alias, or its token URL, is on a private or reserved address this server may not reach. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "unknown_alias"
      -]New value: +[
      +  "unknown_alias",
      +  "auth_token_exchange_failed",
      +  "auth_no_access_token",
      +  "capability_discovery_unavailable",
      +  "upstream_unauthorized",
      +  "upstream_forbidden",
      +  "alias_base_url_invalid",
      +  "private_address_blocked"
      +]
    • changedOutput schema / properties / nextToolSuggestions / items / properties / args / description
      Previous value: -"Arguments to call the tool with. Alias only — narrow further with the tool filters."New value: +"Arguments to start the tool with (alias only)."
  2. Changed2 schema fields changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "not": {
      -      "required": [
      -        "error"
      -      ]
      -    },
      -    "required": [
      -      "alias",
      -      "baseUrl",
      -      "server",
      -      "auth",
      -      "capabilities",
      -      "dialect",
      -      "content",
      -      "notes",
      -      "fetchedAt"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "error"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "alias",
      +      "baseUrl",
      +      "server",
      +      "auth",
      +      "capabilities",
      +      "dialect",
      +      "content",
      +      "nextToolSuggestions",
      +      "notes",
      +      "fetchedAt"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / nextToolSuggestions
      Added value: +{
      +  "description": "Entry-point finders (studies, germplasm, variables, locations — in that order) whose GET or POST /search route this server exposes under the active dialect. Empty when none apply.",
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "A finder the connected server supports, with the arguments to start it.",
      +    "properties": {
      +      "args": {
      +        "additionalProperties": false,
      +        "description": "Arguments to call the tool with. Alias only — narrow further with the tool filters.",
      +        "properties": {
      +          "alias": {
      +            "description": "Connection alias to pass to the suggested tool.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "alias"
      +        ],
      +        "type": "object"
      +      },
      +      "reason": {
      +        "description": "Why this tool applies to the connected server.",
      +        "type": "string"
      +      },
      +      "toolName": {
      +        "description": "Entry-point finder tool this server can serve.",
      +        "enum": [
      +          "brapi_find_studies",
      +          "brapi_find_germplasm",
      +          "brapi_find_variables",
      +          "brapi_find_locations"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "toolName",
      +      "reason",
      +      "args"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  3. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds genuine context beyond that: the capability scan is cached and forceRefresh bypasses the cache, and an alias reads a non-default connection. It stops short of describing failure modes or what happens on first-use connection.

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?

Two sentences with no waste: the first front-loads what the tool returns, the second covers the two parameters. Every clause earns its place.

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?

An output schema exists, so return values need not be described. Purpose, parameter effects, and the caching behavior are all covered, which is everything an agent needs to invoke a zero-required-parameter orientation tool correctly.

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 coverage is 100% — both alias and forceRefresh are fully documented in the input schema, including the alias resolution rules and the default value. The description restates their roles but adds no syntax or format detail beyond what the schema already provides, so the 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?

States a specific verb ('Return') and resource ('the full orientation envelope for a BrAPI connection'), then enumerates exactly what the envelope contains — server identity, capabilities, content counts, suggested finders, notes. The name and content list make it distinguishable from brapi_connect (which registers aliases) 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.

Usage Guidelines3/5

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

The description explains the effect of each parameter ('Pass forceRefresh to refetch...', 'pass an alias to read a non-default connection') but never states when an agent should call this tool versus siblings like brapi_connect or the various brapi_find_* tools. Usage is implied by the orientation framing rather than stated.

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.