cursor-usage

Demo animation created with remotion-readme-kit
What This Does
You manage a Cursor Enterprise team. You want to know who's spending what, which models are being used, and whether you're getting value from AI. Instead of logging into a dashboard, you ask your AI agent:
"How much did my team spend this week?"
"Who's using the most expensive models?"
"Give me a full usage report for the current billing cycle."
This MCP server plugin wraps the full Cursor Enterprise Admin and Analytics APIs, giving your agent the tools and knowledge to answer those questions directly. Works with Cursor, Claude Code, and any MCP-compatible client.
Part of the cursor-usage-tracker ecosystem. This plugin handles quick questions in the IDE. The tracker is the full open-source dashboard with charts, three-layer anomaly detection, Slack/email alerts, and incident lifecycle tracking. Use them together or separately.
Related MCP server: Token Analyzer MCP
What's Included
Component | What it does |
MCP Server | 15 tools wrapping the full Cursor Enterprise Admin + Analytics API |
Skills | Data interpretation guide + cost optimization framework |
Rules | Always-on cost-awareness guidance for model selection |
Commands | Quick-access: |
Agent | Specialized usage analyst persona |
Install
Cursor (Marketplace)
/add-plugin cursor-usageThen set your API key in Cursor settings:
Open Settings → MCP
Find
cursor-usageand setCURSOR_API_KEYto your Cursor Enterprise Admin API key
Claude Code
/plugin install cursor-usageManual (any MCP-compatible client)
Add to your MCP configuration:
{
"mcpServers": {
"cursor-usage": {
"command": "npx",
"args": ["-y", "cursor-usage-mcp"],
"env": {
"CURSOR_API_KEY": "your-api-key-here"
}
}
}
}As a Skill Only (no MCP server)
Copy the skills/ directory into your project's .cursor/skills/ or .claude/skills/ folder. The skills work standalone as reference material even without the MCP server.
Getting Your API Key
Go to your Cursor team settings (Settings → Team → API Keys)
Generate an Admin API key
For analytics endpoints, you may also need an Analytics API key
The API key gives read access to your team's usage data. The only write operation is set_spend_limit.
Available Tools
Admin API
Tool | Description |
| List all team members with roles and status |
| Current billing cycle spend per member |
| Daily usage data: lines, requests, models, modes |
| Billing groups with member lists and spend |
| Per-request events with model, tokens, and costs |
| Set a hard spending limit for a user |
Analytics API
Tool | Description |
| Daily active users (includes CLI, cloud agent, Bugbot) |
| Model usage breakdown per day |
| Agent edit acceptance/rejection rates |
| Tab autocomplete effectiveness |
| MCP tool adoption |
| Top file types being edited with AI |
| Cursor version distribution |
| Command usage analytics |
| Plan mode adoption |
Composite Tools
Tool | Description |
| One-call summary: members, spend, DAU, top models |
| Deep dive into a specific user's usage patterns |
Example Conversations
Quick spend check:
You: "How much has my team spent this billing cycle?" Agent: calls get_team_overview → "Your team of 47 active members has spent $3,842 this cycle. Top spender is Alice at $412, followed by Bob at $287..."
User investigation:
You: "Why is Bob's spend so high?" Agent: calls get_user_deep_dive → "Bob has made 847 requests this week, 73% using claude-opus-4.5. His daily average is $41 vs the team median of $12. Switching his chat requests to Sonnet would save approximately $180/month..."
Model audit:
You: "/model-audit" Agent: calls get_model_usage + get_spending + get_agent_edits → "62% of your team's messages use Sonnet (good). However, 5 users account for 78% of all Opus usage. Their acceptance rate on Opus is 44% vs 51% on Sonnet, suggesting Opus isn't providing measurably better results for most of their tasks..."
Full Cursor Enterprise Cost Monitoring Dashboard
This plugin answers quick questions in the IDE. For teams that need:
Historical trends over months (API is limited to 30 days)
Automated anomaly detection with statistical outlier detection
Slack/email alerts when spend spikes
Incident tracking with MTTD/MTTI/MTTR lifecycle
Web dashboard with charts and visualizations
See cursor-usage-tracker, the open-source Cursor Enterprise dashboard this plugin is part of.
Development
# Install dependencies
npm install
# Run in development
npm run dev
# Build
npm run build
# Type check
npm run typecheck
# Run tests
npm test
# Validate plugin structure
npm run validateRequirements
Node.js 20+
A Cursor Enterprise team with API access
Admin API key (and optionally Analytics API key)
Author
Ofer Shapira
License
MIT © Ofer Shapira
Available Tools
17 toolsget_agent_editsC
Get agent edit metrics: suggested vs accepted vs rejected diffs and lines. Shows how effectively the team is using AI-generated code.
| Name | Required | Description | Default |
|---|---|---|---|
| startDate | No | Start date. Formats: "YYYY-MM-DD", "7d", "30d", "today", "yesterday". Default: "30d" | |
| endDate | No | End date. Formats: "YYYY-MM-DD", "today", "yesterday". Default: "today" | |
| users | No | Comma-separated emails to filter by specific users |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a 'Get' operation (implying read-only) and describes the metrics returned, but doesn't cover important aspects like authentication requirements, rate limits, pagination, error conditions, or data freshness. For a tool with no annotation coverage, this leaves significant behavioral 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 appropriately concise with two sentences. The first sentence clearly states the purpose and metrics, while the second adds valuable context about team effectiveness. There's no wasted language, and the information is front-loaded. It could potentially be improved with more structured guidance, but it's efficient as-is.
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 moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It explains what metrics are returned and their purpose, but lacks details about the return format, data aggregation, or how the metrics are calculated. Without an output schema, more information about the response structure would be helpful for a complete 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?
The description doesn't mention any parameters, while the input schema has 100% description coverage with clear documentation of 'startDate', 'endDate', and 'users'. Since schema coverage is high (>80%), the baseline score is 3. The description adds no parameter semantics beyond what's already in the schema, but doesn't need to compensate for poor schema documentation.
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: 'Get agent edit metrics: suggested vs accepted vs rejected diffs and lines.' It specifies the verb ('Get') and resource ('agent edit metrics'), and provides meaningful context about what the metrics measure ('how effectively the team is using AI-generated code'). However, it doesn't explicitly differentiate from sibling tools like 'get_usage_events' or 'get_user_deep_dive' that might also provide related metrics.
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. It mentions the metrics show team effectiveness with AI-generated code, but doesn't specify use cases, prerequisites, or exclusions. With many sibling tools (e.g., 'get_daily_usage', 'get_user_deep_dive'), there's no indication of how this tool differs in scope or when it's the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_billing_groupsB
Get billing groups with member lists, group-level spend, and daily spend breakdown. Also returns billing cycle dates.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the data returned but doesn't cover critical aspects like whether this is a read-only operation, requires authentication, has rate limits, or involves pagination. For a data retrieval tool with zero annotation coverage, this leaves significant gaps in understanding its 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 a single, efficient sentence that front-loads the core purpose and lists the returned data fields without unnecessary words. Every part of the sentence adds value, making it appropriately sized and well-structured.
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 complexity (data retrieval with multiple fields) and lack of annotations or output schema, the description is minimally adequate. It specifies what data is returned but doesn't address behavioral traits or usage context. Without an output schema, it should ideally describe return format or structure, but it does cover the data scope, making it just viable.
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 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to compensate for any parameter gaps, and it appropriately focuses on the output data. Baseline is 4 for zero parameters.
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: retrieving billing groups with specific data fields (member lists, group-level spend, daily spend breakdown, billing cycle dates). It uses a specific verb ('Get') and identifies the resource ('billing groups'), but doesn't differentiate from sibling tools like 'get_spending' or 'get_plans' that might overlap in billing/usage domains.
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. It doesn't mention sibling tools like 'get_spending' or 'get_plans', nor does it specify prerequisites, contexts, or exclusions for usage. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_client_versionsB
Get Cursor client version distribution across the team: which versions are in use and what percentage of users are on each.
| Name | Required | Description | Default |
|---|---|---|---|
| startDate | No | Start date. Formats: "YYYY-MM-DD", "7d", "30d", "today", "yesterday". Default: "30d" | |
| endDate | No | End date. Formats: "YYYY-MM-DD", "today", "yesterday". Default: "today" | |
| users | No | Comma-separated emails to filter by specific users |
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 describes a read operation ('Get') but doesn't disclose behavioral traits such as authentication needs, rate limits, data freshness, or whether it returns aggregated or raw data. This leaves gaps for an agent to understand operational context.
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 a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place by specifying the action, resource, and key outputs (versions and percentages), making it easy to parse quickly.
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 no annotations and no output schema, the description adequately covers the tool's purpose but lacks details on behavioral context and return values. For a read-only analytics tool with full parameter documentation, it's minimally viable but could benefit from more operational guidance to be fully 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 100%, providing full documentation for all 3 parameters. The description adds no additional parameter semantics beyond what the schema already states, so it meets the baseline of 3 without compensating for gaps, as there are none to fill.
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 'Cursor client version distribution across the team', specifying what it retrieves (which versions are in use and percentage of users on each). It distinguishes from siblings like get_team_members or get_daily_usage by focusing on version analytics rather than user lists or time-based metrics.
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 explicit guidance on when to use this tool versus alternatives is provided. While the purpose is clear, there's no mention of prerequisites, when-not scenarios, or comparisons to sibling tools like get_team_overview or get_usage_events that might overlap in team analytics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_commandsB
Get command usage analytics: which Cursor commands are being used and how often.
| Name | Required | Description | Default |
|---|---|---|---|
| startDate | No | Start date. Formats: "YYYY-MM-DD", "7d", "30d", "today", "yesterday". Default: "30d" | |
| endDate | No | End date. Formats: "YYYY-MM-DD", "today", "yesterday". Default: "today" | |
| users | No | Comma-separated emails to filter by specific users |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions 'Get command usage analytics', it doesn't specify whether this is a read-only operation, if it requires authentication, what the output format looks like, or if there are rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and constraints.
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 a single, clear sentence that efficiently conveys the tool's purpose without unnecessary words. It's front-loaded with the key information and doesn't waste space on redundant details. Every part of the sentence earns its place by specifying what is being retrieved and what kind of data it provides.
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 complexity (analytics retrieval with date/user filtering), lack of annotations, and no output schema, the description is minimally adequate but incomplete. It explains what data is retrieved but doesn't cover behavioral aspects like authentication needs, rate limits, or output format. For a tool with 3 parameters and no structured output definition, more context would be helpful to ensure proper 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?
The schema description coverage is 100%, with all three parameters (startDate, endDate, users) well-documented in the input schema. The description doesn't add any additional meaning beyond what's already in the schema, such as explaining how the analytics are calculated or what 'command usage' specifically entails. Given the high schema coverage, a baseline score of 3 is appropriate.
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: 'Get command usage analytics: which Cursor commands are being used and how often.' It specifies the verb ('Get') and resource ('command usage analytics'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_usage_events' or 'get_daily_usage', which might also provide usage-related data.
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. With sibling tools like 'get_usage_events', 'get_daily_usage', and 'get_mcp_usage' that might overlap in providing usage data, there's no indication of what makes this tool distinct or when it should be preferred over others. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_daily_usageB
Get daily usage data per user: lines added/deleted, applies, accepts, rejects, tabs, requests by mode (composer/chat/agent), models used, and client versions.
| Name | Required | Description | Default |
|---|---|---|---|
| startDate | No | Start date as Unix timestamp in milliseconds | |
| endDate | No | End date as Unix timestamp in milliseconds | |
| page | No | Page number (default: 1) | |
| pageSize | No | Results per page (default: 100) | |
| allPages | No | Fetch all pages automatically (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions what data is returned but doesn't disclose behavioral traits like pagination behavior (implied by parameters but not explained), rate limits, authentication needs, data freshness, or whether this is a read-only operation. For a tool with 5 parameters and no annotations, this leaves significant gaps in understanding how it behaves.
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?
Single sentence that is front-loaded with the core purpose and efficiently lists the metrics included. Every word earns its place by specifying the scope and content of the data returned, with no redundant or vague phrasing.
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 no annotations and no output schema, the description provides a clear purpose and data scope but lacks behavioral context (e.g., pagination, rate limits) and output details. For a read operation with 5 parameters, it's minimally adequate but leaves gaps that could hinder an agent's ability to use it correctly without trial and error.
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 fully documents all 5 parameters (startDate, endDate, page, pageSize, allPages). The description doesn't add any parameter-specific information beyond what's in the schema, such as date format clarifications or pagination details. Baseline 3 is appropriate when the schema does the heavy lifting.
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 'daily usage data per user', with specific examples of the metrics included (lines added/deleted, applies, accepts, etc.). It distinguishes from siblings like get_dau (likely daily active users) or get_usage_events (likely event-level data) by focusing on aggregated daily user metrics.
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 explicit guidance on when to use this tool versus alternatives like get_dau, get_usage_events, or get_user_deep_dive. The description implies usage for daily aggregated user metrics but doesn't specify scenarios, prerequisites, or exclusions that would help an agent choose appropriately among similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dauB
Get daily active users over time, including breakdowns for CLI, cloud agent, and Bugbot usage.
| Name | Required | Description | Default |
|---|---|---|---|
| startDate | No | Start date. Formats: "YYYY-MM-DD", "7d", "30d", "today", "yesterday". Default: "30d" | |
| endDate | No | End date. Formats: "YYYY-MM-DD", "today", "yesterday". Default: "today" | |
| users | No | Comma-separated emails to filter by specific users |
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 mentions the tool returns 'daily active users over time' with breakdowns, but doesn't disclose important behavioral traits: whether this is a read-only operation, what format/timezone the data uses, if there are rate limits, authentication requirements, or what happens with invalid parameters. The description provides basic functionality but lacks operational context.
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?
Perfectly concise single sentence that front-loads the core purpose. Every word earns its place: 'Get daily active users over time' establishes the main function, and 'including breakdowns for CLI, cloud agent, and Bugbot usage' adds valuable specificity 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 read operation with 3 parameters and 100% schema coverage but no annotations or output schema, the description is minimally adequate. It states what the tool does but lacks context about output format, data granularity, timezone handling, or how the breakdowns are structured. Without an output schema, the description should ideally provide more guidance about what to expect from the results.
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 already fully documents all 3 parameters. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions 'breakdowns for CLI, cloud agent, and Bugbot usage' which hints at output structure but doesn't clarify if these are separate parameters or result fields. Baseline 3 is appropriate when schema does the heavy lifting.
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: 'Get daily active users over time' with specific breakdowns (CLI, cloud agent, Bugbot). It uses a specific verb ('Get') and resource ('daily active users'), but doesn't explicitly differentiate from siblings like 'get_daily_usage' or 'get_usage_events' that might provide similar metrics.
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 on when to use this tool versus alternatives. The description doesn't mention when this tool is appropriate compared to siblings like 'get_daily_usage', 'get_usage_events', or 'get_user_deep_dive'. There's no context about prerequisites, limitations, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_extensionsB
Get top file extensions being edited with AI: which file types get the most AI suggestions, accepts, and rejects.
| Name | Required | Description | Default |
|---|---|---|---|
| startDate | No | Start date. Formats: "YYYY-MM-DD", "7d", "30d", "today", "yesterday". Default: "30d" | |
| endDate | No | End date. Formats: "YYYY-MM-DD", "today", "yesterday". Default: "today" | |
| users | No | Comma-separated emails to filter by specific users |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('Get top file extensions'), implying a read-only operation, but doesn't mention potential side effects, authentication needs, rate limits, or data format. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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 a single, efficient sentence that front-loads the core purpose and includes key details (metrics: AI suggestions, accepts, rejects). There's no wasted verbiage or redundancy, making it easy to parse quickly.
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 moderate complexity (3 parameters, no output schema, no annotations), the description is partially complete. It clarifies the purpose and metrics but lacks behavioral context (e.g., data format, limitations) and usage guidelines. Without an output schema, it doesn't explain return values, leaving gaps in understanding what the tool delivers.
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 already documents all three parameters (startDate, endDate, users) with formats and defaults. The description doesn't add any parameter-specific details beyond what's in the schema, such as explaining how 'users' filtering interacts with the metrics. Baseline 3 is appropriate when the schema handles parameter documentation.
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 specific action ('Get top file extensions') and resource ('being edited with AI'), distinguishing it from sibling tools like get_agent_edits or get_model_usage by focusing on file extension analytics rather than agent edits or model usage. It specifies the exact metrics involved: AI suggestions, accepts, and rejects.
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 explicit guidance is provided on when to use this tool versus alternatives. While it implies usage for analyzing AI editing patterns by file type, it doesn't mention prerequisites, exclusions, or compare to siblings like get_usage_events or get_daily_usage that might offer related data. The description lacks context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mcp_usageB
Get MCP (Model Context Protocol) tool usage: which MCP servers and tools are being used, and how often.
| Name | Required | Description | Default |
|---|---|---|---|
| startDate | No | Start date. Formats: "YYYY-MM-DD", "7d", "30d", "today", "yesterday". Default: "30d" | |
| endDate | No | End date. Formats: "YYYY-MM-DD", "today", "yesterday". Default: "today" | |
| users | No | Comma-separated emails to filter by specific users |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states what data is retrieved without behavioral details. It lacks information on permissions needed, rate limits, response format, pagination, or whether this is a read-only operation (implied by 'Get' but not explicit).
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 a single, efficient sentence that front-loads the core purpose ('Get MCP tool usage') and elaborates concisely ('which MCP servers and tools are being used, and how often'). Every word contributes value with no 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 read operation with 3 parameters and 100% schema coverage, the description is minimally adequate but lacks output details (no schema provided) and behavioral context. It covers the 'what' but not the 'how' or 'when', leaving gaps in usage guidance and transparency.
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 fully documents parameters (startDate, endDate, users). The description adds no additional parameter semantics beyond what's in the schema, maintaining the baseline score of 3 for high 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 the verb ('Get') and resource ('MCP tool usage'), specifying what data is retrieved ('which MCP servers and tools are being used, and how often'). It distinguishes from sibling tools like get_agent_edits or get_model_usage by focusing on MCP-specific usage metrics.
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 like get_daily_usage or get_usage_events. The description implies usage tracking but doesn't specify scenarios, prerequisites, or exclusions, leaving the agent to infer context from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_model_usageA
Get model usage breakdown per day: which models are being used, how many messages, and by how many users. Essential for understanding model adoption and cost drivers.
| Name | Required | Description | Default |
|---|---|---|---|
| startDate | No | Start date. Formats: "YYYY-MM-DD", "7d", "30d", "today", "yesterday". Default: "30d" | |
| endDate | No | End date. Formats: "YYYY-MM-DD", "today", "yesterday". Default: "today" | |
| users | No | Comma-separated emails to filter by specific users |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what data is retrieved (usage breakdown per day) but lacks details on permissions required, rate limits, pagination, error handling, or the format of the returned data. For a read operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves beyond its basic function.
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 front-loaded with the core purpose in the first sentence and adds value with a second sentence on utility, with no wasted words. It efficiently communicates essential information without redundancy, making it easy for an agent to parse and understand quickly.
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 moderate complexity (3 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose and high-level use case but lacks details on behavioral traits (e.g., data format, limitations) that would help an agent invoke it correctly. Without annotations or output schema, more context on what to expect from the tool would improve 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 100%, with all three parameters (startDate, endDate, users) well-documented in the input schema, including formats and defaults. The description does not add any parameter-specific information beyond what the schema provides, such as explaining interactions between parameters or usage examples. Baseline score of 3 is appropriate as the schema handles the heavy lifting.
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 specific action ('Get model usage breakdown per day') and resource ('which models are being used'), distinguishing it from siblings like 'get_daily_usage' or 'get_mcp_usage' by focusing on model-level metrics. It explicitly mentions the key data points: models used, message counts, and user counts, making the purpose highly specific and differentiated.
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 context ('Essential for understanding model adoption and cost drivers'), suggesting it's for analytics and cost analysis, but does not explicitly state when to use this tool versus alternatives like 'get_daily_usage' or 'get_spending'. No exclusions or prerequisites are mentioned, leaving the agent to infer appropriate scenarios based on the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_plansC
Get plan mode adoption: which models are being used in plan mode and how often.
| Name | Required | Description | Default |
|---|---|---|---|
| startDate | No | Start date. Formats: "YYYY-MM-DD", "7d", "30d", "today", "yesterday". Default: "30d" | |
| endDate | No | End date. Formats: "YYYY-MM-DD", "today", "yesterday". Default: "today" | |
| users | No | Comma-separated emails to filter by specific users |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves adoption data but doesn't describe output format, pagination, rate limits, authentication needs, or whether it's a read-only operation. For a tool with zero annotation coverage, this leaves significant behavioral 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 a single, efficient sentence that front-loads the core purpose. It wastes no words and directly communicates what the tool does without redundancy or fluff.
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 no annotations, no output schema, and 3 parameters, the description is incomplete. It doesn't explain what the return values look like (e.g., list of models with counts), error conditions, or behavioral constraints. For a tool reporting usage metrics, more context is needed for effective agent use.
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 fully documents all three parameters (startDate, endDate, users). The description adds no parameter-specific information beyond what's in the schema, such as clarifying how 'users' filtering interacts with plan mode adoption. Baseline 3 is appropriate when the schema does the heavy lifting.
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: 'Get plan mode adoption: which models are being used in plan mode and how often.' It specifies the verb ('Get') and resource ('plan mode adoption'), and indicates it provides usage metrics. However, it doesn't explicitly differentiate from sibling tools like get_model_usage or get_daily_usage, which might also report model-related data.
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. It doesn't mention sibling tools like get_model_usage or get_daily_usage, nor does it specify prerequisites, exclusions, or ideal contexts for usage. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spendingC
Get current billing cycle spending for all team members. Shows spend in dollars, included vs overage, fast premium requests, and spend limits.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| allPages | No | Fetch all pages automatically (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what data is returned but doesn't cover critical aspects like whether this is a read-only operation (implied by 'Get' but not explicit), authentication requirements, rate limits, pagination behavior beyond the schema parameters, or error handling. For a tool with no annotations, this leaves significant gaps in understanding its 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 concise and front-loaded, stating the core purpose in the first sentence and listing key data points in the second. Both sentences add value by specifying the scope and output details. There's no unnecessary repetition or fluff, making it efficient for quick understanding.
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 moderate complexity (fetching billing data with pagination), no annotations, and no output schema, the description is partially complete. It covers what data is returned but lacks details on behavioral traits, error cases, or output structure. It's adequate for a basic read operation but doesn't fully compensate for the missing structured information, leaving room for improvement in transparency and guidelines.
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 input schema has 100% description coverage, clearly documenting both parameters ('page' and 'allPages') with their types and defaults. The description doesn't add any semantic details about these parameters beyond what the schema provides, such as explaining pagination context or when to use 'allPages'. Given the high schema coverage, a baseline score of 3 is appropriate as the schema handles the parameter documentation 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 clearly states the tool's purpose with a specific verb ('Get') and resource ('current billing cycle spending for all team members'), and details what information it provides (spend in dollars, included vs overage, fast premium requests, and spend limits). However, it doesn't explicitly differentiate this tool from sibling tools like 'get_billing_groups' or 'get_daily_usage', which might also relate to billing or usage data.
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. It doesn't mention any prerequisites, exclusions, or comparisons to sibling tools such as 'get_billing_groups' or 'get_daily_usage', leaving the agent to infer usage context based solely on the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tabsC
Get tab autocomplete usage: suggestions shown vs accepted vs rejected, with line-level detail.
| Name | Required | Description | Default |
|---|---|---|---|
| startDate | No | Start date. Formats: "YYYY-MM-DD", "7d", "30d", "today", "yesterday". Default: "30d" | |
| endDate | No | End date. Formats: "YYYY-MM-DD", "today", "yesterday". Default: "today" | |
| users | No | Comma-separated emails to filter by specific users |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'line-level detail' which hints at granular data, but doesn't cover critical aspects like whether this is a read-only operation, potential rate limits, authentication requirements, data freshness, or pagination. For a usage analytics tool with zero annotation coverage, this leaves significant 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 a single, efficient sentence that front-loads the core purpose. It avoids redundancy and wastes no words, though it could be slightly more structured by separating usage context from data details.
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 moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It covers the what but lacks the how and when. Without annotations or output schema, it should ideally provide more behavioral context and usage guidance to compensate, but it meets the bare minimum for a read-oriented analytics 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 100%, so the schema already documents all three parameters (startDate, endDate, users) with format details and defaults. The description adds no additional parameter semantics beyond what's in the schema, such as explaining how 'users' filtering interacts with the data or clarifying 'line-level detail' in relation to parameters. Baseline 3 is appropriate when schema does the heavy lifting.
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: 'Get tab autocomplete usage: suggestions shown vs accepted vs rejected, with line-level detail.' It specifies the verb ('Get'), resource ('tab autocomplete usage'), and scope ('suggestions shown vs accepted vs rejected, with line-level detail'). However, it doesn't explicitly differentiate from sibling tools like 'get_usage_events' or 'get_daily_usage', which might also relate to usage analytics.
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. It doesn't mention prerequisites, exclusions, or compare it to sibling tools like 'get_usage_events' or 'get_daily_usage' that might overlap in functionality. Usage is implied by the purpose but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_team_membersB
List all team members with their roles and status. Returns name, email, role, and whether they've been removed.
| Name | Required | Description | Default |
|---|---|---|---|
No 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 adequately describes the read-only nature through 'List' and specifies the return fields, but lacks details on pagination, sorting, rate limits, authentication requirements, or error conditions. For a zero-parameter tool, this is minimally acceptable but leaves gaps in operational context.
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 a single, efficient sentence that front-loads the core action ('List all team members') and immediately specifies the key return attributes. Every word contributes to understanding the tool's function without redundancy or unnecessary elaboration.
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 (0 parameters, no output schema, no annotations), the description is adequate for basic understanding. It covers the purpose and return fields but lacks context about system behavior (e.g., data freshness, access controls) or integration with sibling tools. For a read-only list operation, this is minimally complete but could benefit from additional operational guidance.
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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately focuses on output semantics by detailing the returned fields (name, email, role, removal status), which adds value beyond the empty schema. This meets the baseline for zero-parameter tools.
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 ('List') and resource ('team members') with specific attributes returned (name, email, role, removal status). It distinguishes from siblings like 'get_team_overview' by focusing on individual members rather than team-level metrics. However, it doesn't explicitly contrast with other sibling tools beyond this implicit differentiation.
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. While the description implies it's for retrieving detailed member information, it doesn't specify prerequisites, appropriate contexts, or when to choose other tools like 'get_team_overview' for aggregated data or 'get_user_deep_dive' for individual analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_team_overviewA
Get a comprehensive team overview: member count, total spend, top spenders, DAU, and most-used models. This is the best starting point for understanding your team's Cursor usage.
| Name | Required | Description | Default |
|---|---|---|---|
| startDate | No | Analytics date range start (default: "7d") | |
| endDate | No | Analytics date range end (default: "today") |
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 describes what metrics are returned but doesn't address important behavioral aspects like whether this is a read-only operation (implied but not stated), potential rate limits, authentication requirements, data freshness, or error conditions. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.
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 perfectly concise with just two sentences that each earn their place. The first sentence clearly states the purpose and enumerates the returned metrics. The second sentence provides valuable usage guidance. There's no wasted language or redundancy, making it highly efficient and well-structured.
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 moderate complexity (2 parameters, no output schema, no annotations), the description does an adequate job but has clear gaps. It explains what the tool returns but doesn't address behavioral aspects or provide context about the return format. Without annotations or output schema, the agent must infer how to interpret the results. The description is complete enough for basic understanding but lacks depth for confident 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?
The schema description coverage is 100%, so the input schema already fully documents both parameters (startDate and endDate) with their types and default values. The description doesn't add any parameter-specific information beyond what's in the schema, which is acceptable given the high schema coverage. The baseline score of 3 reflects adequate but not exceptional parameter documentation.
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 with specific verbs ('Get a comprehensive team overview') and lists the exact metrics returned (member count, total spend, top spenders, DAU, most-used models). It distinguishes itself from sibling tools by emphasizing it's 'the best starting point for understanding your team's Cursor usage,' positioning it as a high-level summary tool rather than detailed analytics like get_daily_usage or get_spending.
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 clear context for when to use this tool ('the best starting point for understanding your team's Cursor usage'), which implicitly suggests it should be used first before diving into more specific sibling tools. However, it doesn't explicitly state when NOT to use it or name specific alternatives for different scenarios, which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usage_eventsA
Get granular per-request usage events with model, token counts, costs, and whether the request was chargeable. Supports filtering by user email and date range.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Filter by user email | ||
| startDate | No | Start date as Unix timestamp in milliseconds | |
| endDate | No | End date as Unix timestamp in milliseconds | |
| page | No | Page number (default: 1) | |
| pageSize | No | Results per page (default: 500, max: 500) |
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 effectively communicates this is a read operation ('Get') with filtering capabilities, but doesn't mention pagination behavior (implied by page/pageSize parameters), rate limits, authentication requirements, or what happens when no filters are applied. It adds some context but leaves significant behavioral aspects unspecified.
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 perfectly concise with two sentences: the first states the core purpose and key data fields, the second specifies filtering capabilities. Every word earns its place with zero waste, and information is front-loaded appropriately.
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 moderate complexity (5 parameters, no output schema, no annotations), the description provides adequate but incomplete coverage. It clearly explains what data is retrieved and basic filtering, but doesn't address pagination behavior, response format, error conditions, or how unfiltered queries behave. For a tool with no output schema, more detail about return values would be helpful.
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 already fully documents all 5 parameters. The description mentions filtering by 'user email and date range' which aligns with the email, startDate, and endDate parameters, but doesn't add meaningful semantic context beyond what the schema provides. The baseline score of 3 is appropriate when the schema does the heavy lifting.
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 specific verb ('Get') and resource ('granular per-request usage events'), listing key data fields (model, token counts, costs, chargeable status). It distinguishes from siblings like get_daily_usage or get_model_usage by emphasizing per-request granularity rather than aggregated views.
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 clear context for when to use this tool ('Supports filtering by user email and date range'), indicating it's for detailed event-level analysis. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the many sibling tools, missing full comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_deep_diveC
Deep dive into a specific user's usage: their spending, daily usage patterns, recent requests, and model preferences.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | User email to analyze | ||
| startDate | No | Analytics date range start (default: "7d") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what data is retrieved (spending, patterns, requests, preferences) but lacks details on permissions required, rate limits, response format, or whether it's a read-only operation. This is a significant gap for a tool with no annotation coverage.
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 a single, efficient sentence that front-loads the key information ('Deep dive into a specific user's usage') and lists relevant data aspects without unnecessary elaboration. Every word contributes to understanding the tool's purpose.
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 lack of annotations and output schema, the description is incomplete. It covers what data is retrieved but omits critical behavioral details like response structure, error handling, or operational constraints, making it inadequate for a tool that likely returns complex user analytics.
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 fully documents both parameters (email and startDate). The description does not add any parameter-specific semantics beyond what the schema provides, such as format examples or constraints, resulting in a baseline score of 3.
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: to perform a 'deep dive' into a specific user's usage, listing specific aspects like spending, daily usage patterns, recent requests, and model preferences. It uses a specific verb ('deep dive') and resource ('user's usage'), but does not explicitly differentiate from sibling tools like get_daily_usage or get_spending, which might overlap in functionality.
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. It does not mention any prerequisites, exclusions, or compare it to sibling tools such as get_daily_usage or get_spending, leaving the agent to infer usage context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_spend_limitA
Set a hard spending limit (in dollars) for a specific team member. Use with caution — this will block the user from making requests once the limit is reached.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | User email to set the limit for | ||
| limitDollars | Yes | Hard spending limit in dollars (0 to remove limit) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It effectively describes the tool's impact ('block the user from making requests once the limit is reached') and includes a cautionary note. However, it lacks details on permissions required, whether the change is reversible, or any rate limits, which are important for a mutation tool with no annotation coverage.
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, front-loaded with the core purpose and followed by a cautionary note. Every sentence earns its place by adding critical information, with no wasted words or 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 that this is a mutation tool with no annotations and no output schema, the description is moderately complete. It covers the purpose, impact, and caution, but lacks details on permissions, reversibility, or response format. For a tool that modifies user access, more behavioral context would be beneficial to ensure safe 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?
The schema description coverage is 100%, so the schema already documents both parameters ('email' and 'limitDollars') adequately. The description adds minimal value beyond the schema by mentioning 'in dollars' and implying the limit is for a team member, but it does not provide additional syntax, format details, or constraints beyond what the schema specifies.
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 specific action ('Set a hard spending limit'), the resource ('for a specific team member'), and the unit ('in dollars'). It distinguishes this tool from its sibling tools, which are primarily read-only 'get' operations, by being the only tool that modifies spending limits.
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 clear context for when to use this tool ('to block the user from making requests once the limit is reached') and includes a cautionary note ('Use with caution'). However, it does not explicitly mention when not to use it or name specific alternatives among the sibling tools, such as using 'get_spending' to check current spending before setting a limit.
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.
17 tool updates
v0.1.2- First observed
get_agent_edits - First observed
get_billing_groups - First observed
get_client_versions - First observed
get_commands - First observed
get_daily_usage - First observed
get_dau - First observed
get_file_extensions - First observed
get_mcp_usage - First observed
get_model_usage - First observed
get_plans - First observed
get_spending - First observed
get_tabs - First observed
get_team_members - First observed
get_team_overview - First observed
get_usage_events - First observed
get_user_deep_dive - First observed
set_spend_limit
TDQS
Every tool has a clearly distinct purpose targeting specific metrics or actions, such as get_agent_edits for edit metrics, get_daily_usage for user-level data, and set_spend_limit for administrative control. There is no overlap in functionality, making it easy for an agent to select the right tool without confusion.
All tool names follow a consistent verb_noun pattern with 'get_' prefix for retrieval operations and 'set_' for configuration, using snake_case throughout. This predictability enhances readability and usability for agents.
With 17 tools, the count is slightly high but reasonable for the comprehensive analytics and management scope of Cursor usage. It covers various aspects like billing, usage, and team management without feeling overly bloated.
The tool set provides complete coverage for analytics and administrative tasks in the Cursor domain, including metrics retrieval (e.g., usage, spending, models), team management, and spend control. There are no obvious gaps, enabling agents to handle all relevant workflows effectively.
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
Cookieless dashboard aggregates for Claude and Cursor. No visitor hashes. Starter and Growth.
Read-only analytics for Convex apps, queryable via MCP from Claude, Cursor, and other clients.
Ask your AI assistant a cost question. Get allocation, correlation, and explanation in one response. Costory connects Claude, Codex, or Cursor to normalized cost data across AWS, GCP, Azure, Datadog, OpenAI, and Anthropic. https://costory.io Free trial 14 days, 250 USD / month up to 10M Spend
Anthropic organization usage and cost reporting through an admin API key connected by the user.
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceProvides comprehensive telemetry and usage analytics for Claude Code sessions, including token usage tracking, cost monitoring, and tool usage patterns. Enables users to monitor their Claude usage with detailed metrics, warnings, and trend analysis.12-
- FlicenseNot gradedqualityNot gradedmaintenanceProvides intelligent analysis of token usage patterns and optimization recommendations to improve efficiency and reduce costs in Claude Code sessions. Offers real-time analysis, cost metrics, and actionable insights for better context window and tool usage optimization.3-
- AlicenseNot gradedqualityDmaintenanceTracks token usage and records coding sessions for Claude Desktop users, supporting both local SQLite and cloud Cloudflare D1 databases.225MIT
- AlicenseAqualityCmaintenanceReal-time Claude.ai subscription awareness for AI coding assistants. Surfaces live utilization, forecasts limits, gates expensive operations, and measures real per-task cost.5166MIT
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/ofershap/cursor-usage'
If you have feedback or need assistance with the MCP directory API, please join our Discord server