Skip to main content
Glama

Veqen: AI cost monitoring and protection

Set a budget

set_budget

Creates a budget on AI spend. scope is org, customer, feature, user or project; value '' gives every customer (or feature, user, project) its own limit. mode 'alert' notifies at 50/80/100%; 'block' also makes the SDKs refuse matching requests at the limit. scope engineer (value an email, '' or 'team:') or team sets a work and coding agent limit, which 'block' pushes into each tool that takes one. Needs an owner or admin.

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": {
      "name": "<name>",
      "limit_usd": "<limit_usd>"
    },
    "name": "set_budget"
  }
}

Input Schema

NameRequiredDescriptionDefault
modeNoalert
nameYes
scopeNoorg
valueNo*
periodNomonth
limit_usdYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / scope / pattern
      Previous value: -"^(org|customer|feature|user|project)$"New value: +"^(org|customer|feature|user|project|engineer|team)$"
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish non-read-only, non-destructive, non-idempotent, closed-world, so the description usefully spends its words on the side effects those hints don't convey: 'block' causes SDKs to refuse matching requests and pushes limits into each downstream tool that accepts one, and the call requires owner/admin. It doesn't address what happens on a name collision or whether a created budget can be modified vs must be deleted and recreated, which is the notable gap given idempotentHint=false.

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?

Four dense sentences, front-loaded with purpose, then scope, then mode, then role requirement — a sensible ordering with no filler. The middle sentences are packed with comma-separated clauses that read as slightly run-on, which costs a point but nothing is redundant.

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?

An output schema exists, so withholding return-value detail is acceptable, and the description covers the semantically hard surface (scope, value, mode, permissions) for a 6-param mutation tool. The unexplained 'period' parameter and the silent behavior on duplicate names are the remaining holes an agent would want filled.

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?

With 0% schema description coverage the description has to carry the load, and it does for the hardest params: it enumerates the scope values, explains that value '*' fans out a limit per entity, and describes the special engineer scope shape ("email, '*' or 'team:<name>'"). It never mentions the period parameter (month|day) or clarifies limit_usd units, so coverage is good but incomplete.

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?

Opens with a concrete verb+resource: "Creates a budget on AI spend," which is immediately distinguishable from the list_budgets/delete_budget siblings by action. It then goes further by enumerating the scope types the budget can target. It stops short of naming or contrasting any sibling tool explicitly, which keeps it out of the 5 tier.

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

Usage Guidelines4/5

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

Gives real selection guidance for the ambiguous choice: mode 'alert' vs 'block' is contrasted by consequence (notify at 50/80/100% vs SDKs refusing requests at the limit). It also states a prerequisite, "Needs an owner or admin," so an agent knows invocation may fail on role. No exclusions or alternate-tool routing (e.g. vs set_alerts or limits) are offered.

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