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"
+ ]
+ }
+]
changedOutput schema / properties / error / properties / data / properties / reason / description
Previous value: -"Machine-readable failure mode. Declared by this tool: `auth_token_exchange_failed`: SGN or OAuth token exchange against the BrAPI /token endpoint failed. `auth_no_access_token`: Token endpoint responded but did not return an access_token. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `auth_session_required`: Caller-supplied credentials on an HTTP deployment without per-user auth, from a request that carries no MCP session. `auth_base_url_mismatch`: The alias has server-configured credentials and the supplied baseUrl differs from the server configured for it. `alias_base_url_unset`: The alias has server-configured credentials but no base URL of its own (no BRAPI_<ALIAS>_BASE_URL and no enabled built-in), so they pair with no server. `auth_token_exchange_failed`: SGN or OAuth token exchange against the BrAPI /token endpoint failed. `auth_no_access_token`: Token endpoint responded but did not return an access_token. `upstream_unauthorized`: The server answered HTTP 401 on /serverinfo or /calls — it requires login for capability discovery. `upstream_forbidden`: The server answered HTTP 403 on /serverinfo or /calls — the request (anonymous or credentialed) lacks read access. Other values are possible when a failure originates below the handler."
changedOutput schema / properties / error / properties / data / properties / reason / examples
Previous value: -[
- "auth_token_exchange_failed",
- "auth_no_access_token"
-]New value: +[
+ "auth_session_required",
+ "auth_base_url_mismatch",
+ "alias_base_url_unset",
+ "auth_token_exchange_failed",
+ "auth_no_access_token",
+ "upstream_unauthorized",
+ "upstream_forbidden"
+]
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"
+}