Skip to main content
Glama

Liliphant

call_any_api_of_liliphant

Destructive

Send a POST, PUT, PATCH or DELETE request to any Liliphant API API endpoint for the user and return its response. Use it once you know the exact endpoint: look it up with get_liliphant_api_docs first to get its URL, headers, query params and body, unless the skill or a dedicated tool on this server already gives them exactly. Load the quickstart-liliphant skill first: it explains which tool to use when. For GET requests use call_any_read_api_of_liliphant. Pass the full url with path variables filled in, the headers the docs list, query params in query (not in the url) and the JSON body in body. For the auth header the docs name (Authorization, proxy_auth_token, x-api-key, ...), pass it with an empty value "": the signed-in user's token is filled in automatically. Never put a real or made-up token there; if the docs name no auth header, leave it out and the token is sent as Authorization. If the API needs the user to sign in, they're asked the first time. Returns { status, ok, headers, data }: the HTTP status and the response body, including error details on failure.

Input Schema

NameRequiredDescriptionDefault
urlYesFull endpoint URL with path variables replaced by real values, e.g. https://api.example.com/users/42. Put query params in `query`, not here.
bodyNoJSON request body, as the endpoint's docs show it. Leave it out when the endpoint takes no body.
queryNoQuery params as name/value pairs; an array sends the param once per item. Example: {"type": "flow", "bringflows": true}
methodYesHTTP method from the endpoint's docs
headersYesRequest headers as name/value pairs, as the docs list them. Give the auth header (Authorization, proxy_auth_token, x-api-key, ...) an empty value "" so the signed-in user's token is filled in; never put a token here yourself. Pass {} when the endpoint needs no headers. Example: {"proxy_auth_token": "", "Content-Type": "application/json"}

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare destructive=true, non-idempotent, and openWorld, so the safety profile is covered; the description goes further by explaining the auth mechanism (empty-string header value triggers automatic token injection, never supply a real token), the interactive sign-in on first use, and the exact return shape {status, ok, headers, data} with error details. It does not mention rate limits or whether failures are retried, so not a perfect score.

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?

Purpose is front-loaded in the first sentence, followed by prerequisite, routing, and parameter guidance in a logical order. It is dense and somewhat run-on across several sentences, but nearly every sentence carries actionable information.

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?

For a five-parameter open-world mutation tool with no output schema, the description covers prerequisites, method restriction, auth handling, parameter placement, and the return envelope. Nothing an agent needs to invoke it correctly is missing.

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 structured fields already document all five params; the description nevertheless reinforces the non-obvious rules: query params belong in `query` not the url, path variables must be pre-filled, and the auth header must be passed with an empty value. The 'never put a real token' caveat adds genuine semantic value beyond the schema text, pushing past the baseline 3.

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 (send POST/PUT/PATCH/DELETE) and resource (any Liliphant API endpoint) plus the scope ('for the user'), and explicitly distinguishes itself from the sibling call_any_read_api_of_liliphant, which handles GET. An agent can tell exactly which of the two endpoints tools to pick.

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?

Gives explicit sequencing: look up the endpoint with get_liliphant_api_docs first, load the quickstart-liliphant skill, and route GET requests to the read sibling. It names both the prerequisite tools and the exclusion condition, leaving nothing to inference.

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