Skip to main content
Glama

Veqen: AI cost monitoring and protection

Say whose a key is

set_key_owner

Sets a provider key's owner (an email or a service's name) and the coding agent it's for ('' reads it from the key's name, '-' none).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "key_id": "<key_id>"
    },
    "name": "set_key_owner"
  }
}

Input Schema

NameRequiredDescriptionDefault
ownerNo
key_idYes
coding_agentNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false and idempotentHint=false, so the safety profile is covered. The description adds nothing about overwrite behavior, required permissions, or whether an existing owner is replaced or appended. There is also mild tension between the 'Sets' wording (suggesting idempotent assignment) and idempotentHint=false, though not enough to call a contradiction.

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?

A single tight sentence with the primary effect front-loaded and sentinel values tucked into a parenthetical. Nothing is padded, though the parenthetical is dense enough that it may be missed on a skim.

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?

An output schema exists, so return values need no explanation, and the tricky sentinel semantics are documented. Still missing for a write tool: what key_id identifies, what happens when an owner was already set, and whether a null owner clears the field. Adequate but with clear gaps.

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 description coverage is 0%, so the description carries the burden. It does valuable work for 'owner' (email or service name) and especially 'coding_agent' ('' means read from the key's name, '-' means none), which the schema does not convey at all. However, 'key_id' is never explained, and it is unclear whether passing empty string vs '-' vs null differs for owner.

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?

Specific verb ('Sets') plus resource ('a provider key's owner') and the two attributes it writes: owner and coding agent. An agent can distinguish it from list_provider_keys and shut_off_key by the fact that it writes metadata rather than listing or deactivating. It stops short of naming a sibling explicitly, so it lands at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

The description never says when to use this versus list_provider_keys (inspect keys), access/api_keys (broader key surface), or shut_off_key (disable). There are no preconditions, no exclusions, and no mention of what the caller needs to know before reassigning ownership. Usage has to be inferred entirely from the verb.

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