vercel-mcp-pro
This MCP server provides comprehensive access to the Vercel REST API via 70 tools, covering all aspects of Vercel deployments and infrastructure. Key capabilities include:
Deployments — List, get, create, cancel, and delete deployments; retrieve build/runtime logs; list file trees and read file contents; promote previews to production; roll back production to a previous deployment.
Projects — List, get, create, update, delete, pause, and unpause projects.
Environment Variables — List, get, create, bulk-create, update, and delete variables targeting production, preview, or development environments.
Domains — Manage account-level domains (list, get, add, verify, remove) and project-specific domains; retrieve DNS/verification config; set redirects and git branch bindings.
DNS — List, create, update, and delete DNS records (A, AAAA, CNAME, MX, TXT, SRV, CAA, ALIAS, HTTPS, NS).
Aliases — List, get, assign, and delete custom URL aliases pointing to deployments.
TLS Certificates — Get, provision, upload custom, and remove certificates.
Logs — Retrieve build logs for failed deployments and runtime logs for live serverless/edge functions.
Checks (CI/Quality Gates) — List, get, create, update, and re-run deployment checks.
Webhooks — List, create, and delete webhooks for deployment and project events.
Edge Config — List, get, create, and delete Edge Config stores; read and upsert/delete key-value items.
Teams & Users — Get the authenticated user, list teams, get team details, and list team members.
Integrations & Log Drains — List installed integrations; list, create, and delete log drains to ship logs to external endpoints.
Escape Hatch (vercel_raw) — Call any Vercel REST API endpoint directly for 100% API coverage, including niche or newly added endpoints.
Safety & Security — Enable VERCEL_READONLY=true to block all write/delete operations; disable the raw escape hatch via VERCEL_DISABLE_RAW=true; built-in auth, retry logic (handles 429/5xx), and rate-limiting.
Integrates with Vercel's full REST API, providing 70 tools for managing deployments, projects, environment variables, domains, DNS, aliases, certificates, logs, checks, webhooks, edge config, teams, and more, plus a raw escape hatch for any endpoint.
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., "@vercel-mcp-prolist my latest deployments"
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.
Vercel MCP Pro ▲
The most complete Vercel MCP server — 70 tools covering the entire Vercel REST API (deployments, projects, env vars, domains, DNS, aliases, certs, logs, checks, webhooks, edge config, teams) plus a
vercel_rawescape hatch and a readonly safety mode.
Works in any MCP client — Claude Code, Claude Desktop, Cursor, ChatGPT — using a Vercel access token (no OAuth flow required). Ships with an optional /vercel skill that drives the Vercel CLI for terminal deploys.
Why this and not the official one?
Official | vercel-mcp-pro | |
Auth | OAuth (approved clients only) | Token (works everywhere, self-hosted) |
Coverage | Docs search, manage projects/deployments, analyze logs | Full REST API: env, domains, DNS, aliases, certs, webhooks, edge config, checks, log drains… |
Escape hatch | — |
|
Safety | — |
|
Related MCP server: Vercel MCP
Install
npx -y vercel-mcp-proOr clone and build locally:
git clone https://github.com/helbertparanhos/vercel-mcp-pro
cd vercel-mcp-pro
npm install && npm run buildConfiguration
Create a token at https://vercel.com/account/settings/tokens.
Copy
.env.example→.envand fill it in:
Variable | Required | Description |
| ✅ | Personal or team access token. |
| — | Default team scope (injected as |
| — | Scope by team slug (alternative to |
| — |
|
| — |
|
| — | Request timeout (default 60000). |
| — | Retries on 429/5xx/network (default 3). |
Add to your client
Claude Code
claude mcp add vercel-mcp-pro -- npx -y vercel-mcp-proOr in this project's .claude/settings.json → mcpServers:
"vercel": {
"command": "node",
"args": ["projects/vercel-mcp-pro/dist/index.js"],
"env": {
"VERCEL_TOKEN": "your_token",
"VERCEL_TEAM_ID": "team_xxx"
}
}Claude Desktop
%APPDATA%\Claude\claude_desktop_config.json (Windows) / ~/Library/Application Support/Claude/claude_desktop_config.json (Mac):
{
"mcpServers": {
"vercel": {
"command": "npx",
"args": ["-y", "vercel-mcp-pro"],
"env": { "VERCEL_TOKEN": "your_token", "VERCEL_TEAM_ID": "team_xxx" }
}
}
}Cursor
Paste the same config into .cursor/mcp.json.
Tools (70)
Deployments (11)
list_deployments · get_deployment · create_deployment · cancel_deployment · delete_deployment · get_deployment_events · list_deployment_files · get_deployment_file_contents · promote_deployment · rollback_deployment · get_promote_aliases
Projects (7)
list_projects · get_project · create_project · update_project · delete_project · pause_project · unpause_project
Environment Variables (6)
list_env_vars · get_env_var · create_env_var · bulk_create_env_vars · update_env_var · delete_env_var
Domains (9)
list_domains · get_domain · get_domain_config · add_domain · verify_domain · remove_domain · list_project_domains · add_project_domain · remove_project_domain
DNS (4)
list_dns_records · create_dns_record · update_dns_record · delete_dns_record
Aliases (4)
list_aliases · get_alias · assign_alias · delete_alias
Certificates (4)
get_cert · issue_cert · upload_cert · remove_cert
Logs (2)
get_build_logs · get_runtime_logs
Checks (5)
list_checks · get_check · create_check · update_check · rerequest_check
Webhooks (3)
list_webhooks · create_webhook · delete_webhook
Edge Config (6)
list_edge_configs · get_edge_config · get_edge_config_items · create_edge_config · update_edge_config_items · delete_edge_config
Teams & User (4)
get_user · list_teams · get_team · list_team_members
Integrations & Log Drains (4)
list_integrations · list_log_drains · create_log_drain · delete_log_drain
Escape hatch (1)
vercel_raw — call any Vercel REST endpoint (method + full versioned path + params + body). Guarantees 100% coverage even for niche/new endpoints (marketplace, sandboxes, feature-flags, access-groups, rolling-release…). Auto-injects your team scope; honored by readonly mode for GETs.
Common recipes
Diagnose a failed deploy
list_deployments(projectId:"my-app", state:"ERROR") → get_build_logs(idOrUrl:"dpl_...")Ship a preview to production (no rebuild)
promote_deployment(projectId:"my-app", deploymentId:"dpl_...")Roll back fast
rollback_deployment(projectId:"my-app", deploymentId:"dpl_previous")Add an env var to all environments
create_env_var(projectId:"my-app", key:"API_KEY", value:"…", target:["production","preview","development"])Anything not covered
vercel_raw(method:"GET", path:"/v1/security/firewall/config", params:{ projectId:"my-app" })The /vercel CLI skill (bundled)
For terminal-driven deploys, this repo also ships a Claude Code skill in skill/ that drives the official Vercel CLI (vercel deploy, vercel logs, vercel env, vercel rollback). The MCP gives full API coverage in any client; the skill gives the smoothest git push → deploy loop in the terminal. They complement each other — see skill/SKILL.md.
Safety
VERCEL_READONLY=trueblocks every write/delete tool — only reads andvercel_rawGETs run. Ideal for audits and exploration.The
vercel_rawpath is sanitized (must start with a version segment like/v9/…; no scheme/host/traversal/control chars) and constrained toapi.vercel.com.Auth, retries (429 with
Retry-After, 5xx, network) and rate-limiting are handled for you. The token only ever travels in theAuthorizationheader — never in a query string or log.
Security model — read this before trusting the guards
VERCEL_READONLYblocks mutations, not reads of secrets. Read tools likelist_env_vars(withdecrypt:true),get_env_varandget_edge_config_itemsreturn decrypted values and still run in readonly mode — that's their purpose. If your environment must never surface secrets to the model, don't expose those tools / run against a least-privilege token.VERCEL_TEAM_IDis a convenience scope, not a security boundary. It sets the default team, but a caller can pass a differentteamId/slugper call (including viavercel_raw). The real boundary is the token's own scope — use a token limited to the team/projects you intend to automate.Treat the token as production credentials. It grants the same access as your Vercel account/team. Prefer a scoped token, keep it in
.env(gitignored) or your client's secret store, and rotate it if it's ever shared or pasted into a chat.
License
MIT © Helbert Paranhos / Strat Academy
Available Tools
70 toolsadd_domainC
Add (register/move) a domain to the account or team.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Domain name to add. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It identifies the operation as a write (add/register/move) but omits details such as required permissions, side effects on existing domains, error states, or whether the action is reversible.
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, front-loaded sentence with no wasted words. It efficiently communicates the core purpose, though it could be slightly expanded to include usage context.
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 too minimal. It does not specify return values, behavior on duplicate domains, or prerequisites, leaving significant gaps for an AI agent.
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 covers all three parameters with descriptions, achieving 100% coverage per context signals. The description adds no additional meaning beyond the schema, maintaining the 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 adds, registers, or moves a domain to an account or team, using a specific verb and resource. However, it does not differentiate from the sibling 'add_project_domain' tool, which focuses on adding a domain to a project.
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 like 'add_project_domain', 'remove_domain', or 'verify_domain'. The description implies a general use case but lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_project_domainB
Attach a domain to a project. Optionally set a redirect or assign it to a specific git branch.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or name. | |
| name | Yes | Domain to attach, e.g. www.example.com. | |
| gitBranch | No | Bind to a preview git branch. | |
| redirect | No | Redirect target domain. | |
| redirectStatusCode | No | 301/302/307/308. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full burden. It discloses the mutation action ('Attach') but fails to mention side effects like domain conflict, validation, or limits. Important behavioral context is 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?
Single sentence, front-loaded with verb and resource. Efficient but could include more key details without excessive length.
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?
No output schema, yet return values or success conditions are not described. Prerequisites like domain verification are omitted. Incomplete for a mutation tool with 7 parameters and no annotations.
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 the schema already documents all parameters. The description adds no new meaning beyond restating optional redirect and git branch, not compensating for any 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?
The description clearly states the verb 'Attach' and resource 'domain to a project', with optional redirect or git branch assignment. This distinguishes it from sibling tools like 'add_domain' and 'assign_alias'.
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 such as 'add_domain'. The description does not mention exclusions or context-specific usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_aliasB
Assign an alias (hostname) to a deployment — points the custom URL at that deployment.
| Name | Required | Description | Default |
|---|---|---|---|
| deploymentId | Yes | Deployment id (dpl_...) to alias. | |
| alias | Yes | Hostname to assign, e.g. app.example.com. | |
| redirect | No | Optional redirect target. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description lacks behavioral details such as whether the assignment overrides existing aliases, requires specific permissions, or has any side effects. It only states the basic action.
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, under 20 words, no fluff. The purpose is front-loaded and immediately clear.
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?
Despite 5 parameters and no output schema or annotations, the description is minimal. It does not explain the effect on existing aliases, how to undo, or any prerequisites. More context is needed for 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?
Input schema has 100% description coverage. The tool description adds minimal semantic value ('custom URL') beyond schema definitions. Baseline 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 verb 'assign' and the resource 'alias (hostname)' to a 'deployment', and specifies the effect 'points the custom URL at that deployment'. This distinguishes it from sibling tools like add_domain (which adds a domain to a project) and create_dns_record.
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 like add_domain, add_project_domain, or create_dns_record. With many domain-related siblings, explicit context or when-not-to-use would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_create_env_varsA
Create multiple environment variables in one call. Pass an array of { key, value, target, type?, gitBranch?, comment? } objects. Set upsert:true to overwrite keys that already exist (otherwise existing keys cause a conflict).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or name. | |
| variables | Yes | Env vars to create. | |
| upsert | No | Overwrite existing keys instead of failing on conflict. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the conflict behavior and overwrite capability via upsert, but does not detail atomicity, error handling, or rate limits. Decent coverage of core 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?
Three sentences: purpose, input structure, and key option. Front-loaded, no filler, every sentence earns its place. Excellent conciseness.
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 output schema, the description covers the main behavior, parameter structure, and upsert option. It lacks details on return value and error scenarios, but for a bulk create tool it is reasonably 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%, so baseline is 3. The description adds readable summary of the variables array structure but does not significantly extend beyond the schema. The upsert parameter is explained, adding moderate 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 creates multiple environment variables in one call, using a specific verb and resource. It distinguishes from the singular 'create_env_var' sibling by emphasizing bulk creation.
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 instructs to pass an array of objects and explains the upsert toggle, providing clear context. However, it does not explicitly mention when to use this tool versus alternatives like create_env_var or update_env_var, but the bulk nature implies usage for batch operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_deploymentB
Cancel an in-progress (BUILDING/QUEUED) deployment.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Deployment id (dpl_...). | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description discloses only that the tool cancels deployments in specific states. No mention of side effects, reversibility, authorization, or impact on associated resources.
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?
Extremely concise single sentence with no extraneous information. Effectively communicates the core action and constraint.
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 the main purpose but lacks details on return values, side effects, or additional context. Given no output schema, more behavioral context 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 coverage is 100%, so the schema already documents all parameters. The description adds no additional parameter-level meaning, meeting the baseline.
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?
Clearly states the verb (cancel), resource (deployment), and specific state constraint (BUILDING/QUEUED). Distinguishes from sibling tools like delete_deployment and rollback_deployment.
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 or when not to use this tool. Does not compare to alternatives or provide usage context beyond the basic constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_checkB
Register a new check on a deployment (for integrations that report CI/quality results).
| Name | Required | Description | Default |
|---|---|---|---|
| deploymentId | Yes | Deployment id (dpl_...). | |
| name | Yes | Check name. | |
| blocking | Yes | Whether this check blocks promotion to production. | |
| detailsUrl | No | ||
| externalId | No | ||
| rerequestable | No | ||
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It discloses the basic action (registering a check) but omits critical behavioral traits such as side effects, required permissions, rate limits, or what happens on creation (e.g., whether it blocks or is asynchronous).
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 concise sentence but sacrifices completeness. It is front-loaded with the core purpose, making it easy to quickly understand the tool's action, though it omits important details that could be included without significant bloat.
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 8 parameters, 63% schema coverage, no output schema, and no annotations, the description is insufficiently complete. It does not explain return values, error conditions, or important constraints (e.g., if a check with the same name can be recreated). The tool's complexity demands more detail.
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 63%, with parameters like detailsUrl, externalId, and rerequestable lacking descriptions. The tool description adds no additional information about parameters beyond what is in the schema, failing to compensate for undocumented fields.
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 ('Register a new check') and resource ('on a deployment'), clearly distinguishing from sibling tools like get_check, update_check, or rerequest_check. It also adds context about being for integrations reporting CI/quality results.
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 the tool is for creating checks related to CI/quality results, but lacks explicit guidance on when to use it versus alternatives like update_check or rerequest_check, and no prerequisites or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_deploymentA
Create a new deployment. The simplest path is to deploy from a connected Git source: pass name (project) and a gitSource ({ type, repoId/org+repo, ref }). For file-based deploys, provide files. For most workflows the /vercel CLI skill is easier — use this when you need API-driven, headless deploys.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Project name this deployment belongs to. | |
| project | No | Project id (if different from name). | |
| target | No | Deploy target. | |
| gitSource | No | Git source, e.g. { type: 'github', repoId: 123, ref: 'main' } or { type:'github', org, repo, ref }. | |
| files | No | Inline files [{ file, data }] for file-based deploys. | |
| meta | No | Arbitrary metadata key/values. | |
| projectSettings | No | Override project build settings. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose potential side effects, required permissions, rate limits, or what happens during deployment creation (e.g., triggers build, impacts existing deployments).
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 sentences, front-loaded with main purpose, no unnecessary words or repetition. Every sentence serves a clear function.
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?
Moderate completeness for a creation tool. Lacks details on return value or how to monitor deployment status, which would help the agent, but given the schema coverage and context, it's adequate.
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% with descriptions, baseline 3. Description adds value by explaining the simplest path (gitSource vs files) and gives example structure, exceeding baseline.
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 'Create' with specific resource 'deployment'. Distinguishes two methods (Git source and file-based) and mentions alternative Vercel CLI, differentiating from sibling tools.
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 states when to use this tool (API-driven, headless deploys) and for most workflows recommends the CLI skill instead. Provides clear context but lacks explicit 'when not to use' beyond the CLI recommendation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_dns_recordB
Create a DNS record for a domain. For MX set mxPriority; for SRV pass the srv object.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name. | |
| type | Yes | Record type. | |
| name | Yes | Subdomain/name ('' or '@' for the apex). | |
| value | No | Record value (e.g. IP, target, text). | |
| ttl | No | TTL in seconds. | |
| mxPriority | No | Priority for MX records. | |
| srv | No | SRV fields { priority, weight, port, target }. | |
| comment | No | ||
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states the basic action and two parameter hints (mxPriority, srv). It omits critical behavior like idempotency, error conditions, authentication requirements, rate limits, or the effect on existing records.
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 extremely concise: two sentences, no redundant words. The main action is front-loaded, and the additional hints are direct. Every sentence earns its place.
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 (10 parameters, nested objects, no output schema), the description is insufficient. It does not explain what the tool returns, how to verify success, or any behavioral context beyond the basic action. The agent lacks enough information for correct invocation without external knowledge.
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 90%, so the baseline is 3. The description adds minimal value beyond the schema: 'set mxPriority' and 'pass the srv object' restate what the schema already indicates. No new parameter meaning is introduced.
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 ('Create a DNS record') and the target resource ('for a domain'). It distinguishes from sibling tools like delete_dns_record, update_dns_record, and list_dns_records by focusing on creation. The mention of specific record types (MX, SRV) adds specificity.
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 update_dns_record or list_dns_records. It does not mention prerequisites, context, or exclusions, leaving the agent without decision-making support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_edge_configB
Create a new Edge Config store.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Slug/name for the Edge Config store. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. |
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 simply states the action without mentioning any side effects, idempotency, creation limits, or other relevant behaviors. This is insufficient for a creation tool.
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 extremely concise, with a single sentence that is front-loaded and free of unnecessary words. Every sentence earns its place, though brevity sacrifices depth in other dimensions.
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 (2 parameters, no output schema), the description provides a minimal but adequate overview. However, it lacks behavioral context and usage guidance, leaving the agent to infer or rely on other sources.
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 covers 100% of parameters with descriptions, so the schema already provides meaning. The description adds no extra value beyond the schema's parameter descriptions, earning 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 action 'create' and the resource 'Edge Config store', making the purpose unambiguous. It effectively distinguishes from sibling tools like delete_edge_config or get_edge_config. However, it doesn't elaborate on what an Edge Config store is, which could be improved.
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, nor are any prerequisites or contextual conditions mentioned. The description lacks usage instructions, making it less helpful for an agent deciding between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_env_varA
Create an environment variable on a project. target is which environments it applies to (production/preview/development). type defaults to 'encrypted'.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or name. | |
| key | Yes | Variable name, e.g. API_KEY. | |
| value | Yes | Variable value. | |
| target | Yes | Environments this var applies to. | |
| type | No | Variable type. Default encrypted. | |
| gitBranch | No | Limit to a specific preview branch. | |
| comment | No | Optional note. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It mentions that 'type' defaults to 'encrypted' and explains 'target', which is helpful. However, it does not disclose what happens if the variable already exists (e.g., error or overwrite), authentication needs, or response format. This is a moderate gap for a mutation tool.
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 the main purpose, and contains no extraneous information. Every word contributes to 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 lack of an output schema and annotations, the description is incomplete for a creation tool. It does not explain return values, error behavior (e.g., duplicate variables), or prerequisites. While the parameters are well-covered by the schema, behavioral gaps remain, making it adequate but not thorough.
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 the schema already describes all parameters. The description adds value by clarifying the meaning of 'target' (production/preview/development) and the default for 'type'. This improves understanding but does not significantly exceed what the schema provides, resulting in a baseline score.
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 'Create an environment variable on a project', which is a specific verb-resource pair. This distinguishes it from siblings like update_env_var (update) and bulk_create_env_vars (bulk creation).
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 by explaining target and type default, but it does not explicitly state when to use this tool versus alternatives like bulk_create_env_vars for multiple variables or update_env_var for modifications. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_log_drainB
Create a configurable log drain that ships logs to your endpoint. Choose the sources (build, edge, lambda, static, external) and delivery format.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Drain name. | |
| url | Yes | HTTPS endpoint to deliver logs to. | |
| deliveryFormat | No | ||
| sources | Yes | Which log sources to drain. | |
| projectIds | No | Limit to specific projects. | |
| headers | No | Custom headers to send. | |
| secret | No | Signing secret for verifying delivery. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must bear the burden. It describes a mutation (create) but doesn't disclose behavioral traits like idempotency, rate limits, side effects on existing resources, or auth requirements. The description is brief and lacks behavioral detail.
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 short sentences with front-loaded action. However, the list of sources is incomplete ('firewall' missing), which is a minor inaccuracy. That prevents a perfect score. Overall, it's concise and structured well.
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 creation tool with 9 parameters (3 required) and no output schema, the description is too minimal. It doesn't explain return values, error scenarios, or the purpose of optional fields (secret, headers, teamId). The agent lacks context to invoke the tool correctly in complex scenarios.
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 high (89%), so baseline is 3. The description adds some value by listing possible sources, but it omits 'firewall' from the schema's enum, making it incomplete. It doesn't explain additional parameters like secret, headers, or projectIds 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 the action (create) and the resource (log drain), and mentions key configurable aspects (sources, delivery format). It distinguishes itself from sibling tools like delete_log_drain and list_log_drains by focusing on creation.
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 vs alternatives. It doesn't mention prerequisites (e.g., team context), idempotency, or scenarios where creation might fail. Sibling tools like list_log_drains exist but no usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectB
Create a new project. Optionally connect a Git repo via gitRepository ({ type:'github', repo:'org/name' }) and set the framework/build settings.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Project name (lowercase, hyphenated). | |
| framework | No | Framework preset, e.g. 'nextjs'. | |
| gitRepository | No | Connect a repo: { type:'github'|'gitlab'|'bitbucket', repo:'org/name' }. | |
| buildCommand | No | ||
| devCommand | No | ||
| installCommand | No | ||
| outputDirectory | No | ||
| rootDirectory | No | ||
| environmentVariables | No | Initial env vars [{ key, value, type, target }]. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
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 only states the creation action and optional Git repo linking, lacking disclosure of behavioral traits such as idempotency, duplicate handling, authentication requirements, or rate limits. This is minimal for a mutation tool.
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 purpose, and every word adds value. It efficiently conveys the core action and key optional feature 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?
Despite 11 params and no output schema or annotations, the description is too sparse. It omits important context like required authentication, team scoping behavior, and default values. The tool is complex, and the description fails to provide sufficient 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 55%. The description adds value for gitRepository by specifying format, and mentions framework/build settings, but does not elaborate on poorly described params like buildCommand or devCommand. Given moderate coverage, baseline 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: 'Create a new project.' It specifies optional behavior with Git repo connection and framework/build settings, distinguishing it from sibling tools like update_project or delete_project.
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 project creation but does not explicitly state when to use this tool versus alternatives like create_deployment or create_env_var. No exclusions or context for when-not-to-use are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_webhookB
Create a webhook that POSTs to your endpoint on the chosen events. Optionally scope it to projects.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | HTTPS endpoint that will receive events. | |
| events | Yes | Events to subscribe to. | |
| projectIds | No | Limit to specific project ids. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
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 discloses the core behavior (POSTs events) but omits important details like payload format, retry policy, idempotency, or the need for an HTTPS endpoint. For a creation tool, this is a moderate gap.
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 very concise at two sentences with no redundancy. It front-loades the key action and allows further detail in the schema. However, it could be slightly more structured to separate the main action from the optional scoping.
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 output schema and moderate complexity (5 params, 2 required), the description does not cover what the tool returns (e.g., webhook ID) or any lifecycle details. The schema descriptions compensate somewhat, but the description alone is incomplete for an agent to fully understand the tool's behavior.
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 the baseline is 3. The description adds minimal value by mentioning optional project scoping, which corresponds to the projectIds parameter. It does not elaborate on teamId or slug parameters, nor on the url format 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 the tool creates a webhook that POSTs to an endpoint on chosen events, with optional project scoping. It specifies the action (create), resource (webhook), and behavior (POSTs events), making the purpose unambiguous.
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 lacks guidance on when to use this tool versus alternatives like create_log_drain. It doesn't mention prerequisites, authentication, or scenarios where a webhook is preferred over other notification methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_aliasB
Remove an alias by id.
| Name | Required | Description | Default |
|---|---|---|---|
| aliasId | Yes | Alias id. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only says 'remove' without disclosing nuances like irreversibility, required 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?
Single sentence, no wasted words, efficiently communicates the 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?
For a destructive operation with no output schema or annotations, the description lacks important context about permanence, permissions, or effects. Incomplete.
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 only adds 'by id', which is redundant with the required aliasId parameter. No additional meaning beyond 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 action ('remove') and resource ('alias by id'), which distinguishes it from sibling tools like assign_alias, get_alias, and list_aliases.
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, nor any prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_deploymentB
Delete a deployment by id (or by URL via the url param).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Deployment id (dpl_...). | |
| url | No | Optionally delete by deployment URL instead. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only says 'Delete' without indicating whether the action is permanent, reversible, or what side effects occur (e.g., cascading deletions). This is a significant gap.
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 sentence that immediately conveys the core function. No extraneous words; every word earns its place.
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 destructive operation with no output schema and no annotations, the description should disclose at least the permanence of deletion and any required permissions. It fails to provide this critical context, leaving the agent underinformed.
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 the key clarification that id and url are alternative means of identifying the deployment. This adds real value beyond the schema, which already describes each parameter individually.
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 'Delete' and the resource 'deployment', and specifies two identification methods (id or URL). This distinguishes it from sibling tools like delete_project or delete_alias.
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, or any prerequisites. The description only explains how to delete, not when 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.
delete_dns_recordC
Delete a DNS record from a domain by record id.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name. | |
| recordId | Yes | DNS record id (rec_...). | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided and the description does not disclose behavioral traits like irreversibility, required permissions, or error states. For a destructive action, this is a critical omission.
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 at 11 words. It is front-loaded and efficient, though could benefit from a bit more context without becoming verbose.
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 mutation tool with no annotations and no output schema, the description is insufficient. It lacks information about return values, error handling, or dependencies (e.g., record existence).
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% with descriptions for all 4 parameters. The tool description does not add any additional meaning beyond what the schema already provides, so baseline 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 action (Delete), the resource (DNS record from a domain), and the identifier (by record id). It distinguishes from sibling tools like create_dns_record, update_dns_record, and list_dns_records by specifying deletion.
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, such as removal via domain removal or other deletion tools. No context about 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.
delete_edge_configB
Delete an Edge Config store by id.
| Name | Required | Description | Default |
|---|---|---|---|
| edgeConfigId | Yes | Edge Config id (ecfg_...). | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It simply states the action without revealing that deletion is irreversible, that existing data is permanently lost, or that specific permissions might be required. This is insufficient for a destructive 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 a single, front-loaded sentence that conveys the essential operation without any fluff. Every word earns its place.
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 delete operation with one required parameter and no output schema, the description is minimally adequate. However, it lacks important context such as prerequisites (the store must exist), consequences (permanent removal), or return value (likely empty or success status). This leaves gaps for an agent.
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 baseline is 3. The description adds no additional meaning beyond the schema: it does not explain the purpose of teamId and slug parameters or clarify how edgeConfigId is obtained. The value over the schema is marginal.
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 ('Delete') and the resource ('Edge Config store') and how it is identified ('by id'). This distinguishes it from sibling tools that operate on different resources (e.g., delete_deployment, delete_project) and from related Edge Config tools (create_edge_config, get_edge_config).
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 scenarios where deletion is appropriate, nor does it contrast with tools like update_edge_config_items for modifying content. An agent would lack context for deciding when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_env_varB
Delete an environment variable from a project by id.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or name. | |
| envId | Yes | Environment variable id. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only says 'delete', implying a destructive action but does not disclose permanence, auth requirements, or any side effects. Missing critical behavioral 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?
Single sentence, clear, no fluff. Could be slightly more informative without harming conciseness, but it is appropriately sized.
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?
No output schema, and the description does not mention return values or success indication. For a simple delete tool it might be adequate, but it lacks completeness regarding what the agent can expect after calling this 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 baseline is 3. The description adds no additional meaning beyond the schema; it merely repeats the 'by id' concept already captured in the envId parameter description.
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 the action 'delete' and the resource 'environment variable from a project', distinguishing it from siblings like create_env_var, update_env_var, and get_env_var.
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 vs alternatives, no prerequisites, and no when-not-to-use indications. The description only states what it does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_log_drainB
Delete a configurable log drain by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Log drain id. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must cover behavioral traits. It only states 'Delete' without specifying irreversibility, side effects, or permissions needed. For a deletion operation, this is insufficient.
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 sentence but lacks structure and could be more informative. It is not overly verbose, but the brevity sacrifices clarity.
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 delete tool with no output schema and no annotations, the description fails to mention crucial context like permanence or required existence of the log drain. Sibling tools provide no comparative 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?
Schema coverage is 100%, so the description does not need to detail parameters. It adds no extra meaning beyond the schema, 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 action (delete), the resource (configurable log drain), and the method (by id). It effectively distinguishes from sibling tools like list_log_drains or create_log_drain.
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 delete_project or other delete operations. The description does not mention prerequisites or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_projectA
Delete a project permanently. This cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| idOrName | Yes | Project id or name. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the critical behavioral trait of permanent deletion ('cannot be undone'), which is essential. Without annotations, it carries the full burden; however, it does not cover authorization needs or side effects on related resources, so not a 5.
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 extremely concise with two short sentences, front-loading the action and irreversibility. Every word earns its place 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 simple deletion tool with no output schema and full parameter descriptions, the description covers the key effect (permanence). However, it omits return value or post-deletion state, which would be helpful, but overall adequate.
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 input schema already documents all three parameters sufficiently. The description adds no extra parameter-level context, so baseline 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 permanently deletes a project, using specific verb 'delete' and resource 'project', and distinguishes it from sibling tools like update_project or pause_project by emphasizing irreversibility.
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 (when permanent deletion is intended) but lacks explicit guidance on when not to use or alternatives like pausing or deactivating. No mention of prerequisites or context compared to similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_webhookB
Delete a webhook by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook id. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states action, not side effects (irreversibility), auth requirements, or error cases like missing webhook.
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, no fluff. Could be slightly more structured but appropriate for a simple delete operation.
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 low complexity and full schema, description is minimal. Missing behavioral context for a destructive operation; no output schema means return value unknown.
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 covers all parameters with descriptions (100% coverage). Description adds no extra parameter meaning beyond 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?
Description clearly states verb 'Delete' and resource 'webhook by id'. Distinguishes from siblings like create_webhook or list_webhooks.
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 vs alternatives, no prerequisites or consequences mentioned. The agent has no context for when deletion is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_aliasA
Get a single alias by id or alias name (e.g. my-app.vercel.app).
| Name | Required | Description | Default |
|---|---|---|---|
| idOrAlias | Yes | Alias id or the alias hostname. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It does not disclose any behavioral traits beyond the basic action. Missing details such as error handling (e.g., not found), authentication requirements, or side effects. While a get operation is inherently safe, more transparency would improve guidance.
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 concise sentence that immediately states the tool's purpose. No extraneous words, and the example is helpful without being verbose. It is optimally 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?
For a simple retrieval tool with 3 parameters (all described in schema), the description is nearly complete. It lacks mention of the return type or output structure, but since there is no output schema, this is acceptable. The description could be slightly more detailed about what the response contains (e.g., alias details), but it is adequate for a straightforward get 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 coverage is 100%, so baseline is 3. The description adds value by explaining that the parameter can be an id or alias name and gives an example format. This goes beyond the schema's parameter description, which only says 'Alias id or the alias hostname.' However, teamId and slug are not elaborated further.
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 ('Get') and resource ('alias'), and explicitly states it retrieves a single alias by id or alias name. It distinguishes from siblings like list_aliases (multiple) and delete_alias (delete). The example clarifies the alias name format.
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 (retrieve a single alias) but does not explicitly state when not to use or name alternatives. It relies on the context that this is for a single alias, while list_aliases exists for multiple, but no direct comparison is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_build_logsA
Get the BUILD logs of a deployment — what ran during the build and why it failed. Use this first when a deployment is in ERROR state.
| Name | Required | Description | Default |
|---|---|---|---|
| idOrUrl | Yes | Deployment id (dpl_...) or URL. | |
| limit | No | Maximum number of items to return. | |
| since | No | Logs after this timestamp (ms). | |
| until | No | Logs before this timestamp (ms). | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It implies a read-only operation but does not disclose potential rate limits, response size, or pagination behavior. It mentions returning failure reasons, which is helpful, but lacks explicit safety or performance cues.
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 defines the core function, second provides usage guidance. No superfluous words or repetition. Efficient and 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 lack of output schema, the description conveys the nature of the output ('what ran and why it failed'). It differentiates from siblings (build vs runtime logs). However, it does not specify response format or pagination behavior, which are common for list tools.
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?
With 100% schema coverage, all parameters are described in the schema. The description adds no additional parameter-specific context beyond what is already provided (e.g., idOrUrl, limit, since, until are already explained). Baseline 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 gets BUILD logs of a deployment, specifying it returns 'what ran during the build and why it failed,' which distinguishes it from sibling tools like get_deployment (deployment metadata), get_runtime_logs (runtime logs), and get_deployment_events.
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 advises to 'Use this first when a deployment is in ERROR state,' providing clear contextual guidance. It does not explicitly mention when not to use or alternatives, but the advisory use case is strong and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_certB
Get a TLS certificate by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Certificate id. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It only states 'Get' implying read-only, but omits authentication requirements, response behavior (e.g., not found handling), and any 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 a single concise sentence, front-loading the essential information 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?
The tool is simple, but with no output schema, the description does not hint at the return format or error cases. It is adequate for a basic read operation but lacks completeness for robust 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 description adds no additional meaning beyond what the input schema already provides. The 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 action ('Get') and the resource ('TLS certificate') with the identifier method ('by id'). It is specific and distinguishes from sibling tools like issue_cert, remove_cert, and upload_cert.
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 issue_cert or list_domains. There is no context about prerequisites, error conditions, 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_checkA
Get a single check on a deployment by id (status, conclusion, output).
| Name | Required | Description | Default |
|---|---|---|---|
| deploymentId | Yes | Deployment id (dpl_...). | |
| checkId | Yes | Check id. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided; the description carries the full burden. It indicates a read operation but does not disclose authentication needs, rate limits, or any other behavioral traits beyond the return fields.
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?
One concise sentence that front-loads the purpose. Could benefit from a small usage hint but is overall 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?
The description covers core functionality and return fields. Given no output schema, it adequately addresses the most critical aspect, though it could mention prerequisites or error cases.
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% with descriptions for all 4 parameters. The description does not add additional meaning beyond the schema, so baseline 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?
Clearly states 'Get a single check on a deployment by id' with specific return fields (status, conclusion, output). Distinguishes from siblings like list_checks (list all) and create_check (create).
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 when you need a single check's details, but does not explicitly state when to use this tool vs alternatives like list_checks for multiple checks or create_update for mutations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deploymentA
Get full details of one deployment by id or URL (state, build, meta, aliases).
| Name | Required | Description | Default |
|---|---|---|---|
| idOrUrl | Yes | Deployment id (dpl_...) or its URL. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions read behavior (get) but does not disclose rate limits, authentication requirements, error handling (e.g., 404 if not found), or whether it is idempotent/read-only. The description is too brief to meet transparency 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 a single sentence that efficiently conveys purpose and output details. It is front-loaded and contains no redundant information, earning maximum conciseness.
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 retrieval tool with three parameters and no output schema, the description is mostly complete. It lists key returned fields, though it could mention that additional fields are not shown or that the response structure is consistent with other endpoints. Minor gap given the tool's simplicity.
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 already covers all parameters with clear descriptions (e.g., idOrUrl format, teamId fallback). With 100% schema coverage, the description adds no additional semantic value, meeting baseline expectations.
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 (Get), resource (deployment), and scope (full details, one deployment). It specifies the input by id or URL and lists included fields (state, build, meta, aliases), distinguishing it from sibling tools like list_deployments or get_deployment_events.
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 usage for retrieving a single deployment via id or URL. It implicitly distinguishes from list (multiple) and events, but lacks explicit when-not to use or alternatives. The context of teamId and slug is clear from schema but not reinforced in description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deployment_eventsA
Get the build/runtime event log of a deployment (this is where build logs and errors live). Use to diagnose failed builds and runtime bugs. Returns log lines with text, type and timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| idOrUrl | Yes | Deployment id (dpl_...) or URL. | |
| builds | No | Include build events. Default true. | |
| direction | No | Log order. | |
| limit | No | Maximum number of items to return. | |
| since | No | Events after this timestamp (ms). | |
| until | No | Events before this timestamp (ms). | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, description mentions return type but not any behavioral traits like rate limits or auth needed; adequate for a read tool.
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 plus return statement, front-loaded with purpose, 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?
Describes return format (log lines with text, type, timestamps) but doesn't mention pagination or effects of parameters like limit; schema covers those, so acceptable.
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 covers all 8 parameters with descriptions, description adds no extra 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 it retrieves build/runtime event logs for deployment diagnosis, but doesn't explicitly differentiate from sibling tools like get_build_logs and get_runtime_logs.
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 use case: diagnose failed builds and runtime bugs, but lacks when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deployment_file_contentsB
Get the contents of a single file within a deployment by file id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Deployment id (dpl_...). | |
| fileId | Yes | File id (from list_deployment_files). | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states 'get the contents' but does not disclose behavioral traits such as size limits, encoding, error handling, or authorization requirements beyond what the schema hints at.
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 with no fluff. However, it could benefit from additional context without becoming verbose.
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 does not explain what the output contains (raw content, JSON, base64?), nor does it mention rate limits or the role of optional parameters. Given the absence of an output schema and annotations, more information is needed for 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 coverage is 100% and the description adds no new information beyond the schema. The schema already documents each parameter, including the source of fileId. Baseline 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 action (get contents), the resource (single file within a deployment), and the key identifier (file id). It distinguishes this tool from siblings like list_deployment_files (which lists files) and get_deployment (which gets deployment details).
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 vs alternatives. It is implied that one needs a file id from list_deployment_files, but there is no direct mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domainA
Get details for a single account-level domain by name.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. example.com. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description implies a read operation ('get details') but does not explicitly state read-only nature, auth requirements, or other behavioral traits.
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, front-loaded with action verb, no redundant 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?
Lacks details on return values or format; with no output schema, the description could hint at what 'details' includes. Sibling tools like get_domain_config suggest nuance not addressed.
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 covers 100% of parameters with clear descriptions; the description adds 'by name' and 'account-level' context, providing marginal additional value over 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 uses specific verb 'Get details' and resource 'single account-level domain', clearly distinguishing from sibling tools like list_domains, add_domain, remove_domain.
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 fetching details of a specific domain, but provides no explicit guidance on when to use this tool versus alternatives 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.
get_domain_configA
Get the DNS/verification configuration Vercel expects for a domain (records to set at your registrar).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
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 describes a read operation but does not explicitly state lack of side effects, authentication requirements, or rate limits. The phrase 'records to set' implies no modification, but details are sparse.
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 sentence of 17 words, front-loaded with the verb 'Get'. No redundant or extraneous 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?
Although there is no output schema, the description gives a clear indication of what the tool returns (DNS records to set). For a simple get operation with well-documented parameters, this is nearly complete, though the exact response format is not described.
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, so the schema already documents all three parameters. The description does not add extra meaning beyond what the schema provides, meeting the baseline 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 retrieves the DNS/verification configuration for a domain, specifically the records to set. The verb 'Get' and resource are explicit, distinguishing it from sibling tools like get_domain or verify_domain.
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 when you need to know DNS records to set, but it lacks explicit guidance on when to use this tool versus alternatives or when not to use it. No sibling differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_edge_configA
Get metadata for a single Edge Config store by id.
| Name | Required | Description | Default |
|---|---|---|---|
| edgeConfigId | Yes | Edge Config id (ecfg_...). | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
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 only states the action (get metadata) but does not explain error handling, authentication requirements, rate limits, or what happens if the ID is invalid. The description is too sparse to be transparent.
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 sentence of 12 words, perfectly front-loaded with the verb and subject. Every word is necessary, and there is 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?
For a simple get-by-ID operation with a well-defined schema, the description covers the core functionality. However, it does not explain what 'metadata' encompasses, nor does it address potential errors or output structure (no output schema). Slightly more detail 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?
The input schema already describes all three parameters with 100% coverage. The description adds no additional meaning beyond what the schema provides, so the 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 retrieves metadata for a single Edge Config store by ID. It distinguishes itself from sibling tools like 'list_edge_configs' (lists all) and 'get_edge_config_items' (retrieves items), making the purpose unambiguous.
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 when you have a specific Edge Config ID, but it does not explicitly state when to use this tool versus alternatives like 'list_edge_configs' to first obtain IDs, or 'get_edge_config_items' for items. No exclusion criteria or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_edge_config_itemsB
Read all key/value items stored in an Edge Config.
| Name | Required | Description | Default |
|---|---|---|---|
| edgeConfigId | Yes | Edge Config id (ecfg_...). | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Read' without disclosing any behavioral traits such as idempotency, pagination, permission requirements, 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?
The description is a single sentence that is concise and directly to the point, 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 no output schema and no annotations, the description is minimal. It provides the basic purpose but lacks information about return format, limitations, or pagination, which is acceptable but not 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%, so the schema already documents all parameters. The description adds no additional meaning beyond the schema, earning the 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 verb 'Read' and the resource 'all key/value items stored in an Edge Config'. It distinguishes from sibling tools like `get_edge_config` (likely metadata) and `update_edge_config_items` (mutating).
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 does not provide any guidance on when to use this tool vs alternatives, nor does it mention any preconditions or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_env_varB
Get a single environment variable (and its decrypted value where allowed) by id.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or name. | |
| envId | Yes | Environment variable id. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions 'decrypted value where allowed', hinting at access control, but does not explain conditions, permissions, or side effects. It fails to explicitly state that the operation is read-only.
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 with no filler. It efficiently conveys the core function without unnecessary 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?
Despite low complexity, the description omits important context: output format, error handling (e.g., what if env var not found), and details on 'where allowed'. No output schema exists to compensate. The agent lacks information to handle edge cases.
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 all parameters are described in the schema. The description adds only 'by id', which refers to envId. No additional semantics are provided for teamId or slug fallback behavior. Baseline 3 applies.
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 states the verb 'Get' and the resource 'single environment variable', and specifies that it returns decrypted value where allowed. This clearly identifies the tool's purpose and distinguishes it from sibling tools like list_env_vars, create_env_var, etc.
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 other env var tools (e.g., list_env_vars, update_env_var). The description does not mention alternatives or context, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectA
Get a project's full configuration by id or name.
| Name | Required | Description | Default |
|---|---|---|---|
| idOrName | Yes | Project id or name. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It indicates a read operation but does not mention any side effects, authentication requirements, rate limits, or response size. For a simple get tool, this is minimally sufficient but not comprehensive.
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, front-loaded sentence with no fluff. Every word serves a purpose, specifying the resource, action, and key parameters efficiently.
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 no output schema, so the description should explain what 'full configuration' includes. It does not, leaving the agent uncertain about the return structure. This is a notable gap for a retrieval tool where return format is crucial.
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 the schema already documents each parameter. The description adds value by clarifying that 'idOrName' can be either an ID or a name, which is not fully explicit in the schema. This is a marginal improvement, keeping the score at baseline.
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 ('Get'), the resource ('project'), and the scope ('full configuration by id or name'). This is a specific verb+resource combination that distinguishes it from sibling tools like list_projects (which returns multiple projects) and update_project (which modifies).
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 by specifying retrieval by id or name, which helps agents decide when to use this tool versus list_projects or other project-related tools. However, it lacks explicit guidance on when not to use it or alternatives (e.g., for partial data, use list_projects).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_promote_aliasesA
Check the status of the most recent promote/rollback for a project (which aliases were assigned).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or name. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
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 indicates a read operation ('Check the status') with no side effects, but lacks details about error conditions (e.g., no recent promote/rollback), authentication requirements, or response format. The description is adequate but minimal.
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 sentence that is direct and informative, containing no unnecessary words or fluff. It earns its place by clearly stating 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?
For a read-only tool with no output schema, the description provides the general purpose but does not detail the output format or what 'status' includes (e.g., success/failure, alias names). It could be more complete by hinting at the response structure, but it is sufficient for basic 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 100%, so the schema already documents all three parameters. The description does not add additional meaning beyond the schema; it focuses on the overall purpose rather than explaining how parameters relate to the operation. Baseline 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 checks the status of the most recent promote/rollback for a project, specifically which aliases were assigned. It uses a specific verb ('Check') and resource ('status of promote/rollback'), distinguishing it from sibling tools like 'promote_deployment' (which performs the action) and 'list_aliases' (which lists all aliases).
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 the tool is for checking the result after a promote or rollback, but does not explicitly state when to use it or mention alternatives. For example, it doesn't guide the agent to use this tool after 'promote_deployment' or 'rollback_deployment' rather than other status check tools like 'get_deployment'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_runtime_logsA
Get RUNTIME logs/events of a deployment (serverless/edge function output, runtime errors). Use to debug a deployment that built fine but misbehaves in production.
| Name | Required | Description | Default |
|---|---|---|---|
| idOrUrl | Yes | Deployment id (dpl_...) or URL. | |
| direction | No | ||
| limit | No | Maximum number of items to return. | |
| since | No | Logs after this timestamp (ms). | |
| until | No | Logs before this timestamp (ms). | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Indicates it's a read operation (get logs) and non-destructive, but lacks details on pagination, rate limits, or authentication. With no annotations, more disclosure would be beneficial.
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 concise sentences, front-loaded with core purpose, 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?
Describes when to use and basic behavior, but for 7 parameters and no output schema, lacks details on output format, pagination, or handling of optional parameters.
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 high (86%), and description adds no extra meaning beyond schema. Following baseline 3 for high coverage, but direction parameter lacks description in schema and is not explained here.
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?
Clearly states verb 'Get', resource 'RUNTIME logs/events of a deployment', and a specific use case ('debug a deployment that built fine but misbehaves in production'), distinguishing it from siblings like get_build_logs.
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?
Directly states when to use (after build success, for runtime misbehavior), implicitly excluding build-time debugging. Does not explicitly name alternatives but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_teamA
Get a single team by id or slug.
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states it 'gets' a team, implying a read operation, but does not explicitly confirm safety, idempotency, permissions, or rate limits. The burden on the description is not fully met.
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?
A single sentence that immediately conveys the tool's purpose. No unnecessary words, every part adds value. 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?
The tool has no output schema, so the description should ideally mention what is returned (e.g., the team object). It does not, leaving the agent to infer. However, for a simple retrieval tool with well-documented parameters, this is adequate but not 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 coverage is 100%, with descriptions for both parameters. The description adds the fallback behavior for teamId (VERCEL_TEAM_ID), which is valuable context beyond the schema. This justifies a score above the baseline 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 specifies the verb 'Get' and the resource 'single team', and identifies the lookup keys (id or slug). It effectively distinguishes from sibling tools like list_teams, which retrieves all teams.
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 when a specific team is needed, but does not explicitly contrast with list_teams or other tools, nor does it provide when-not conditions. The guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_userA
Get the authenticated user (account behind VERCEL_TOKEN).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It indicates a read operation but does not disclose potential side effects, authorization scope, or return structure beyond the minimal 'account behind VERCEL_TOKEN'.
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 sentence of ten words, front-loading the key purpose with no extraneous 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?
Given zero parameters and no output schema, the description is adequately complete for a simple getter, specifying what is retrieved (the user behind the token). It could optionally mention that it returns user details, but not required.
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 no parameters, and the schema coverage is 100% trivially. Per the rule, baseline is 4; the description correctly adds no parameter info as none exist.
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 specific resource 'the authenticated user (account behind VERCEL_TOKEN)', distinguishing it from sibling tools that retrieve other entities like teams or projects.
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 retrieving authenticated user info but does not provide explicit guidance on when to use or not use this tool versus alternatives, nor mention any prerequisites beyond the VERCEL_TOKEN.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issue_certB
Issue (provision) a new TLS certificate for one or more domains. Vercel handles the ACME flow.
| Name | Required | Description | Default |
|---|---|---|---|
| cns | Yes | Common names / domains to cover. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions 'Vercel handles the ACME flow', hinting at automation, but does not disclose potential side effects like overwriting existing certificates, failure modes, or authorization requirements. With no annotations, the description should provide more behavioral 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?
Two sentences with no extraneous words. The action verb is front-loaded. Every sentence provides value: one for purpose, one for process.
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 absence of annotations, output schema, and low parameter complexity, the description is minimal but covers the primary purpose. Missing details on success response, error handling, and potential side effects reduce 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?
The input schema has 100% coverage with descriptions for all three parameters. The description adds value by explaining the ACME flow, but the parameter meanings are already clear from the schema. Baseline 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 action (issue/provision) and the resource (TLS certificate), and distinguishes from siblings like 'upload_cert' which involves manual upload. However, it does not explicitly differentiate from other cert-related tools like 'get_cert' or 'remove_cert'.
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 (e.g., upload_cert). It implies usage for new certificates but lacks prerequisites or context on 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.
list_aliasesA
List aliases (custom URLs) in the account/team, optionally filtered by project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Filter aliases by project id. | |
| limit | No | Maximum number of items to return. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavior. It only states a read operation but lacks details on pagination, rate limits, default limits, or whether the result is paginated. This is minimal for a list 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 a single, front-loaded sentence with no wasted words. It efficiently states the action and a key option.
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 list tool with a 4-parameter schema at 100% coverage, the description is adequate. However, it omits information about pagination or default limit behavior, which would be helpful for an agent.
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 baseline 3 applies. The description adds no extra meaning beyond the schema; it only mentions 'optionally filtered by project' which mirrors the projectId parameter. No additional context for limit, teamId, or slug.
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 aliases (custom URLs)' with a specific verb and resource. It distinguishes from siblings like get_alias (singular) and delete_alias (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?
The description implies listing multiple aliases but doesn't explicitly guide when to use this tool versus alternatives like get_alias for a single alias or assign_alias for modifications. No when-not or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_checksB
List the checks (CI/quality gates) registered on a deployment.
| Name | Required | Description | Default |
|---|---|---|---|
| deploymentId | Yes | Deployment id (dpl_...). | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'list the checks' without disclosing behavioral traits such as pagination, filtering, permissions, or whether the response includes all checks. The minimal description 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?
Single sentence, front-loaded with the action and resource, no extraneous 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?
For a simple list tool with one required parameter, the description is adequate but lacks details on pagination, authentication requirements, or error conditions that would make it fully complete. No output schema further limits 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 coverage is 100% with parameter descriptions already present in the input schema. The description does not add additional meaning beyond what the schema provides, so 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?
Description clearly states the verb 'list' and the resource 'checks (CI/quality gates)' scoped to a deployment, distinguishing it from sibling tools like 'get_check' (singular) and 'create_check'.
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 such as 'get_check' or other list_* tools. The description does not provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_deployment_filesC
List the file tree of a deployment.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Deployment id (dpl_...). | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only says 'List' which implies read-only, but doesn't disclose permissions, pagination, or other behavioral traits beyond the verb.
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, no wasted words. Front-loaded with verb and resource. Appropriate length for a simple tool.
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?
No output schema and no annotations; description is minimal. For a tool listing files, it lacks context on output format (e.g., recursive?, full paths?) and required permissions.
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 baseline is 3. Description adds no additional meaning to parameters beyond 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?
Description clearly states 'List the file tree of a deployment' which is specific verb+resource. It distinguishes from siblings like 'get_deployment_file_contents' through verb choice, but does not explicitly differentiate.
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 over alternatives like 'get_deployment_file_contents' or other listing tools. Only states what it does, not when 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.
list_deploymentsA
List deployments, most recent first. Filter by project, target (production/preview), state, or time window. Use this to see deploy history and find a deployment id.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Filter by project id or name. | |
| target | No | Filter by deploy target. | |
| state | No | Comma-separated states: BUILDING, ERROR, INITIALIZING, QUEUED, READY, CANCELED. | |
| app | No | Filter by deployment app name. | |
| since | No | Only deployments created after this timestamp (ms). | |
| until | No | Only deployments created before this timestamp (ms). | |
| limit | No | Maximum number of items to return. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses ordering ('most recent first') and basic filters, but omits crucial behavioral traits: pagination behavior (default limit, result count), authentication/team scoping, error handling, empty result behavior, or rate limits. A listing tool with 9 parameters needs richer disclosure.
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 redundancy, front-loaded with the core action. Every sentence serves a purpose: first states the primary function and ordering, second lists main filters and use case. Excellent conciseness.
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 tool with 9 optional parameters and no output schema or annotations, the description is too sparse. It does not explain return structure, pagination controls (beyond 'limit'), default behavior, team scoping nuances (teamId vs slug), or error conditions. A more complete description would address these for effective autonomous invocation.
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 has 100% coverage with inline descriptions for all 9 parameters. The description's mention of filters ('project, target, state, or time window') adds minimal extra value—it paraphrases but does not clarify data types, formats, or interactions. Baseline 3 is appropriate; the description does not significantly aid parameter understanding 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 the tool lists deployments in descending chronological order, specifies key filters (project, target, state, time window), and explicitly states its use case: 'see deploy history and find a deployment id.' This distinguishes it from siblings like get_deployment (single) or cancel_deployment (mutation).
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 provides explicit use context: 'Use this to see deploy history and find a deployment id.' This implies it is appropriate for enumeration, not for modifying or retrieving a single deployment. While it lacks explicit contraindications, the positive guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dns_recordsB
List the DNS records Vercel manages for a domain.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name. | |
| limit | No | Maximum number of items to return. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It does not mention pagination behavior related to the limit parameter, error cases, authentication requirements beyond implicit Vercel token, or whether the result includes all records or if there are any filters.
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?
A single, clear sentence that front-loads the purpose. No unnecessary 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 no output schema and 4 parameters, the description lacks information on return format, pagination behavior, error conditions, or any constraints. For a listing tool, this is insufficient.
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 parameters. The description adds no extra meaning beyond the schema; it does not explain how limit affects results or the relationship between teamId and slug.
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 the resource 'DNS records Vercel manages for a domain.' It distinguishes from sibling tools like create_dns_record and add_domain by specifying the action is listing only.
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 such as get_domain, list_domains, or other DNS-related tools. No context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_domainsB
List all domains registered/owned in the account or team.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does not disclose behavioral traits like read-only nature, authentication requirements, pagination, or ordering. It simply states the action.
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?
A single, clear sentence with no extraneous words. Highly 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?
The description does not explain how limit, teamId, or slug affect results, nor does it describe the return format. Given 3 parameters and no output schema, more context is needed for an agent to use it effectively.
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 well-documented in the schema. The description adds no additional meaning beyond the schema, meeting the baseline 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 'List all domains registered/owned in the account or team' clearly states the action and resource. It distinguishes from siblings like get_domain (single domain) and add_domain (creation).
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 vs alternatives (e.g., get_domain for a specific domain, or verify_domain for verification). The description lacks context on team scoping or limit usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_edge_configsA
List all Edge Config stores in the account/team.
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states 'list all', omitting behavioral traits like pagination, rate limits, or required permissions.
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, front-loaded with verb and resource, zero 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?
For a simple list tool with two optional parameters and no output schema, the description is adequate. Minor missing context like return format, but not critical.
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% with both parameters described. The description adds no extra meaning beyond the schema, so baseline 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 verb 'list', resource 'Edge Config stores', and scope 'account/team', distinguishing it from sibling tools like get_edge_config and create_edge_config.
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 other list tools (e.g., list_projects, list_domains). The usage is implied by the resource type, but alternatives are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_env_varsA
List environment variables for a project. By default values are decrypted only where your token allows. Use decrypt:true to request decrypted values.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or name. | |
| decrypt | No | Return decrypted values where permitted. | |
| gitBranch | No | Filter to a specific preview git branch. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden. It discloses default decryption behavior (decrypt only where token allows) and the opt-in for decrypted values, which adds value beyond the 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 concise sentences: first states the purpose, second clarifies decrypt behavior. Every sentence earns its place 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?
While the parameters are well-documented in the schema, the description lacks details on return format or pagination. For a list operation with no output schema, some additional context would be helpful but not critical.
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 the schema already describes all parameters. The description adds only minor context about the default decrypt state, which is already clear from the schema description.
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 specifies 'List environment variables for a project,' using a clear verb and resource. It distinguishes itself from sibling tools like get_env_var (single var) and create_env_var (creation).
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 the tool is for listing, and the decrypt parameter usage is hinted, but no explicit guidance on when to use this tool versus alternatives (e.g., get_env_var) 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.
list_integrationsA
List installed integration configurations in the account/team.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | Configuration view. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral burden. 'List' implies a read operation, but no explicit statement about non-destructiveness, permissions, or pagination is included. The description is adequate but lacks depth.
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, concise sentence. Every word adds value, and there is no redundant or excessive 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?
For a simple list tool, the description covers the core function but omits details like response format, pagination, or rate limits. Without an output schema, the agent lacks information about return structure, which makes it moderately incomplete.
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% coverage for all parameters, so the baseline is 3. The description adds no additional meaning beyond what the schema already documents, such as the 'view' enum or the relationship between teamId and slug.
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 the verb 'List,' the resource 'installed integration configurations,' and the scope 'in the account/team.' This clearly differentiates it from sibling list tools that target other resources like domains, deployments, or projects.
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?
While there is no explicit when-to-use or exclusionary guidance, the description clearly establishes the context for retrieving integration configurations. Given no sibling integration-specific tools, the context is sufficient to avoid ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_log_drainsC
List configurable log drains (where deployment logs are shipped).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Filter by project id. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
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 only states that it lists log drains, but omits behavioral traits such as read-only nature, authentication needs, rate limits, or pagination behavior. For a list operation, minimal disclosure.
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?
A single sentence with no wasted words, but the phrase 'configurable log drains' is slightly redundant. Still, it is efficiently structured and 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?
The tool is a straightforward list operation with no output schema and no annotations. The description covers the basic purpose but lacks details like return format, pagination, or permissions that would fully inform an agent. Adequate but not thorough.
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 schema already describes each parameter. The description does not add any extra meaning or context beyond the schema's existing descriptions, so baseline score of 3 applies.
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 the verb 'list' and specifies the resource 'configurable log drains', with a parenthetical explanation of their purpose. It is clear and distinct from mutation tools like create_log_drain and delete_log_drain, but does not differentiate from other list_* siblings.
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 such as list_webhooks or list_deployments. Lacks any context about filtering or prerequisites, leaving the agent without situational advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_project_domainsB
List the domains attached to a specific project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or name. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must bear full transparency burden. It states a read operation ('List') but does not disclose any side effects, authentication needs, rate limits, or pagination 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?
Single sentence of 8 words, front-loaded with the action. No wasted words, perfectly 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?
Tool has 3 parameters (1 required) and no output schema. Description fails to mention what the output contains (e.g., list of domain objects), or whether the project must exist. Incomplete for effective 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 coverage is 100%, so parameters are already described. The description adds no additional meaning beyond the schema. Baseline score of 3 applies.
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 the tool's action ('List') and resource ('domains attached to a specific project'). It distinguishes from siblings like 'list_domains' (which likely lists all domains) and 'get_domain' (single domain).
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 such as 'list_domains', 'get_domain', or 'add_project_domain'. The description does not indicate prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsC
List projects in the account/team. Optionally filter by name or repo.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Filter by project name substring. | |
| repoUrl | No | Filter by connected Git repo URL. | |
| limit | No | Maximum number of items to return. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
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 does not mention pagination, result ordering, default limits, or any side effects, leaving the agent with no knowledge of how the tool behaves beyond its existence.
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 concise sentence, but it lacks structure and fails to include essential context like pagination or team scoping, making it under-specified despite its brevity.
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?
With 5 parameters, no output schema, and no annotations, the description should provide more contextual completeness (e.g., output format, pagination behavior). It only covers basic functionality, leaving significant gaps for a tool with moderate 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?
The input schema has 100% description coverage with clear parameter descriptions. The tool description adds 'filter by name or repo' which loosely maps to search and repoUrl, but adds no extra semantics 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 projects' using a specific verb and resource, distinguishing it from sibling tools like get_project or delete_project. However, it could more explicitly differentiate from other list_* tools by specifying the scope (account/team), which is already implied.
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 includes 'Optionally filter by name or repo' but provides no guidance on when to use this tool versus alternatives (e.g., get_project for a single project, or other list_* tools for different entities).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_team_membersC
List the members of a team.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral disclosure responsibility. It merely states the action without revealing traits like authentication requirements, pagination behavior, or read-only nature. The 'limit' parameter hints at pagination but is not explained.
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, front-loaded sentence with no wasted words. While concise, it could be slightly expanded to include key details without sacrificing brevity.
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 output schema and annotations, the description is insufficient. It does not specify the return format, pagination behavior, or how to handle the fallback logic for teamId/slug. The tool has moderate complexity with three parameters, but the description is too sparse to fully contextualize its 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 input schema already provides full descriptions for all three parameters (limit, teamId, slug) with 100% coverage. The description adds no new semantic information beyond what the schema states, meeting the baseline expectation.
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 the verb 'list' and the resource 'members of a team', making the purpose clear. However, it does not differentiate from sibling tools like 'get_team' or 'list_teams', which could confuse an AI agent about which tool to use when listing team-related information.
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 specify scenarios, prerequisites, or exclusion criteria. The AI agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_teamsB
List the teams the authenticated user belongs to.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. |
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 it does. It does not mention pagination, default limit, authentication requirements, or any side effects. However, for a simple list tool with one optional parameter, the behavior is straightforward enough.
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, concise and front-loaded. One extra sentence about the limit parameter would improve without harming conciseness.
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 simplicity (1 optional param, no output schema), the description is mostly complete but lacks mention of pagination or that the limit parameter affects it. Sufficient for basic use but could be more 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 coverage is 100% as the only parameter 'limit' already has a description. The tool description adds no additional meaning beyond what the schema provides.
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 states the specific verb 'List' and resource 'teams' with scope 'the authenticated user belongs to'. It clearly distinguishes from sibling tools like list_team_members and get_team.
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, no prerequisites, and no exclusions. For example, it does not mention that get_team retrieves a single team or that list_team_members lists members of a specific team.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_webhooksC
List webhooks configured in the account/team.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Filter webhooks by project id. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden for behavioral traits. It does not mention any behaviors like pagination, rate limits, permissions, or what happens when no webhooks exist. The description is too minimal.
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 concise sentence. It is appropriately sized for a simple list operation, but lacks structure like front-loading key details. Slight improvement possible.
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 list tool with three optional parameters and no output schema, the description is incomplete. It does not state if results are paginated, ordered, or limited. Agents lack guidance on expected output.
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?
Input schema has 100% description coverage for parameters, so the description does not need to add much. It correctly mentions 'list webhooks' but does not elaborate on parameter usage. Baseline 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 lists webhooks and scopes to account/team. It uses a specific verb and resource, distinguishing it from sibling tools like create_webhook or delete_webhook.
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 when to filter by projectId or which authentication is needed. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_projectA
Pause a project (stops serving production traffic) by project id.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
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 the key behavioral trait (stops production traffic) but does not mention reversibility, idempotency, or required permissions.
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, no wasted words, front-loaded with the action. Highly 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?
Given 3 parameters, no output schema, and no annotations, the description is adequate for a simple tool but lacks details on impact (e.g., ongoing operations) and relationship to siblings like 'unpause_project'.
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 baseline is 3. The description only mentions 'projectId' but adds no additional meaning beyond the schema for any parameter.
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 (pause), the resource (project), and the effect (stops serving production traffic). This distinguishes it from siblings like 'unpause_project' or other project 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 provides minimal usage guidance ('by project id') but does not specify when to use this tool versus alternatives (e.g., canceling a deployment), nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
promote_deploymentA
Promote an existing deployment to production for a project (instant promotion, no rebuild). This is how you ship a previously-built preview to prod.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or name. | |
| deploymentId | Yes | Deployment id to promote (dpl_...). | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must bear the full burden. It discloses 'instant promotion, no rebuild' but lacks details on side effects, authorization needs, or response 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?
Two concise sentences, front-loaded with key information, 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 moderate complexity and full schema coverage, the description is mostly complete. However, it lacks mention of return value or confirmation, which 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%, so baseline is 3. The description adds no additional meaning beyond the schema for the 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 verb 'promote' and the resource 'deployment to production', and distinguishes it from siblings like 'create_deployment' or 'rollback_deployment' by emphasizing instant promotion with no rebuild.
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: 'This is how you ship a previously-built preview to prod.' It implies when to use, but does not explicitly state when not to use or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_certB
Delete a TLS certificate by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Certificate id. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral traits. It indicates a destructive action but lacks details on side effects, permissions, or reversibility. For a deletion tool, this is minimal transparency.
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 is front-loaded with the core purpose. There is no unnecessary 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?
Given the tool's low complexity (simple deletion, three parameters, no output schema), the description is largely complete. However, it could mention error scenarios or authorization requirements for full 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?
The input schema already fully describes all three parameters (id, teamId, slug) with 100% coverage. The description does not add any additional semantic value beyond what the schema provides.
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 'Delete', the resource 'TLS certificate', and the method 'by id'. It effectively distinguishes the tool from sibling tools like issue_cert, upload_cert, and get_cert.
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, nor any context on prerequisites or exclusions. The description merely states the operation without any usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_domainB
Remove a domain from the account or team by name.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to remove. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description implies a destructive action but does not disclose behaviors like confirmation, reversibility, or effects on associated resources.
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, front-loaded with action and resource, no unnecessary 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?
Minimal description for a deletion tool with no output schema and no annotations. Does not explain return values or success indication.
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 baseline is 3. The description adds no additional meaning beyond the schema; the schema already describes each parameter 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 verb 'Remove', the resource 'domain', and the method 'by name'. Among sibling tools like remove_project_domain or delete_dns_record, this distinguishes itself as removing a domain from the account or team.
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 (e.g., remove_project_domain for project-level removal). No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_project_domainA
Detach a domain from a project (does not delete the domain from the account).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or name. | |
| domain | Yes | Domain to detach. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the non-destructive nature (detach, not delete), which is key behavioral context, though it omits permissions or reversibility details.
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, front-loaded with verb and resource, no 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?
For a simple detach operation with required params and no output schema, the description is sufficiently complete, though it could add conditions like 'domain must be attached'.
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% with descriptions for all 4 parameters; the description adds no extra parameter detail beyond 'projectId' and 'domain' being used.
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 'Detach a domain from a project' and clarifies it does not delete the domain, distinguishing it from similar sibling tools like remove_domain.
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 notes what the tool does not do (delete from account), guiding when to use this vs. alternatives, but lacks explicit when-to-use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rerequest_checkB
Re-run a previously completed, rerequestable check by id.
| Name | Required | Description | Default |
|---|---|---|---|
| deploymentId | Yes | Deployment id (dpl_...). | |
| checkId | Yes | Check id. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description must carry full behavioral burden. It mentions 'rerequestable' but does not disclose what happens if the check is not eligible, or whether permissions are needed.
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, front-loaded with key action and resource, 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?
Despite high schema coverage and low parameter count, the description lacks output details, error conditions, and team scope behavior. No output schema or annotations to supplement.
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% with descriptions for all 4 parameters. The tool's description adds no additional meaning beyond what's in the schema, so baseline 3 applies.
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 the verb 're-run' and the resource 'check', with qualifiers 'previously completed' and 'rerequestable', distinguishing it from create/update siblings.
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 create_check or update_check. Does not mention prerequisites such as the check being completed and rerequestable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollback_deploymentB
Roll a project's production back to a previous deployment (instant rollback). Pass the deployment id you want to roll back to.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or name. | |
| deploymentId | Yes | Deployment id to roll back to (dpl_...). | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only says 'instant rollback' but fails to disclose side effects, permissions, or what happens to the current deployment. Essential behavioral context is 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?
A single, front-loaded sentence with no wasted words. Every word adds value to understanding the 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 no output schema and the complexity of deployment rollbacks, the description is insufficient. It lacks explanation of what 'instant rollback' entails, error handling, traffic implications, or confirmation of success.
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?
All parameters have descriptions in the schema (100% coverage). The description adds minimal extra meaning ('pass the deployment id'), so it meets the baseline for high-coverage schemas.
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 'roll back', the resource 'production deployment', and the specific action ('to a previous deployment'). It is distinct from siblings like promote_deployment or cancel_deployment.
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 or not use, no mention of alternatives or prerequisites. The description assumes the agent knows when to invoke rollback without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unpause_projectA
Resume a previously paused project by project id.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description states it 'Resume' a project, indicating a state change. Lacks details on permissions, side effects, or error conditions, but sufficient for a simple toggle 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?
Single sentence with no redundancy. Front-loaded with the verb and resource, making it easy to scan.
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?
Adequate for a simple tool with one required parameter and no output schema. Could mention prerequisites (e.g., project must exist and be paused) or success response format.
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 parameters. The description adds no additional parameter context beyond what is in 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 the action ('Resume'), the resource ('project'), and the condition ('previously paused'). It distinguishes from sibling tool 'pause_project' by specifying the opposite action.
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 paused projects only, which is clear context. Does not explicitly say when not to use it or mention alternatives, but the sibling tool name 'pause_project' provides implicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_checkA
Update a check's status, conclusion or output by id.
| Name | Required | Description | Default |
|---|---|---|---|
| deploymentId | Yes | Deployment id (dpl_...). | |
| checkId | Yes | Check id. | |
| status | No | ||
| conclusion | No | ||
| detailsUrl | No | ||
| output | No | Metrics/output object. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description implies mutation but lacks details on idempotency, permissions, or side effects. It is adequate for a simple update, but not comprehensive.
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, no fluff. Efficiently conveys the core purpose without unnecessary 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?
For a tool with 8 parameters, no output schema, and a nested object, the description is minimal. It does not explain update semantics (e.g., merging vs replacing output). Adequate but not 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?
The schema has 63% parameter description coverage. The description lists the main fields (status, conclusion, output) but adds little beyond what the schema already provides, such as deplymentId and checkId being required.
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 'update' and the resource 'check', listing specific fields (status, conclusion, output) that can be updated. It distinguishes from sibling tools like create_check and rerequest_check.
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. It does not mention prerequisites, when not to use, or compare with siblings like rerequest_check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_dns_recordC
Update an existing DNS record by record id.
| Name | Required | Description | Default |
|---|---|---|---|
| recordId | Yes | DNS record id (rec_...). | |
| name | No | ||
| type | No | ||
| value | No | ||
| ttl | No | ||
| mxPriority | No | ||
| srv | No | ||
| comment | No | ||
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as destructive nature, required permissions, rate limits, or update semantics (partial vs full replacement). This leaves the agent with insufficient information about 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 a single concise sentence with no redundant information. Every word is purposeful.
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 (10 parameters, nested objects, no output schema), the one-sentence description is severely incomplete. It fails to explain return values, update behavior, or constraints, making it insufficient for correct invocation.
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 adds no parameter-level meaning beyond the tool's purpose. With only 30% schema description coverage, the agent must rely on the raw schema, which lacks descriptions for most parameters. This is inadequate.
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 'Update', the resource 'DNS record', and the identifier 'by record id'. It effectively distinguishes from sibling tools like create_dns_record and delete_dns_record.
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. It lacks context such as prerequisites (e.g., existing record) 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.
update_edge_config_itemsA
Upsert/delete items in an Edge Config in one PATCH. Pass operations [{ operation:'create'|'update'|'upsert'|'delete', key, value? }].
| Name | Required | Description | Default |
|---|---|---|---|
| edgeConfigId | Yes | Edge Config id (ecfg_...). | |
| items | Yes | Item operations to apply. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral details. It correctly indicates mutation via 'PATCH' and lists operation types, but does not explain error scenarios, idempotency, or effects on unspecified items.
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, focused sentence that front-loads the core action and format. Every word is necessary and no information is repeated.
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 omits return format, prerequisites (e.g., existence of Edge Config), and any atomicity guarantees. For a tool with 4 parameters and no output schema, the description is adequate but lacks 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?
With 100% schema coverage, the baseline is 3. The description adds value by specifying the structure of the 'items' parameter (array of objects with operation, key, value?), which goes beyond the schema's generic description.
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 ('Upsert/delete'), the resource ('items in an Edge Config'), and the method ('in one PATCH'), which distinguishes it from sibling tools like 'get_edge_config_items' and 'delete_edge_config'.
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 use for batch operations on Edge Config items but does not explicitly mention when to use it versus alternatives or any prerequisites. The sibling tool list provides context, but the description lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_env_varB
Update an existing environment variable (value, target, type, comment) by id.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or name. | |
| envId | Yes | Environment variable id. | |
| key | No | ||
| value | No | ||
| target | No | ||
| type | No | ||
| gitBranch | No | ||
| comment | No | ||
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'update', which implies mutation, but does not disclose idempotency, overwrite behavior, permission requirements, error handling (e.g., missing envId), or rate limits. The description is insufficiently transparent.
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 one sentence of 13 words, which is concise. It front-loads the action and resource. However, it could be more structured by separating the list of updatable fields or adding a note about required parameters.
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 10 parameters, 2 required, and no output schema, the description is too sparse. It does not explain return behavior, error cases, prerequisites, or how this tool differs from bulk_create_env_vars (which might also update). Critical context is missing for correct invocation.
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 40%, with many parameters (key, value, target, type, gitBranch, comment) lacking descriptions. The description adds meaning by listing value, target, type, and comment as updatable fields, but does not cover key or gitBranch. It partially compensates for the schema gaps but not fully.
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 'Update an existing environment variable' and lists the specific fields that can be updated (value, target, type, comment). It distinguishes from sibling tools like create_env_var, delete_env_var, and get_env_var by focusing on the update operation.
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 updating an existing environment variable, but it does not explicitly state when to use this tool versus alternatives (e.g., create_env_var for new variables, delete_env_var for removal). No when-not or alternative tool names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_projectC
Update a project's settings (name, framework, build/install/dev commands, root/output directory, node version, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| idOrName | Yes | Project id or name. | |
| name | No | ||
| framework | No | ||
| buildCommand | No | ||
| devCommand | No | ||
| installCommand | No | ||
| outputDirectory | No | ||
| rootDirectory | No | ||
| nodeVersion | No | ||
| publicSource | No | ||
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full burden. It states 'update' but does not disclose whether the operation is destructive, what permissions are required, or what happens if the project does not exist.
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 with no redundancy, efficiently conveying the tool's purpose. However, it could benefit from a brief list or structure for clarity.
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 12 parameters, no output schema, and moderate complexity, the description lacks essential details like which parameters are required (only idOrName), expected behavior on errors, or relationships to other tools.
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?
Only 25% of parameters have schema descriptions. The description lists some parameter names but does not add meaning (e.g., format, allowed values, defaults) beyond the schema for the remaining 75%.
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 specifies the verb 'update' and the resource 'project settings', and lists relevant fields (e.g., name, framework, commands), clearly distinguishing it from create or delete 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?
No guidance on when to use this tool vs alternatives such as create_project or unpause_project. The description does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_certA
Upload a custom TLS certificate (your own cert/key/CA chain) instead of having Vercel issue one.
| Name | Required | Description | Default |
|---|---|---|---|
| cert | Yes | PEM-encoded certificate. | |
| key | Yes | PEM-encoded private key. | |
| ca | No | PEM-encoded CA chain. | |
| skipValidation | No | ||
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
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 only states the action without detailing side effects (e.g., whether it overwrites an existing cert), authentication needs, or rate limits. This is insufficient for a mutation tool.
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 sentence of 18 words, efficiently stating the purpose. It is front-loaded with the key action, though it lacks structure (e.g., bullet points) but is still clear.
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 6 parameters, 2 required, no output schema, and high schema coverage, the description is minimal. It tells what the tool does but does not provide context about domain matching or deployment scenarios. It is adequate but not rich.
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 83%, so baseline is 3. The description adds no parameter information beyond the schema; it only summarizes the purpose.
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 specific verb 'Upload' and resource 'custom TLS certificate', and distinguishes from sibling 'issue_cert' by stating 'instead of having Vercel issue one'.
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 (upload own cert vs. Vercel-issued), but does not explicitly state when not to use or mention prerequisites or alternatives besides the implied contrast with issue_cert.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vercel_rawA
Call any Vercel REST endpoint directly (escape hatch for full API coverage). Provide the HTTP method and the FULL path INCLUDING the version segment (e.g. '/v9/projects' or '/v13/deployments/dpl_xxx'), plus optional query params and JSON body. The configured team scope (VERCEL_TEAM_ID) is auto-injected unless you pass teamId/slug in params. Use this only when no dedicated tool exists. Auth, retries and rate-limiting are handled for you. Reference: https://vercel.com/docs/rest-api
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | HTTP method. | |
| path | Yes | Full path including version, starting with '/'. Example: '/v9/projects/my-app'. | |
| params | No | Query string parameters. | |
| body | No | Request body (for POST/PUT/PATCH). |
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 discloses that auth, retries, and rate-limiting are handled automatically, and that the team scope is auto-injected unless overridden. It does not describe error handling or side effects, but for a generic raw API tool, this level of disclosure is adequate.
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 earning its place: purpose, usage details, and usage boundaries. It is front-loaded with the key purpose and contains no wasted words. Excellent conciseness.
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 (generic raw API endpoint) and the absence of an output schema, the description adequately covers input parameters, scope handling, and when to use. It references external documentation for full API details. Could mention that the response is raw JSON from the API, but this is implied for an 'escape hatch' 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%, but the description adds meaning beyond the schema: it emphasizes that the path must include the version segment (e.g., '/v9/projects'), explains that params are query parameters, body is for POST/PUT/PATCH, and clarifies team scope auto-injection. This provides practical semantics for correct usage.
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: 'Call any Vercel REST endpoint directly (escape hatch for full API coverage).' It uses a specific verb ('call') and resource ('any Vercel REST endpoint'), and explicitly distinguishes from siblings with 'Use this only when no dedicated tool exists.'
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 explicit when-to-use guidance: 'Use this only when no dedicated tool exists.' It also details how to construct requests (method, full path including version, optional params/body), mentions team scope auto-injection, and notes that auth/retries/rate-limiting are handled. This covers usage context and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_domainA
Trigger verification of a domain after you've set the required DNS/TXT records.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to verify. | |
| teamId | No | Team ID to scope the request. Falls back to VERCEL_TEAM_ID when omitted. | |
| slug | No | Team slug to scope the request (alternative to teamId). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only says 'trigger verification' but does not disclose whether the operation is synchronous or asynchronous, what happens if DNS records are incorrect, rate limits, or side effects like email notifications. These gaps significantly reduce transparency.
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, succinct sentence that efficiently communicates the purpose and prerequisite. 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?
For a simple tool with 3 parameters and no output schema, the description is lacking. It omits crucial details like return values, error scenarios, whether the tool polls for completion, and how to interpret results. The agent may be left without enough information to handle the response correctly.
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% with each parameter having a description. The tool description adds no new meaning beyond the schema; it only provides context about DNS records. Baseline is 3 due to full schema coverage, and no additional value is provided.
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 ('trigger verification') and resource ('domain'), and specifies a prerequisite ('after you've set the required DNS/TXT records'). This distinguishes it from sibling tools like `add_domain` (which adds) or `get_domain` (which retrieves).
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 a clear condition for when to use the tool ('after you've set the required DNS/TXT records'), giving context for correct invocation. It does not explicitly state when not to use it or mention alternative tools, but the sibling list provides some context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct action and resource, with detailed descriptions that clearly differentiate overlapping areas like build logs vs runtime logs or promoting vs rolling back deployments.
All tools follow a consistent verb_noun pattern in snake_case (e.g., create_project, delete_deployment, list_domains), with no mixing of conventions.
At 70 tools, the set is larger than typical, but each serves a specific Vercel API endpoint. The count feels slightly heavy, though the comprehensive domain justifies it.
The tool set covers CRUD operations for projects, deployments, env vars, domains, DNS, edge config, logs, webhooks, checks, aliases, certificates, teams, and more, with a raw API escape hatch for any gaps.
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
A MCP server built for developers enabling Git based project management with project and personal…
327 dev tools via REST API and MCP. Generate Dockerfiles, schemas, K8s, APIs, and more.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA powerful Model Context Protocol (MCP) server enabling seamless Vercel project management, including deployments, domains, environment variables, and team configurations through Cursor's Composer or Codeium's Cascade.1,42262MIT
- AlicenseCqualityNot gradedmaintenanceAn MCP server that provides tools for interacting with Vercel API, enabling management of deployments, DNS records, domains, projects, and environment variables through natural language.71,42219
- AlicenseBqualityDmaintenanceAn MCP server that provides various tools for interacting with the Vercel API, enabling management of deployments, DNS records, domains, projects, and environment variables through natural language commands.71,42220MIT
- AlicenseNot gradedqualityCmaintenanceMCP server wrapping the full VitoDeploy REST API to manage projects, servers, sites, databases, services, workers, SSL, DNS, and more through any MCP-compatible agent, with 108 tools covering every endpoint.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/helbertparanhos/vercel-mcp-pro'
If you have feedback or need assistance with the MCP directory API, please join our Discord server