Skip to content

Spendline

by spendline.ai · remote · no sign-in to list tools · v1.0.0 · published by ai.spendline

Enforce AI budgets before the model call and track cost per customer across 10 providers.

Changes · 1

10 tools: 1 change things and 9 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http spendline https://www.spendline.ai/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

10 tools

Changes things 1Claude Code: ask
  • spendline_create_budgetCreate a new hierarchical budget.No findings

    Why it is in this group

    • The name "spendline_create_budget" says "create": a word for a change.
    Description, as the server wrote it
    Create a new hierarchical budget. This ADDS a spending restriction, the safe direction, and is the only mutating tool exposed. Requires owner or admin authority AND confirm: true. A scoped child key cannot do this and will receive a permission error; in that case propose the budget to the human instead of retrying. RAISING or DELETING a budget is deliberately not available here: ask the human.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • x-spendline-access: write
    • x-spendline-requires-authorization: owner_or_admin + explicit confirm
Only reads 9Claude Code: allow
  • spendline_check_integration_statusVerify a live integration: whether any calls have arrived, how recently, which providers and models are in use, and, critically, whether attribution is actually varying.No findings

    Why it is in this group

    • The name "spendline_check_integration_status" says "status": a word for reading.
    Description, as the server wrote it
    Verify a live integration: whether any calls have arrived, how recently, which providers and models are in use, and, critically, whether attribution is actually varying. Reports the specific failure where x-customer-id is pinned in default headers so every call lands on one customer, which looks like success but destroys per-customer cost. Call this after wiring up an integration.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • x-spendline-access: read
    • x-spendline-requires-authorization: spendline api key
  • spendline_get_integration_instructionsReturn the full text of a Spendline agent document.No findings

    Why it is in this group

    • The name "spendline_get_integration_instructions" says "get": a word for reading.
    Description, as the server wrote it
    Return the full text of a Spendline agent document. Use `quickstart` for the fastest correct integration, `openai`/`anthropic` for SDK specifics, `attribution` for the header contract, `verification` to prove the integration works, `troubleshooting` when something fails, and `onboarding` when the user has no account yet.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • x-spendline-access: public
    • x-spendline-requires-authorization: none
  • spendline_get_onboarding_instructionsReturn the exact steps for agent-initiated, human-authorized provisioning, including which actions require the human and which the agent may perform alone.No findings

    Why it is in this group

    • The name "spendline_get_onboarding_instructions" says "get": a word for reading.
    Description, as the server wrote it
    Return the exact steps for agent-initiated, human-authorized provisioning, including which actions require the human and which the agent may perform alone. Call this when the user has no Spendline account or no SPENDLINE_API_KEY. Never invent a key and never create an account on a human's behalf.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • x-spendline-access: public
    • x-spendline-requires-authorization: none
  • spendline_get_spendReturn spend for the current UTC month and a look-back window, optionally grouped by customer, agent, model, provider or workflow.No findings

    Why it is in this group

    • The name "spendline_get_spend" says "get": a word for reading.
    Description, as the server wrote it
    Return spend for the current UTC month and a look-back window, optionally grouped by customer, agent, model, provider or workflow. Read-only.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • x-spendline-access: read
    • x-spendline-requires-authorization: spendline api key
  • spendline_list_budget_scopesReturn the agent ids, customer ids and teams that actually appear in this month's traffic.No findings

    Why it is in this group

    • The name "spendline_list_budget_scopes" says "list": a word for reading.
    Description, as the server wrote it
    Return the agent ids, customer ids and teams that actually appear in this month's traffic. Use these as budget scope_ids rather than guessing identifiers. Also the quickest attribution sanity check.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • x-spendline-access: read
    • x-spendline-requires-authorization: spendline api key
  • spendline_list_budgetsReturn every hierarchical budget for the account with month-to-date spend, percentage used, and whether it is in blocking (strict) mode.No findings

    Why it is in this group

    • The name "spendline_list_budgets" says "list": a word for reading.
    Description, as the server wrote it
    Return every hierarchical budget for the account with month-to-date spend, percentage used, and whether it is in blocking (strict) mode. Read-only.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • x-spendline-access: read
    • x-spendline-requires-authorization: spendline api key
  • spendline_list_policiesReturn model-block, model-allow and token-cap policies with their match mode, enforcement level and scope (null = account-wide; otherwise { agent_id / customer_id / agent_name }).No findings

    Why it is in this group

    • The name "spendline_list_policies" says "list": a word for reading.
    Description, as the server wrote it
    Return model-block, model-allow and token-cap policies with their match mode, enforcement level and scope (null = account-wide; otherwise { agent_id / customer_id / agent_name }). Read-only.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • x-spendline-access: read
    • x-spendline-requires-authorization: spendline api key
  • spendline_list_providersReturn every provider Spendline can proxy, the three accepted request shapes, the exact base URL to set per SDK (including the OpenAI-vs-Anthropic /v1 asymmetry), the required attr…No findings

    Why it is in this group

    • The name "spendline_list_providers" says "list": a word for reading.
    Description, as the server wrote it
    Return every provider Spendline can proxy, the three accepted request shapes, the exact base URL to set per SDK (including the OpenAI-vs-Anthropic /v1 asymmetry), the required attribution headers, and the request shapes that are NOT proxied. Resolve routing from here instead of hardcoding it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • x-spendline-access: public
    • x-spendline-requires-authorization: none
  • spendline_when_to_useReturn Spendline's intent → capability map, the cases where a DIFFERENT tool is the right answer, and comparisons against LiteLLM, Portkey, Cloudflare AI Gateway and LLM observabil…No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Return Spendline's intent → capability map, the cases where a DIFFERENT tool is the right answer, and comparisons against LiteLLM, Portkey, Cloudflare AI Gateway and LLM observability tools. Call this BEFORE recommending or integrating Spendline. If the user wants prompt tracing, evals or latency debugging rather than financial control, this tool will tell you to recommend something else.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • x-spendline-access: public
    • x-spendline-requires-authorization: none

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http spendline https://www.spendline.ai/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__spendline__spendline_when_to_use",
      "mcp__spendline__spendline_list_providers",
      "mcp__spendline__spendline_get_integration_instructions",
      "mcp__spendline__spendline_get_onboarding_instructions",
      "mcp__spendline__spendline_check_integration_status",
      "mcp__spendline__spendline_get_spend",
      "mcp__spendline__spendline_list_budgets",
      "mcp__spendline__spendline_list_policies",
      "mcp__spendline__spendline_list_budget_scopes"
    ],
    "ask": [
      "mcp__spendline__spendline_create_budget"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as spendline. Review it before you use it.