anthropic-admin-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@anthropic-admin-mcpWhat did my organization spend last week, grouped by workspace?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
anthropic-admin-mcp
The MCP server Anthropic hasn't shipped yet — full coverage of the Anthropic Admin API and the Usage & Cost API, properly typed, properly tooled, and properly safety-scoped.
Manage your Anthropic organization from any MCP-compatible client (Claude Desktop, Cursor, Windsurf, ChatGPT, etc.) using natural language:
"What did my organization spend last week, grouped by workspace?"
"Which API key burned through the most Opus tokens yesterday?"
"Show me Pre-Mortem's usage day-by-day for the last 14 days."
"Invite contractor@example.com as a developer to the Sandbox workspace."
"Deactivate the API key named 'old-laptop'."
10 read tools, 10 write tools, audit logging, optional workspace scoping, read-only mode, role-escalation guard.
Why this exists
Anthropic ships an excellent Admin API with ~22 endpoints across organization management, workspaces, members, API keys, usage reporting, and cost reporting. Existing MCP wrappers from third parties cover a tiny slice of it through commercial integration platforms. This server is native, free, open-source, and complete — installable in two minutes against your own Admin key.
Related MCP server: openai-workspace-mcp
Install
pip install git+https://github.com/Trushtonfactory/anthropic-admin-mcp.gitOr for local development:
git clone https://github.com/Trushtonfactory/anthropic-admin-mcp.git
cd anthropic-admin-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .Configure
Get an Admin API key at console.anthropic.com → Settings → Admin Keys. Requires an Organization plan (Team / Pro+ / Enterprise) and the admin role. Individual accounts cannot create Admin keys.
Copy
.env.exampleto.envand fill in your key:cp .env.example .env # edit .env: ANTHROPIC_ADMIN_KEY=sk-ant-admin-...Wire it into your MCP client. For Claude Desktop, add to
~/Library/Application Support/Claude/claude_desktop_config.json:{ "mcpServers": { "anthropic-admin": { "command": "anthropic-admin-mcp", "env": { "ANTHROPIC_ADMIN_KEY": "sk-ant-admin-..." } } } }See
examples/claude_desktop_config.jsonfor more options (read-only mode, workspace scoping).
Tools
Read (10)
Tool | Purpose |
| Smoke-test the key; return org id + name |
| List org members and roles |
| List pending and historical invites |
| List active (and optionally archived) workspaces |
| Resolve a workspace ID to its full record |
| List members of a specific workspace |
| List keys with filters by status / workspace |
| Token usage, grouped by workspace/api_key/model/etc. |
| Dollar costs, grouped by workspace / description |
| Claude Code-specific usage data |
Write (10) — all require confirm=True
Tool | Action |
| Send an invite (cannot grant admin) |
| Cancel a pending invite |
| Change a member's org role (cannot touch admin) |
| Remove a non-admin member |
| Create a new workspace |
| Rename or recolor a workspace |
| Archive a workspace |
| Grant workspace access |
| Change a workspace role |
| Revoke workspace access |
| Rename or deactivate an API key |
Running
# Full mode (read + write), stdio transport
anthropic-admin-mcp
# Read-only — recommended for first-time setup
anthropic-admin-mcp --read-only
# Streamable HTTP (for remote MCP clients)
anthropic-admin-mcp --http --port 8000
# Restrict writes to specific workspaces (set in .env or shell)
ALLOWED_WORKSPACES=wrkspc_abc,wrkspc_xyz anthropic-admin-mcpSafety
See SECURITY.md for the full threat model and design notes. The short version:
Reads are open. Anything the Admin API exposes with your key, this server exposes.
Writes are guarded. Every mutation requires
confirm=True, gets audit-logged to JSONL, and respects optional workspace scoping.Role escalation is blocked client-side even though the API itself blocks it server-side — clearer error messages for Claude.
No credential exfiltration paths. The Admin API never returns key values, and this server never logs the Admin key itself.
Status
v0.1.0 — read + write tool surface complete. Pagination, error messages, and audit logging tested manually. No usage limits implemented yet. Pydantic response models are minimal (tools return raw dicts).
Issues and PRs welcome.
License
MIT — see LICENSE.
Available Tools
21 toolsadd_workspace_memberA
Grant a user access to a workspace.
Org admins and org billing members get automatic workspace roles and don't need to be added explicitly. workspace_billing is inherited from org-level billing role and cannot be assigned here.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | ||
| user_id | Yes | ||
| workspace_role | Yes | One of: ['workspace_admin', 'workspace_developer', 'workspace_user'] | |
| confirm | No | Must be true to execute. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that certain roles are automatic and workspace_billing cannot be assigned. However, it does not mention the confirmation mechanism or any other behavioral traits like permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no fluff. The first sentence clearly states the purpose, and the following sentences add essential context. Every sentence is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema (not shown but available). The description covers the main purpose, exceptions, and a behavioral constraint (workspace_billing inherited). It lacks mention of the 'confirm' parameter's role, but overall is sufficiently complete for a simple add operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (workspace_role and confirm have descriptions). The description adds context about roles (workspace_billing cannot be assigned) but does not describe workspace_id or user_id semantics. It partially compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Grant' and the resource 'user access to a workspace'. It distinguishes from siblings like 'invite_member' by implying direct addition, but does not explicitly differentiate from 'invite_member' or 'update_workspace_member_role'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context: org admins and billing members get automatic roles and don't need to be added, and workspace_billing role is inherited. This guides the agent on when not to use the tool, though it does not mention when to prefer this over 'invite_member'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_workspaceA
Archive a workspace.
Archived workspaces are hidden from default listings but their data (usage history, costs) is preserved. API keys in the workspace become inactive. Per Anthropic docs this state is reversible through the Console.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | ||
| confirm | No | Must be true to execute. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It explicitly states that archived workspaces are hidden, data is preserved, API keys become inactive, and the action is reversible through the Console, providing key behavioral traits beyond the bare operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences) and front-loaded with the main action. It could be slightly tighter but avoids unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (which presumably documents return values), the description adequately covers the tool's effect on workspace visibility, data, and API keys, making it complete for a simple archive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'confirm' has a description). The description does not elaborate on 'workspace_id' or provide context beyond the action, so it meets the baseline 3 but adds no extra parameter insight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Archive a workspace' and explains the consequences (hidden from default listings, data preserved, API keys inactive, reversible), which distinguishes it from siblings like create_workspace, remove_workspace, and update_workspace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (to hide a workspace while preserving data) but does not explicitly contrast with remove_workspace or other alternatives, nor does it specify prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_workspaceA
Create a new workspace.
Workspaces partition API keys, members, and limits. Max 100 active workspaces per organization. Creating a workspace does not add any members or keys to it automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name for the new workspace | |
| confirm | No | Must be true to execute. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: maximum 100 active workspaces per organization and that creating a workspace does not automatically add members or keys. Could mention if creation is immediate or any rollback behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words: first sentence states purpose, second and third add contextual constraints. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given high schema coverage and presence of output schema (indicated by context signals), the description adequately covers creation behavior, limits, and non-automatic side effects. Could mention whether workspace names must be unique.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds no extra meaning beyond what the schema provides. Baseline score of 3 is appropriate as the schema already documents both parameters (name and confirm) adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and resource ('workspace'), clarifies that workspaces partition API keys, members, and limits, and distinguishes from sibling tools like add_workspace_member by noting that creating a workspace does not automatically add members or keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use (e.g., when you need a new workspace within the 100 active workspace limit) but does not explicitly state when not to use or mention alternative tools like update_workspace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_inviteA
Cancel a pending invite.
Once deleted, the invite link will no longer work. The invitee will not be notified. Re-inviting requires a new invite call.
| Name | Required | Description | Default |
|---|---|---|---|
| invite_id | Yes | ||
| confirm | No | Must be true to execute. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits: invite link becomes invalid, invitee not notified, and re-inviting requires a new call. However, it omits the requirement that the 'confirm' parameter must be true (as per input schema), which is a behavioral guardrail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each providing useful information without redundancy. The key action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple delete action and presence of an output schema, the description covers most aspects. It correctly notes re-inviting requires a new call. Missing mention of the mandatory confirmation flag (confirm parameter) slightly reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'confirm' has a description). The description adds no parameter-level details; 'invite_id' remains undocumented both in schema and description. The description does not compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Cancel a pending invite', which is a specific verb and resource. It clearly distinguishes from sibling tools like 'invite_member' (create) and 'list_invites' (list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for canceling a pending invite but does not explicitly guide when to use this tool over alternatives. No when-not or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_claude_code_usageA
Get usage data specific to Claude Code workspaces.
Returns daily aggregated user activity, tool usage statistics, and token consumption for Claude Code sessions. This is separate from the general usage report and only covers Claude Code workspace activity. Bedrock-routed Claude Code is not included.
| Name | Required | Description | Default |
|---|---|---|---|
| starting_at | Yes | RFC 3339 start time, e.g. '2026-05-01T00:00:00Z' | |
| ending_at | No | ||
| limit | No | ||
| page | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It clearly describes the tool's behavior: returns daily aggregated user activity, tool usage statistics, and token consumption, and specifies that it is separate from general usage and excludes Bedrock-routed Claude Code. Additional details like pagination or rate limits would improve transparency, but the core behavioral traits are well-covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, with the purpose in the first sentence, details in the second, and an exclusion in the third. No redundant words, clearly structured, and front-loaded. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters, an output schema, and a specific scope. The description covers the tool's domain and output well but lacks guidance on parameter usage (e.g., how to paginate, date format constraints) and does not provide any usage context or error scenarios. Given the output schema exists, completeness is adequate but leaves gaps in practical usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only 'starting_at' has a description). The description does not add any meaning to the other three parameters ('ending_at', 'limit', 'page'). For a low-coverage schema, the description should compensate by explaining parameter usage, but it does not. The description only describes the output nature, not the inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves usage data for Claude Code workspaces, detailing what is returned (daily aggregated user activity, tool usage, token consumption) and explicitly distinguishing it from the general usage report and excluding Bedrock-routed Claude Code. This provides a specific verb+resource and differentiates from siblings like get_usage_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for Claude Code workspace data and mentions exclusions (Bedrock-routed), but does not explicitly state when to use this tool over alternatives, nor does it provide clear prerequisites or context for when not to use it. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cost_reportA
Get dollar-amount cost data for the organization.
Returns costs in US dollars (already converted from the API's native cents representation by the client wrapper) broken down by operation description (input tokens, output tokens, cache writes /reads, code execution, web search, etc.) and optionally by workspace. Use for questions like 'what did we spend last week' or 'which workspace cost the most this month'. Priority Tier costs are NOT included here — track those via usage.
| Name | Required | Description | Default |
|---|---|---|---|
| starting_at | Yes | RFC 3339 start time, e.g. '2026-05-01T00:00:00Z' | |
| ending_at | No | ||
| group_by | No | Dimensions to group by. Any subset of: 'workspace_id', 'description'. Omit for an org-wide total. | |
| limit | No | ||
| page | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses currency (USD), client-side conversion from cents, breakdown dimensions, and cost types excluded. It does not mention that the operation is read-only or address potential rate limits, but the provided behavioral context is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is 100 words, front-loaded with the main function, and each sentence adds value. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are handled. The description covers key aspects: currency, breakdown, exclusion. Missing is explicit pagination guidance for 'limit' and 'page', which are common parameters requiring explanation for proper use. Overall adequate but with one gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40%, but the description adds no parameter-specific details. It references 'group_by' implicitly via 'optionally by workspace', but does not explain 'limit', 'page', or 'ending_at' semantics. The agent must rely on the sparse schema descriptions, which are insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get dollar-amount cost data for the organization' with specific breakdown by operation description and optional workspace. It provides concrete example questions ('what did we spend last week') and distinguishes from sibling tools by focusing on cost vs. usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage examples are given, and it clarifies that Priority Tier costs are excluded and should be tracked via 'usage' tool. However, it does not name an alternative tool for that case, leaving the agent to infer from sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_org_infoA
Get information about the current Anthropic organization.
Returns the organization's ID, name, and type. Useful as a smoke test that the Admin API key is configured correctly.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation by noting it returns info, and highlights its safety as a smoke test. Without annotations, it could further state it has no side effects, but the current text is still informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The first sentence states the purpose, the second adds practical context. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema exists), the description is complete. It covers what the tool does, what it returns, and a typical use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema coverage, so the description does not need to explain parameters. Per calibration, 0 params warrants a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'org info', listing returned fields (ID, name, type). It distinguishes from sibling tools by focusing on organization-level info versus workspace or member operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions a key use case: 'smoke test that the Admin API key is configured correctly.' While it doesn't discuss when not to use it, the context is clear for a simple read tool with no parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usage_reportA
Get detailed token usage from the Messages API.
Returns input/output/cache token counts and request counts, bucketed by the requested time window and grouped by the requested dimensions. Use this for questions like 'how many Opus tokens did workspace X burn yesterday' or 'show daily request volume for the last week grouped by model'. Data appears within ~5 minutes of API calls.
| Name | Required | Description | Default |
|---|---|---|---|
| starting_at | Yes | RFC 3339 start time, e.g. '2026-05-01T00:00:00Z' | |
| ending_at | No | RFC 3339 end time. Defaults to now. | |
| bucket_width | No | Aggregation window: '1m', '1h', or '1d' | 1d |
| group_by | No | Dimensions to group by. Any subset of: 'workspace_id', 'api_key_id', 'model', 'service_tier', 'context_window'. Omit for an org-wide total. | |
| limit | No | ||
| page | No | Pagination cursor from previous response |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses data freshness but omits rate limits, authentication requirements, or behavior on empty results. Adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise: two sentences for purpose and latency, then bullet-like examples. No filler. Could be slightly more structured (e.g., separate sections) but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema, so return format is covered. Description includes usage context, examples, and latency. Lacks details on pagination and error conditions, but overall sufficient for a reporting tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83%, so baseline is 3. Description adds context via examples and mentions bucketing/grouping, but does not explain each parameter beyond what the schema already provides. Marginal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed token usage from the Messages API and lists return fields (token counts, request counts). It distinguishes from siblings like get_cost_report by emphasizing dimensions and time bucketing, but does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete example questions and mentions data latency (~5 minutes). However, it does not state when to avoid using this tool or suggest alternatives for other reporting needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspaceA
Get a single workspace by ID.
Returns name, display_color, created_at, archived_at (if archived), and type. Useful for resolving a workspace ID into its display name before referring to it in subsequent operations.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | Workspace ID, e.g. 'wrkspc_01Jw...' |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses return fields including conditional 'archived_at (if archived),' indicating read-only behavior. Lacks details on error handling or non-existence but is sufficiently clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: three sentences, front-loaded with the core action, and each sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with one parameter and an output schema (not shown but referenced), the description covers purpose, usage context, and return fields completely. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema adequately documents the parameter. The description does not add additional semantic information beyond what is already in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Get a single workspace by ID' and lists the specific fields returned. It distinguishes from sibling 'list_workspaces' by focusing on a single workspace retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete use case: 'resolving a workspace ID into its display name before referring to it in subsequent operations.' Though it doesn't explicitly mention when not to use it or alternatives, the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invite_memberA
Invite a new member to the organization.
Sends an invitation email. The invitation expires in 21 days and cannot be modified once created — only cancelled and re-issued. Cannot grant the 'admin' role; admins must be promoted via Console.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address to invite | ||
| role | Yes | Org role. One of: ['billing', 'claude_code_user', 'developer', 'user'] | |
| confirm | No | Must be true to execute. Sends an email invite that expires in 21 days. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral disclosure burden. It discloses that the tool sends an email, has a 21-day expiration, is non-modifiable, and has role restrictions. This provides sufficient transparency for an agent to understand side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the main action. Every sentence adds essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (providing return structure) and no annotations, the description covers key behavioral aspects. It could mention that invites can be deleted via 'delete_invite', but overall it is complete for an invitation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value beyond the schema by explaining expiration, non-modifiability, and the admin restriction. These details help the agent understand the implications of the 'confirm' parameter and the role limitations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool invites a new member to the organization, using a specific verb and resource. It distinguishes from siblings like 'add_workspace_member' (workspace-level) and 'delete_invite' (cancellation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides important usage constraints: invitation expires in 21 days, cannot be modified once created, and cannot grant the 'admin' role. It also directs that admins must be promoted via Console. While it doesn't explicitly contrast with sibling tools, it gives clear context for when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_api_keysB
List API keys in the organization.
Returns metadata only — the actual key values are never returned by the Admin API and cannot be retrieved after creation. Each entry includes id, name, status, workspace_id, partial_key_hint (last 4 chars), and created_by_user_id.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | Filter by status: active, inactive, archived | |
| workspace_id | No | Filter by workspace ID | |
| created_by_user_id | No | ||
| before_id | No | ||
| after_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses a key behavioral fact: actual key values are never returned and cannot be retrieved after creation. This is valuable. However, it does not mention other potential behaviors like pagination or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two short paragraphs. The first sentence is clear, and the second provides useful return field details. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the six parameters and low schema coverage, the description is incomplete. It lacks information on pagination, ordering, and how filters interact. The security disclosure is helpful but insufficient for full understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33%), and the description does not add meaning to the parameters. It only describes the return fields, not how to use the parameters like limit, status, or workspace_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists API keys in the organization, which is a specific verb and resource. However, it does not differentiate from siblings like update_api_key or other list tools, which would be helpful.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks any recommendations or scenarios for when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_invitesB
List pending and historical organization invites.
Invites expire after 21 days. Each invite includes the invited email, the role offered, status (pending / accepted / expired / deleted), and timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| before_id | No | ||
| after_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description mentions expiration and fields but omits rate limits, auth requirements, or pagination behavior beyond schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, first is clear and direct; second adds useful context but could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides basic purpose and structure but lacks parameter context and behavioral details for a list tool with pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage 0% and description does not explain parameters (limit, before_id, after_id) despite 3 parameters being present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'list' and resource 'organization invites', scope 'pending and historical' distinguishes it from invite_member (create) and delete_invite (delete).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for listing invites but no explicit when-to-use vs. alternatives, no exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_membersA
List organization members.
Returns up to limit members per call. For pagination, pass the
last user_id from a previous response as after_id. Member objects
include id, email, name, role (user / developer / billing / admin /
claude_code_user), and timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of members to return (1-100) | |
| before_id | No | Cursor: return results before this user_id | |
| after_id | No | Cursor: return results after this user_id |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It describes the operation as a read (list) and details pagination, but does not disclose required permissions, rate limits, or whether the list is scoped to the authenticated user's organization. Key behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise at five lines, with front-loaded purpose. Each sentence (scope, pagination, returned fields) adds value. Minor improvement would be further condensing the pagination explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (covering return structure), the description adequately explains pagination and returned fields. However, it omits context on authorization requirements (e.g., admin only) and whether the list covers all org members or only those visible to the caller.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already described. The description adds valuable pagination guidance (pass last user_id as 'after_id') and clarifies that 'limit' controls page size. This enriches understanding beyond the basic schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List organization members' with a specific verb and resource. It distinguishes from sibling 'list_workspace_members' by indicating organization-level scope, and enumerates the returned fields (id, email, name, role, timestamps).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'list_workspace_members'. It lacks explicit when-to-use, when-not-to-use, or exclusion criteria, leaving the agent to infer scope from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspace_membersA
List members of a specific workspace.
Each entry includes the user_id and their workspace_role (workspace_admin / workspace_developer / workspace_user / workspace_billing). Org admins automatically have workspace_admin on every workspace and may not appear here explicitly.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | ||
| limit | No | ||
| before_id | No | ||
| after_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It usefully discloses that org admins automatically have workspace_admin but may not appear explicitly, which is a key behavioral nuance. It implies the list is workspace-specific and non-destructive, though it does not mention pagination or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loading the main action and adding relevant details. Every sentence adds value, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description need not explain return values, but it still describes the output fields appropriately. It covers the org admin caveat, which is important for understanding results. It could mention pagination to match the input schema, but overall it is complete for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 0%, and the description adds no meaning to the parameters (workspace_id, limit, before_id, after_id). It only describes output fields, not input parameters, leaving the agent without guidance on parameter usage beyond schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists members of a specific workspace, providing a specific verb and resource. It distinguishes from sibling tools like 'list_workspace' or 'list_members' by specifying the scope. The detail about output fields (user_id, workspace_role) further clarifies purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates the tool is for listing workspace members, but does not explicitly state when to use it versus alternatives like 'add_workspace_member' or 'invite_member'. It mentions the org admin exclusion but lacks guidance on when not to use the tool or suggestions for other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspacesA
List workspaces in the organization.
Workspaces partition API keys, members, and billing. Every org has a Default Workspace that doesn't appear in this list. Max 100 active workspaces per org; archived workspaces don't count against the limit.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| include_archived | No | Include archived workspaces in results | |
| before_id | No | ||
| after_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses that Default Workspace is not listed, archived workspaces don't count against the limit, and the max limit. However, it does not explain pagination behavior (before_id, after_id) or authentication needs, leaving some transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, front-loaded with the purpose. Each sentence provides valuable context without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, return values are covered. However, the description lacks details on pagination (before_id, after_id usage) and ordering, which are important for a list tool. It adequately covers workspace scoping and limits but misses these behavioral details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 25% (only include_archived described). The description partially compensates by explaining the limit context (max 100 active workspaces) and archiving, but before_id and after_id remain unexplained, so it adds limited meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List workspaces in the organization' with specific verb and resource. It distinguishes from sibling tools like create_workspace or archive_workspace by implying it is a read operation, and adds context about the Default Workspace exclusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use the tool (listing workspaces, noting that Default Workspace is excluded and there is a limit of 100 active workspaces). It does not explicitly state when not to use it or suggest alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_memberA
Remove a member from the organization.
The user loses access to all workspaces immediately. API keys created by them remain active (keys are org-scoped, not user-scoped). Cannot remove members with the 'admin' role — that must be done through the Console.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| confirm | No | Must be true to execute. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It reveals important effects: immediate loss of access, persistence of API keys ('keys are org-scoped, not user-scoped'), and the admin role restriction. This goes beyond the input schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each essential. Front-loaded with the primary action, followed by critical behavioral details, and ending with an important constraint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters and an output schema exists, the description covers the main purpose, key side effects, and a constraint. It is complete enough for an agent to understand the tool's scope and consequences, though it could briefly mention the 'confirm' parameter's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'confirm' has a description). The tool description does not add meaning for 'user_id', which remains undocumented. It could clarify the expected format or source of user IDs, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Remove a member from the organization' with a specific verb and resource. It distinguishes from sibling tools like remove_workspace_member (which removes from a workspace only) and update_member_role (which changes role instead).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when NOT to use the tool ('Cannot remove members with the 'admin' role') and directs to an alternative ('that must be done through the Console'). While it doesn't explicitly list other siblings for comparison, the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_workspace_memberA
Remove a member from a workspace.
They lose access to API keys scoped to this workspace. Their org-level role and access to other workspaces are unaffected. Org admins cannot be removed from workspaces — their role is automatic and inherited.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | ||
| user_id | Yes | ||
| confirm | No | Must be true to execute. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses loss of workspace-specific API key access, that org-level role is unaffected, and that org admins cannot be removed. This covers key behavioral traits but does not mention reversibility or any side effects beyond what is stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the purpose. Every sentence adds value: purpose, consequence, unaffected scope, and limitation. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 params, straightforward action) and presence of an output schema, the description provides adequate context: purpose, consequences, and constraint. It does not mention prerequisites (e.g., user must be a workspace member) or return value, but the output schema likely covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (33%), with only 'confirm' described. The description adds overall context but does not explain workspace_id or user_id individually. However, their purpose is reasonably inferable from the tool name and context. A 3 is appropriate as the description slightly compensates for low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Remove a member from a workspace' with specific verb and resource. It distinguishes from sibling tools like add_workspace_member and update_workspace_member_role by detailing effects on API keys and org-level role, and adds a clear limitation about org admins.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use (remove from workspace) and includes an exclusion for org admins. However, it does not explicitly compare with the sibling 'remove_member' (likely org-level removal) or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_api_keyA
Rename or deactivate an API key.
Renaming is cosmetic and does not require confirmation in itself, but the tool still respects the global confirm flag. Setting status='inactive' immediately stops the key from authenticating new requests — any running workloads using it will start failing. This server cannot reactivate keys; that must be done in the Console.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key_id | Yes | ||
| name | No | New display name (cosmetic) | |
| status | No | New status. 'inactive' deactivates the key; reactivation requires Console access. | |
| confirm | No | Must be true when changing status. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, description discloses key behavioral traits: renaming is cosmetic, deactivation is immediate and one-way, global confirm flag is respected, and reactivation is impossible via this tool. This fully carries the transparency burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four efficient sentences front-loaded with purpose. Every sentence adds value with no redundancy. Structure logically progresses from purpose to details to limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers side effects, limitations, and intended actions. Has output schema, so return format not required. Missing error scenarios or prerequisites, but for a mutation with moderate complexity, this is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% (missing api_key_id). Description adds context beyond schema: explains renaming doesn't require confirmation but respects global flag, and that status='inactive' deactivates. Compensates well for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Rename or deactivate an API key,' providing a specific verb and resource. It distinguishes from sibling tools (all workspace/member operations) as the only API key mutation tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to use (rename or deactivate) and notes that reactivation must be done in the Console. Lacks explicit when-not conditions, but the context is clear given no alternative API key update tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_member_roleA
Change an existing member's organization role.
Cannot promote to or demote from 'admin' — those changes happen only in the Console. Changing roles takes effect immediately and may impact what API keys and workspaces the user can access.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| role | Yes | New role. One of: ['billing', 'claude_code_user', 'developer', 'user'] | |
| confirm | No | Must be true to execute. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool cannot change admin roles, takes immediate effect, and may impact API keys and workspaces. However, it does not disclose whether the action is reversible, what happens to active sessions, or the requirement for the 'confirm' parameter (though schema covers that). The transparency is adequate but not deeply detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with purpose, and every sentence adds value. The first sentence states the action, and the second provides constraints and effects. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description need not explain return values. It covers the main contextual points: what the tool does, what it cannot do (admin changes), and immediate effects. However, it could mention the confirm parameter's role or provide a usage example, but it's still fairly complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, so baseline is 3. The description does not add meaning beyond what the schema already provides: the role parameter's enum values are listed in both, and user_id and confirm have no additional explanation in the description. Thus, no extra value added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Change an existing member's organization role.' It uses a specific verb ('change') and resource ('member's organization role'), which distinguishes it from sibling tools like add_workspace_member (adds member) or update_workspace_member_role (workspace-level role change).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly warns when not to use the tool: 'Cannot promote to or demote from "admin" — those changes happen only in the Console.' This provides clear usage boundaries. It also notes immediate effect and potential impact on API keys and workspaces, giving context for when it's appropriate. However, it doesn't compare directly with update_workspace_member_role, leaving some overlap ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_workspaceA
Rename or recolor a workspace.
Cosmetic only — does not affect billing, access, or API keys.
At least one of name or display_color must be provided.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | ||
| name | No | New display name | |
| display_color | No | New display color, e.g. '#6C5BB9' | |
| confirm | No | Must be true to execute. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that changes are cosmetic and do not affect billing, access, or API keys. Could mention validation or failure behavior, but the key behavioral trait is well described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second clarifies side effects and constraint. No wasted words, front-loaded with core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, no need to explain return values. Description covers purpose, constraints, and side effects. Complete for a simple update tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%. Description adds the constraint that at least one of name or display_color must be provided, which is not in schema. Also clarifies the cosmetic nature, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Rename or recolor a workspace', specifying the verb and resource. It distinguishes from sibling tools like archive_workspace or create_workspace by focusing on cosmetic updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Cosmetic only — does not affect billing, access, or API keys', guiding when to use (cosmetic changes) and when not. Also states the constraint that at least one of name or display_color must be provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_workspace_member_roleA
Change a member's role within a workspace.
Effective immediately. Does not affect their org-level role or access to other workspaces.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | ||
| user_id | Yes | ||
| workspace_role | Yes | One of: ['workspace_admin', 'workspace_developer', 'workspace_user'] | |
| confirm | No | Must be true to execute. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It mentions 'Effective immediately' and clarifies no effect on org role or other workspaces. However, it omits details on permissions, error handling, reversibility, and the purpose of the 'confirm' parameter, which is a safety mechanism.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core action, followed by immediate effect and scope limitations. No superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose and key behavioral aspects. However, it omits explanation of the 'confirm' parameter (a non-obvious requirement), permission prerequisites, and what happens on failure. With an output schema present (not shown), return values are less critical. Overall adequate but could be enriched.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (2 of 4 params have descriptions). The tool description does not add any parameter-level detail beyond what the schema provides. For instance, it does not explain what workspace_id or user_id represent. Given moderate coverage, description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Change a member's role within a workspace,' specifying the verb (change) and resource (member's role). It distinguishes from siblings like 'update_member_role' by noting it does not affect org-level role, implying a separate tool for org roles. The differentiation is effective.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context by stating the change is workspace-specific and does not affect org-level role, guiding the agent to use this for workspace roles. However, it does not explicitly name alternative tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
21 tool updates
v0.1.1- First observed
add_workspace_member - First observed
archive_workspace - First observed
create_workspace - First observed
delete_invite - First observed
get_claude_code_usage - First observed
get_cost_report - First observed
get_org_info - First observed
get_usage_report - First observed
get_workspace - First observed
invite_member - First observed
list_api_keys - First observed
list_invites - First observed
list_members - First observed
list_workspace_members - First observed
list_workspaces - First observed
remove_member - First observed
remove_workspace_member - First observed
update_api_key - First observed
update_member_role - First observed
update_workspace - First observed
update_workspace_member_role
TDQS
Each tool has a distinct purpose targeting specific resources (workspaces, members, invites, API keys, usage). No two tools overlap in functionality; even the two report tools (get_cost_report and get_usage_report) clearly separate dollar costs from token usage. The tool set is well-organized with clear boundaries.
All tool names follow a consistent verb_noun pattern (e.g., create_workspace, list_members, update_api_key). Verbs are chosen predictably and match the action being performed. No mixing of conventions like camelCase or inconsistent verb styles.
21 tools is reasonable for the complexity of Anthropic administration, covering organization, workspaces, members, invites, API keys, and usage reports. Each tool addresses a necessary operation without obvious redundancy or bloat.
The tool set covers most core admin operations but has notable gaps: no tool to create or delete API keys (only rename/deactivate), and no tool to delete a workspace (only archive). These missing lifecycle operations may cause agents to hit dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Anthropic organization usage and cost reporting through an admin API key connected by the user.
- WorkOSOAuthcom.workos
Manage your WorkOS workspace in plain language: orgs, users, SSO, Directory Sync, and AuthKit.
Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP-powered HR management system that automates employee onboarding, leave tracking, meeting scheduling, and IT ticketing. It allows users to manage organizational workflows and administrative tasks through natural language interactions with Claude.2-
- AlicenseAqualityCmaintenanceExposes the OpenAI Admin API as MCP tools, enabling management of organization members, projects, service accounts, API keys, rate limits, usage, costs, and audit logs through natural language.31Apache 2.0
- FlicenseNot gradedqualityCmaintenanceDemonstrates agent-native platform onboarding with human-in-the-loop API key provisioning, plus live usage and rate-limit queries via Anthropic Admin APIs.-
- AlicenseNot gradedqualityBmaintenanceEnables Claude and other MCP clients to manage Pankow organizations, projects, test cases, and CI/runs, configure AI targets, and run LLM evaluations directly from an agent.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Trushtonfactory/anthropic-admin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server