Skip to main content
Glama

Call any Checkbox API endpoint

call_api
Destructive

For a next_action whose operation has no dedicated tool (e.g. createStripeCheckoutConfig, updateTask, updateNoticeSettings, listConsents). Calls the Checkbox /v1 API with this server's connection; paths and bodies are in https://app.checkbox.site/v1/openapi.json. Examples: {"method":"GET","path":"/v1/account"} ; {"method":"POST","path":"/v1/sites/site_123/domain_verification/check"} ; {"operation_id":"createStripeCheckoutConfig","path_params":{"site":"site_123"},"body":{…}}. Never send API keys or Stripe keys through it, except a Stripe TEST restricted key via store_stripe_test_key (not call_api). Live keys are added by the human in the Checkbox dashboard, never pasted into the chat. GET is read-only. POST/DELETE change data: only do what the user or a next_action asked for. DELETE archives or removes objects — confirm with the user first.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "call_api"
  }
}

Input Schema

NameRequiredDescriptionDefault
bodyNoJSON body (POST).
pathNoPath starting with /v1/, e.g. "/v1/sites/site_123/domain_verification/check". Give this or operation_id.
queryNoQuery parameters.
methodNoHTTP method (not needed with operation_id).
path_paramsNoWith operation_id: ids in its path, e.g. {"site":"site_123"}.
operation_idNoInstead of method + path: a next_action's operation_id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / method / description
      Previous value: -"HTTP method."New value: +"HTTP method (not needed with operation_id)."
    • addedInput schema / properties / operation_id
      Added value: +{
      +  "description": "Instead of method + path: a next_action's operation_id.",
      +  "maxLength": 100,
      +  "type": "string"
      +}
    • changedInput schema / properties / path / description
      Previous value: -"Path starting with /v1/, e.g. \"/v1/sites/site_123/domain_verification/check\"."New value: +"Path starting with /v1/, e.g. \"/v1/sites/site_123/domain_verification/check\". Give this or operation_id."
    • addedInput schema / properties / path_params
      Added value: +{
      +  "additionalProperties": {
      +    "maxLength": 200,
      +    "type": "string"
      +  },
      +  "description": "With operation_id: ids in its path, e.g. {\"site\":\"site_123\"}.",
      +  "type": "object"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "method",
      -  "path"
      -]
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, but the description goes further: it explains that DELETE archives or removes objects and requires user confirmation, that POST/DELETE should be limited to what the user or a next_action asked for, and that credential material must never be passed through the tool. Those are real operational constraints an agent could not derive from the annotations alone.

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?

Front-loaded with the routing rule, then three compact example payloads, then safety constraints — a sensible order with no filler sentences. It runs long relative to a typical description, though most of that length is earned by the credential and DELETE warnings.

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?

For a six-parameter open-world API proxy with no output schema, the description supplies the missing pieces: where the path/body contract lives (the openapi.json URL), the two calling conventions, and the safety envelope. It stops short of saying what a successful response returns or how errors surface, which matters for a raw proxy, but the spec pointer partially covers that.

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 coverage is 100%, so the schema already documents each parameter, but the description adds concrete invocation examples showing how method+path, query, and body combine, and how operation_id pairs with path_params instead. That clarifies the mutual exclusivity at a practical level beyond the field descriptions. No example of the query parameter is given, which is the only minor gap.

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 and resource ('Calls the Checkbox /v1 API with this server's connection') and scopes it precisely to operations that have no dedicated tool, naming concrete examples (createStripeCheckoutConfig, updateTask, updateNoticeSettings, listConsents). An agent can tell it apart from every sibling because those siblings are the dedicated tools this one backstops.

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?

Explicit routing rule ('For a next_action whose operation has no dedicated tool') plus when-not guidance: Stripe keys never go through call_api — a restricted TEST key goes via store_stripe_test_key instead. It also distinguishes the two invocation modes (method+path vs operation_id) and the mutating vs read-only split between GET and POST/DELETE, with a confirm-before-DELETE rule.

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.