Skip to main content
Glama

Switchbooks

Select Active Company

set_company
Idempotent

Select the active company for this connection using a company ID, exact name, or unique name fragment from list_companies. Saves the company selection for subsequent bookkeeping reads without changing bookkeeping records. Only companies accessible to the authenticated account can be selected. When several agents share this connection, pin true keeps the active company from moving until pin false, so no agent switches another; each names any other company in the company field of its own calls.

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": {
      "company": "<company>"
    },
    "name": "set_company"
  }
}

Input Schema

NameRequiredDescriptionDefault
pinNotrue pins the active company for every agent on this connection; false unpins it. Leave out to keep the pin as it is.
companyYesCompany ID, exact name, or unique name fragment

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, but the description adds the crucial clarification that the write is to connection-level selection state, 'without changing bookkeeping records', plus an auth scoping constraint ('only companies accessible to the authenticated account'). It does not describe the success/failure response or what happens on an ambiguous name fragment, so it is not fully complete.

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 and identifier forms are front-loaded, and every sentence carries information about persistence, auth, or pinning. The final sentence is dense and slightly run-on ('so no agent switches another; each names any other company...'), which costs a bit of readability.

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 2-parameter, non-destructive state-setting tool with full schema coverage and no output schema, the description covers scope, persistence, permission limits, and concurrency. Remaining gaps are minor: no mention of error behavior for a non-unique fragment or of what a successful call returns.

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 baseline is 3, but the description goes beyond it by framing the multi-agent sharing model that gives pin its meaning: pin true holds the company until pin false, so one agent cannot switch another. That rationale is not in the schema's terse pin description and materially clarifies when to set it.

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?

States a concrete verb and resource ('Select the active company for this connection') and enumerates the accepted identifier forms, which distinguishes it from the CRUD sibling manage_company. It points at list_companies as the source of valid identifiers, though it does not explicitly say what manage_company is for by contrast.

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 clear context: call it to establish which company subsequent bookkeeping reads operate against, and obtain the identifier from list_companies. It also explains the concurrency case (multiple agents sharing a connection) with the pin toggle. It stops short of explicit when-not guidance or a named alternative for other company operations.

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.