Skip to main content
Glama

resolve_task

Read-onlyIdempotent

Start here for a concrete task. Returns one recommended service operation with its provider request (or the reason none fits), what access it needs, and the next step; call the provider yourself. Abstains or asks for clarification when needed. Public access.

Input Schema

NameRequiredDescriptionDefault
modeNodiscovery
sortNorelevance
limitNo
queryYes
cursorNo
setup_codeNo
constraintsNo
caller_profileNo
reference_timeNoFixes now for relative dates such as "last seven complete UTC days"; defaults to the request time and is echoed in the interpretation.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / caller_profile / properties / provider_access / items / properties / entitlement
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "available": {
      +      "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/available"
      +    },
      +    "checked_at": {
      +      "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/checked_at"
      +    },
      +    "detail": {
      +      "maxLength": 300,
      +      "type": "string"
      +    },
      +    "evidence_ref": {
      +      "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/evidence_ref"
      +    },
      +    "expires_at": {
      +      "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/expires_at"
      +    },
      +    "status": {
      +      "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/status"
      +    }
      +  },
      +  "required": [
      +    "status"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / caller_profile / properties / provider_access / items / properties / network
      Added value: +{
      +  "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime"
      +}
    • addedInput schema / properties / reference_time
      Added value: +{
      +  "description": "Fixes now for relative dates such as \"last seven complete UTC days\"; defaults to the request time and is echoed in the interpretation.",
      +  "format": "date-time",
      +  "type": "string"
      +}
  2. Changed3 schema fields changed
    • removedInput schema / properties / caller_profile / description
      Removed value: -"Basic caller capabilities. Use the full catalogue for scoped provider-access proofs and resume checks."
    • addedInput schema / properties / caller_profile / properties / provider_access
      Added value: +{
      +  "default": [],
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "account_id": {
      +        "maxLength": 150,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "billing": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "available": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/available"
      +          },
      +          "checked_at": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/checked_at"
      +          },
      +          "evidence_ref": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/evidence_ref"
      +          },
      +          "expires_at": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/expires_at"
      +          },
      +          "status": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/status"
      +          },
      +          "usage_included": {
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "configuration": {
      +        "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime"
      +      },
      +      "credentials": {
      +        "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime"
      +      },
      +      "environment": {
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "operation_ids": {
      +        "default": [],
      +        "items": {
      +          "maxLength": 100,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "maxItems": 30,
      +        "type": "array"
      +      },
      +      "path_id": {
      +        "maxLength": 150,
      +        "minLength": 3,
      +        "type": "string"
      +      },
      +      "path_revision": {
      +        "exclusiveMinimum": 0,
      +        "type": "integer"
      +      },
      +      "permissions": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "available": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/available"
      +          },
      +          "checked_at": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/checked_at"
      +          },
      +          "evidence_ref": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/evidence_ref"
      +          },
      +          "expires_at": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/expires_at"
      +          },
      +          "scopes": {
      +            "default": [],
      +            "items": {
      +              "maxLength": 200,
      +              "type": "string"
      +            },
      +            "maxItems": 50,
      +            "type": "array"
      +          },
      +          "status": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/status"
      +          }
      +        },
      +        "required": [
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "runtime": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "available": {
      +            "type": "boolean"
      +          },
      +          "checked_at": {
      +            "format": "date-time",
      +            "type": "string"
      +          },
      +          "evidence_ref": {
      +            "maxLength": 120,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "expires_at": {
      +            "format": "date-time",
      +            "type": "string"
      +          },
      +          "status": {
      +            "enum": [
      +              "unknown",
      +              "reported",
      +              "verified",
      +              "blocked"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "runtime_id": {
      +        "maxLength": 150,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "spending": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "allow_recurring": {
      +            "type": "boolean"
      +          },
      +          "available": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/available"
      +          },
      +          "checked_at": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/checked_at"
      +          },
      +          "currency": {
      +            "maxLength": 3,
      +            "minLength": 3,
      +            "type": "string"
      +          },
      +          "evidence_ref": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/evidence_ref"
      +          },
      +          "expires_at": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/expires_at"
      +          },
      +          "limit": {
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "status": {
      +            "$ref": "#/properties/caller_profile/properties/provider_access/items/properties/runtime/properties/status"
      +          }
      +        },
      +        "required": [
      +          "status"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "path_id",
      +      "path_revision"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
    • addedInput schema / properties / caller_profile / properties / setup_progress
      Added value: +{
      +  "default": [],
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "account_id": {
      +        "maxLength": 150,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "checked_at": {
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      "environment": {
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "evidence_ref": {
      +        "maxLength": 120,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "expires_at": {
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      "operation_ids": {
      +        "default": [],
      +        "items": {
      +          "maxLength": 100,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "maxItems": 30,
      +        "type": "array"
      +      },
      +      "path_id": {
      +        "maxLength": 150,
      +        "minLength": 3,
      +        "type": "string"
      +      },
      +      "path_revision": {
      +        "exclusiveMinimum": 0,
      +        "type": "integer"
      +      },
      +      "runtime_id": {
      +        "maxLength": 150,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "status": {
      +        "enum": [
      +          "reported",
      +          "verified",
      +          "blocked",
      +          "in_progress"
      +        ],
      +        "type": "string"
      +      },
      +      "step_id": {
      +        "maxLength": 100,
      +        "minLength": 2,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "path_id",
      +      "path_revision",
      +      "step_id",
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 40,
      +  "type": "array"
      +}
  3. First observed

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior. The description adds useful context: it returns one recommendation or a no-fit reason, describes access and next-step output, warns that the caller must call the provider, and notes abstention/clarification. It omits cursor/pagination behavior and how constraints shape recommendations.

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?

Compact and front-loaded with 'Start here,' and each sentence contributes workflow, output, or abstention information. The final 'Public access' fragment is terse but still useful; minor polish only.

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

Completeness3/5

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

For a complex 9-parameter tool with nested objects and no output schema, the description covers the core recommendation workflow and return shape. It does not explain the roles of mode, constraints, caller_profile, cursor, or setup_code, leaving important context to an under-described schema.

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

Parameters2/5

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

Schema description coverage is only 11%, with reference_time being the sole described parameter. The description implicitly maps 'concrete task' to query and 'access' to constraints.access, but leaves the other top-level parameters and nearly all nested constraints/caller_profile fields unexplained, so it does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

States that it recommends a service operation for a concrete task and returns the provider request, access needs, and next step. The entry-point framing helps distinguish it from browsing siblings, though it does not explicitly name alternatives.

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?

Says 'Start here for a concrete task,' which implies when to use it, and notes abstention/clarification and that the caller must invoke the provider. It does not say when to prefer a sibling like browse_catalogue or search_sites, nor when not to use this tool.

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