Follow Up Boss MCP Server
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., "@Follow Up Boss MCP ServerCreate a new deal for buyer Jane Smith worth $350k in our pipeline."
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.
Follow Up Boss MCP Server
Give any AI agent full access to your Follow Up Boss CRM via natural language.
"Find all leads tagged 'Hot' assigned to Sarah and add a note saying I called them"
"Create a deal for Jane Smith in the Buyers pipeline worth $450,000"
"List all appointments this week and update the ones marked Pending to Confirmed"
160 tools across 25 modules — full coverage of the Follow Up Boss API v1.
What is this?
This is a Model Context Protocol (MCP) server that wraps the Follow Up Boss API. Connect it to Claude, Cursor, Windsurf, or any MCP-compatible AI client and your agent can read and write your entire FUB account using plain English.
Example prompts:
"Find all people with the tag 'open house' who haven't been contacted in 30 days"
"Create a task for every person in the 'New Lead' stage to send a follow-up email"
"Show me all deals in the Listing pipeline worth more than $500k"
"Add Sarah Johnson as a relationship contact (spouse) for contact ID 1234"
"Send a bulk update setting stage to 'Active' for all people tagged 'webinar-2024'"
Related MCP server: GHL MCP Server
Tool Summary
Module | Tools | Description |
People | 17 | Contacts, relationships, attachments |
Appointments | 15 | Appointments, types, outcomes |
Deals | 14 | Deals, custom fields, attachments |
Templates | 12 | Email & text message templates |
Groups | 12 | Groups, teams, team inboxes |
Inbox Apps | 10 | Third-party inbox app integration |
Automations | 6 | Automations 2.0 management |
Ponds | 6 | Pond management and timeframes |
Webhooks | 6 | Webhook subscriptions |
Pipelines | 5 | Pipeline management |
Custom Fields | 5 | Custom field definitions |
Stages | 5 | Pipeline stage management |
Tasks | 5 | Task management |
Email Marketing | 5 | Campaigns and events |
Notes | 5 | Lead notes |
Action Plans | 4 | Action plan assignment |
Calls | 4 | Call logging |
Reactions | 4 | Reactions and threaded replies |
Events | 3 | Lead events |
Text Messages | 3 | SMS logging |
Users | 3 | User/agent management |
Smart Lists | 2 | Smart list access |
Identity | 2 | Account identity |
Convenience | 5 | Tag helpers, bulk update, email lookup |
Meta | 2 | Server info and help |
Total | 160 |
Safe mode (default): 23 delete/destructive tools are disabled — 137 tools active. Set
FUB_SAFE_MODE=falseto enable all 160.
Prerequisites
1. Node.js 18+
node --version # must be v18.0.0 or higher2. Follow Up Boss API Key
Log in to your Follow Up Boss account
Go to Admin → API (or visit
https://app.followupboss.com/2/api)Copy your API key — it starts with
fka_
3. (Optional) System Credentials
Some endpoints — automations, attachments, webhooks, inbox apps — are restricted to Registered Systems in FUB. To use these tools, you need:
FUB_SYSTEM— your registered system name (e.g.,"myapp")FUB_SYSTEM_KEY— your registered system key
Register your system at Admin → API → Registered Systems in your FUB account.
Installation
Run without installing (recommended)
# npx
npx @nerdsnipe-inc/follow-up-boss-mcp
# pnpm
pnpm dlx @nerdsnipe-inc/follow-up-boss-mcp
# bunx
bunx @nerdsnipe-inc/follow-up-boss-mcpInstall globally
npm install -g @nerdsnipe-inc/follow-up-boss-mcp
follow-up-boss-mcpConnecting to AI Clients
Claude Desktop
Edit your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"follow-up-boss": {
"command": "npx",
"args": ["-y", "@nerdsnipe-inc/follow-up-boss-mcp"],
"env": {
"FUB_API_KEY": "fka_your_api_key_here"
}
}
}
}With system credentials:
{
"mcpServers": {
"follow-up-boss": {
"command": "npx",
"args": ["-y", "@nerdsnipe-inc/follow-up-boss-mcp"],
"env": {
"FUB_API_KEY": "fka_your_api_key_here",
"FUB_SYSTEM": "your-system-name",
"FUB_SYSTEM_KEY": "your-system-key",
"FUB_SAFE_MODE": "false"
}
}
}
}Restart Claude Desktop after saving.
Claude Code (CLI)
claude mcp add follow-up-boss \
-e FUB_API_KEY=fka_your_api_key_here \
-- npx -y @nerdsnipe-inc/follow-up-boss-mcpOr add manually to .claude/mcp.json in your project:
{
"mcpServers": {
"follow-up-boss": {
"command": "npx",
"args": ["-y", "@nerdsnipe-inc/follow-up-boss-mcp"],
"env": {
"FUB_API_KEY": "fka_your_api_key_here"
}
}
}
}Cursor
Open Settings → MCP and add:
{
"mcpServers": {
"follow-up-boss": {
"command": "npx",
"args": ["-y", "@nerdsnipe-inc/follow-up-boss-mcp"],
"env": {
"FUB_API_KEY": "fka_your_api_key_here"
}
}
}
}Windsurf
Add to your Windsurf MCP config:
{
"mcpServers": {
"follow-up-boss": {
"command": "npx",
"args": ["-y", "@nerdsnipe-inc/follow-up-boss-mcp"],
"env": {
"FUB_API_KEY": "fka_your_api_key_here"
}
}
}
}HTTP Transport (for Claude.ai Custom Connectors)
This server also supports Streamable HTTP with OAuth 2.1 for use as a Claude.ai custom connector or any remote MCP client.
FUB_API_KEY=fka_your_key PORT=3000 node dist/index.js --httpOr use the startHttp export in your own server:
import { startHttp } from '@nerdsnipe-inc/follow-up-boss-mcp';
await startHttp({ port: 3000 });Any MCP-compatible client
Use the stdio transport command: npx -y @nerdsnipe-inc/follow-up-boss-mcp
Running from Source
git clone https://github.com/nerdsnipe-inc/follow-up-boss-mcp
cd follow-up-boss-mcp
npm install
# Development (no build needed)
FUB_API_KEY=fka_your_key npx tsx src/index.ts
# Build and run
npm run build
FUB_API_KEY=fka_your_key node dist/index.jsTool Reference
People (17 tools)
Tool | Description |
| List/search people with filtering by name, email, phone, tags, stage |
| Create a new person/contact |
| Get a single person by ID |
| Update an existing person |
| Delete (trash) a person by ID (safe mode blocked) |
| Check if a person already exists by email or phone |
| List unclaimed people in ponds |
| Claim an unclaimed person |
| Attach an externally-hosted file to a person (requires system creds) |
| Get a person attachment by ID |
| Update a person attachment |
| Delete a person attachment (safe mode blocked) |
| List relationships for a person |
| Create a relationship contact (Spouse, Brother, Partner, etc.) |
| Get a relationship by ID |
| Update a relationship contact |
| Delete a relationship (safe mode blocked) |
Appointments (15 tools)
Tool | Description |
| List appointments |
| Create an appointment |
| Get an appointment by ID |
| Update an appointment |
| Delete an appointment (safe mode blocked) |
| List appointment types |
| Create an appointment type |
| Get appointment type by ID |
| Update an appointment type |
| Delete an appointment type (safe mode blocked) |
| List appointment outcomes |
| Create an appointment outcome |
| Get appointment outcome by ID |
| Update an appointment outcome |
| Delete an appointment outcome (safe mode blocked) |
Deals (14 tools)
Tool | Description |
| List deals with filtering |
| Create a deal |
| Get a deal by ID |
| Update a deal |
| Delete a deal (safe mode blocked) |
| Attach a file to a deal (requires system creds) |
| Get a deal attachment by ID |
| Update a deal attachment |
| Delete a deal attachment (safe mode blocked) |
| List deal custom fields |
| Create a deal custom field |
| Get a deal custom field by ID |
| Update a deal custom field |
| Delete a deal custom field (safe mode blocked) |
Templates (12 tools)
Tool | Description |
| List email templates |
| Create an email template |
| Get an email template by ID |
| Update an email template |
| Merge an email template with a person's data |
| Delete an email template (safe mode blocked) |
| List text message templates |
| Create a text message template |
| Get a text message template by ID |
| Update a text message template |
| Merge a text message template with person data |
| Delete a text message template (safe mode blocked) |
Groups (12 tools)
Tool | Description |
| List all groups |
| List round robin groups |
| Create a group |
| Get a group by ID |
| Update a group |
| Delete a group (safe mode blocked) |
| List all teams |
| Create a team |
| Get a team by ID |
| Update a team |
| Delete a team (safe mode blocked) |
| List all team inboxes |
Inbox Apps (10 tools)
Tool | Description |
| Add a message to an inbox app conversation (requires system creds) |
| Update an inbox app message (requires system creds) |
| Add a note to an inbox app conversation (requires system creds) |
| Update an inbox app conversation status (requires system creds) |
| Get participants of an inbox app conversation (requires system creds) |
| Add a participant to a conversation (requires system creds) |
| Remove a participant from a conversation (requires system creds) |
| Install an inbox app for a user (requires system creds) |
| Deactivate an inbox app installation (requires system creds) |
| List inbox app installations (requires system creds) |
Automations (6 tools)
Tool | Description |
| List all Automations 2.0 automations (requires system creds) |
| Get an automation by ID (requires system creds) |
| List people in automations (requires system creds) |
| Get an automation-person entry (requires system creds) |
| Add a person to an automation |
| Update a person's automation status |
Ponds (6 tools)
Tool | Description |
| List all ponds |
| Create a pond |
| Get a pond by ID |
| Update a pond |
| Delete a pond (safe mode blocked) |
| List all timeframes |
Webhooks (6 tools)
Tool | Description |
| List all webhooks (requires system creds) |
| Create a webhook (requires system creds) |
| Get a webhook by ID (requires system creds) |
| Update a webhook (requires system creds) |
| Delete a webhook (safe mode blocked, requires system creds) |
| Get events for a webhook (requires system creds) |
Pipelines (5 tools)
Tool | Description |
| List all pipelines |
| Create a pipeline |
| Get a pipeline by ID |
| Update a pipeline |
| Delete a pipeline (safe mode blocked) |
Custom Fields (5 tools)
Tool | Description |
| List all custom fields |
| Create a custom field |
| Get a custom field by ID |
| Update a custom field |
| Delete a custom field (safe mode blocked) |
Stages (5 tools)
Tool | Description |
| List all pipeline stages |
| Create a pipeline stage |
| Get a stage by ID |
| Update a stage |
| Delete a stage (safe mode blocked) |
Tasks (5 tools)
Tool | Description |
| List tasks |
| Create a task |
| Get a task by ID |
| Update a task |
| Delete a task (safe mode blocked) |
Convenience (5 tools)
Tool | Description |
| Remove a single tag without affecting others |
| Look up a person by email address |
| Find all people with one or more tags |
| Update multiple people with the same changes |
| Discover tags used in your account |
Email Marketing (5 tools)
Tool | Description |
| List email marketing events |
| Create email marketing events |
| List email marketing campaigns |
| Create an email marketing campaign |
| Update an email marketing campaign |
Notes (5 tools)
Tool | Description |
| List notes, optionally filtered by personId |
| Create a note on a person |
| Get a note by ID |
| Update a note |
| Delete a note (safe mode blocked) |
Action Plans (4 tools)
Tool | Description |
| List all action plans |
| List people assigned to action plans |
| Add a person to an action plan |
| Update a person's action plan status |
Calls (4 tools)
Tool | Description |
| List calls |
| Log a call for a person |
| Get a call by ID |
| Update a call record |
Reactions (4 tools)
Tool | Description |
| Get reactions for an item |
| Create a reaction on an item |
| Delete a reaction (safe mode blocked) |
| Get threaded replies for an item |
Events (3 tools)
Tool | Description |
| List events with filtering |
| Create a new event |
| Get a single event by ID |
Text Messages (3 tools)
Tool | Description |
| List text messages (requires at least one filter) |
| Log a text message from a third-party SMS system |
| Get a text message by ID |
Users (3 tools)
Tool | Description |
| List all users/agents in the account |
| Get a user by ID |
| Delete a user (safe mode blocked) |
Smart Lists (2 tools)
Tool | Description |
| List all smart lists |
| Get a smart list by ID |
Identity (2 tools)
Tool | Description |
| Get account information for the API key |
| Get the current authenticated user |
Meta (2 tools)
Tool | Description |
| Get information about this MCP server |
| Get usage tips and examples |
Example Prompts
Contact management:
"Find all contacts tagged 'VIP' and add a note: 'Spoke with client, interested in Q1 listings'"
"Create a new contact: John Doe, john@example.com, (555) 123-4567, tagged 'Buyer'"
"Search for people with email domain @gmail.com in the Hot stage"
Deals and pipelines:
"Show me all deals in the Seller pipeline worth over $800,000"
"Create a deal for contact 5678 named 'Main St Listing' at $650,000 in stage 3"
"Update deal 123 to set the price to $725,000 and close date to March 15"
Tasks and appointments:
"Create a task for contact 1234: 'Send listing presentation' due tomorrow"
"Schedule an appointment with Jane Smith on Friday at 2pm — type 'Buyer Consultation'"
"List all appointments this week that don't have an outcome set"
Automation and follow-up:
"Add everyone tagged 'webinar-march' to the Post-Webinar Follow-Up action plan"
"Find all people in the 'New Lead' stage who have no tasks and create a call task for each"
"Remove the tag 'do-not-contact' from person 9876"
Bulk operations:
"Set the stage to 'Inactive' for all people tagged 'old-lead-2022'"
"Find all people assigned to agent Sarah and list their current stages"
Environment Variables
Variable | Required | Default | Description |
| Yes | — | Your Follow Up Boss API key (starts with |
| No |
| Set to |
| No | — | Registered system name (for system-restricted endpoints) |
| No | — | Registered system key (pair with |
Development
Scripts
npm run build # compile TypeScript to dist/
npm run dev # watch mode with tsx
npm test # run all tests with vitest
npm run test:watch # watch mode for tests
npm run test:coverage # coverage report
npm run prepublishOnly # build + test (runs before npm publish)Project structure
follow-up-boss-mcp/
├── src/
│ ├── index.ts # server entry point (stdio + HTTP transport)
│ ├── client.ts # HTTP client, config, error handling, translators
│ └── tools/
│ ├── people.ts
│ ├── deals.ts
│ ├── appointments.ts
│ ├── events.ts
│ ├── notes.ts
│ ├── calls.ts
│ ├── tasks.ts
│ ├── text_messages.ts
│ ├── users.ts
│ ├── smart_lists.ts
│ ├── action_plans.ts
│ ├── automations.ts
│ ├── templates.ts
│ ├── email_marketing.ts
│ ├── custom_fields.ts
│ ├── stages.ts
│ ├── appointments.ts
│ ├── webhooks.ts
│ ├── pipelines.ts
│ ├── groups.ts
│ ├── ponds.ts
│ ├── inbox_apps.ts
│ ├── reactions.ts
│ ├── convenience.ts
│ ├── identity.ts
│ └── meta.ts
├── tests/
│ ├── helpers.ts
│ ├── client.test.ts # 59 tests
│ ├── server.test.ts # 38 tests
│ └── tools/
│ ├── people.test.ts
│ ├── deals.test.ts
│ └── convenience.test.ts
├── bin/
│ └── follow-up-boss-mcp.js
├── dist/ # compiled output
└── package.jsonAdding a new tool
Find the module file under
src/tools/that matches the resource (or create a new one).Add a
ToolDefentry withname,description,inputSchema, andhandler.Export it from the module array and import it in
src/index.ts.Add a test in
tests/tools/.Run
npm testto confirm green.
API translators
The FUB API uses non-standard field names in some places. The client.ts file includes translators that map natural MCP args to FUB's expected format:
translateCallArgs—direction→isIncoming,notes→notetranslateDealArgs—personId→peopleIds[],value→pricetranslateDealCustomFieldArgs—name→label,options→choicestranslateRelationshipArgs—relationshipType→typetranslateAppointmentArgs—startTime/endTime→start/end,appointmentTypeId→typeId,personId→invitees[]
Troubleshooting
Error | Cause | Fix |
| Missing env var | Add |
| Left the default value | Replace with your real API key from FUB admin |
| Invalid or expired API key | Re-copy your key from FUB → Admin → API |
| Accessing system-restricted endpoint without system creds | Add |
Tool not found | Safe mode is on | Set |
| Using | The translators handle this automatically — check you're passing args correctly |
| FUB rate limit hit | Built-in retry with backoff — reduce request frequency if persistent |
Server not showing in Claude Desktop | Config file syntax error or wrong path | Validate JSON, check file path for your OS |
Contributing
Issues and PRs welcome. Please open an issue first for significant changes.
Fork the repo
Create a feature branch
Add tests for your change
Run
npm test— all must passSubmit a PR
License
MIT
Related
GHL MCP Server — same pattern for GoHighLevel
Lofty MCP Server — same pattern for Lofty CRM
Available Tools
137 toolsaboutA
Get information about this MCP server, its author, and the projects behind it. Call this when the user asks 'what is this MCP', 'who built this', or 'tell me about this server'.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly communicates a read-only informational purpose with no side effects implied. While it doesn't specify return format or auth requirements, for a zero-parameter server-info tool this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The first sentence states the core purpose; the second provides usage triggers. Front-loaded and easily scannable.
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 extremely simple (no params, no output schema). The description fully covers what it does, when to use it, and enough behavioral context. There are no gaps given the tool's minimal 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 tool has zero parameters, so there is nothing to explain. The description correctly focuses on purpose and usage rather than parameter details.
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 information') and clearly identifies the resource: this MCP server, its author, and the projects behind it. It is clearly distinct from sibling tools that operate on domain data (people, deals, notes, 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?
The description explicitly states when to call the tool, listing exact user phrasings ('what is this MCP', 'who built this', 'tell me about this server'). It provides clear context and there are no alternative tools for this meta-purpose, so no exclusions are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
addPersonToActionPlanB
Add a person to an action plan
| Name | Required | Description | Default |
|---|---|---|---|
| personId | Yes | Person ID | |
| actionPlanId | Yes | Action plan ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. However, it only restates the tool's name without elaborating on side effects, idempotency, duplicate handling, or required permissions. It adds essentially no behavioral context beyond the obvious 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?
The description is a single sentence that is front-loaded and free of unnecessary words. It efficiently conveys the core purpose without any waste, earning the highest conciseness score.
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 of the tool and full schema coverage, the description is minimally adequate. However, it lacks any context on return values, duplicate behavior, or when to use this versus related tools, leaving gaps for an agent to make fully informed decisions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters documented as 'Person ID' and 'Action plan ID'. The description adds no additional parameter meaning beyond the schema, 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 'Add a person to an action plan' uses a specific verb ('Add') and clearly identifies the resource (person) and target (action plan). It distinguishes from sibling tools like addPersonToAutomation by explicitly naming the action plan context.
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 like updateActionPlanPerson or listActionPlansPeople. There is no mention of prerequisites, context, or when an add operation is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
addPersonToAutomationB
Add a person to an automation
| Name | Required | Description | Default |
|---|---|---|---|
| personId | Yes | Person ID | |
| automationId | Yes | Automation ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral details but does not. It gives no information about side effects, idempotency, or requirements (e.g., whether the person/automation must exist). The description is essentially a bare statement of intent.
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 unnecessary words. It clearly communicates the core purpose and 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?
The tool is simple but lacks critical context. Without annotations or output schema, the description should clarify expected behavior (e.g., what happens if the person is already in the automation, or whether it creates a new relationship). The minimal text leaves gaps for the 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 description coverage is 100% (both personId and automationId have descriptions), so the baseline is 3. The description adds no additional semantic context beyond the parameter names and IDs, but it also does not need to since the schema is sufficient.
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 'Add a person to an automation' uses a specific verb and resource, clearly distinguishing it from sibling tools like addPersonToActionPlan and updateAutomationPerson. It directly states the operation without ambiguity.
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 over alternatives, nor any prerequisites or conditions. The description only restates the action, leaving the agent without context on when 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.
bulkUpdatePeopleA
Update multiple people with the same changes. Rate-limited to stay within FUB's 25 PUTs per 10 seconds. Returns results for each person.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Array of person IDs to update | |
| updates | Yes | Fields to update on each person (same fields as updatePerson: tags, stage, assignedTo, etc.) | |
| mergeTags | No | Merge tags instead of replacing |
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 two useful behavioral traits: rate limiting (25 PUTs per 10 seconds) and that results are returned per person. However, it does not address potential partial failures, atomicity, side effects beyond the update, or authentication requirements. For a mutation tool with no annotations, this is a moderate level of 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 two sentences with no filler. The first sentence front-loads the core action, the second provides essential behavioral constraints (rate limit and output). Every word earns its place, and the structure is clean and scannable.
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 no output schema, the description compensates by stating that results are returned for each person, giving the agent an idea of the response shape. It also explains the rate limit, which is crucial for bulk operations. However, it could be more explicit about partial-failure handling and that updates are applied identically across all IDs. Still, given the simple parameter set and high schema coverage, the description is largely sufficient.
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 (ids, updates, mergeTags), including a note that updates mirrors updatePerson fields. Since schema coverage is high, the description adds minimal extra meaning beyond the schema. It reinforces 'same changes' but does not introduce new parameter details, 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 starts with a specific verb and resource: 'Update multiple people with the same changes.' This clearly distinguishes it from single-person update tools like updatePerson (a sibling) by emphasizing 'multiple' and 'same changes.' The purpose is unambiguous and immediately scopes the 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 clearly implies the use case: when you need to apply identical changes to multiple people at once, rather than repeatedly calling updatePerson. It also mentions rate limiting, which is a practical consideration. However, it does not explicitly state when not to use this tool (e.g., for heterogeneous updates) or explicitly name alternatives, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
checkDuplicateB
Check if a person already exists by email or phone
| Name | Required | Description | Default |
|---|---|---|---|
| No | Email to check | ||
| phone | No | Phone to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It fails to disclose the return format (e.g., boolean), OR/AND semantics when both parameters are provided, or edge-case behavior such as case sensitivity or multiple matches.
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 redundant words. Every part contributes to the core purpose, making it 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?
Despite being a simple tool, the lack of any output schema or return-type explanation leaves a significant gap. The description does not specify what 'check' returns, nor does it cover parameter combination rules, so the agent is left uncertain about invocation results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters. The description adds an 'or' implication, but does not clarify whether at least one parameter is required or how combining them behaves, staying at 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?
The description clearly states the tool checks for existing persons by email or phone, using a specific verb and resource. It distinguishes this from sibling tools like getPersonByEmail by focusing on the existence check rather than retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like getPersonByEmail or searchPeopleByTag. The description only states the function, without exclusions, prerequisites, or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claimPersonB
Claim an unclaimed person
| Name | Required | Description | Default |
|---|---|---|---|
| personId | Yes | Person ID to claim |
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 states 'Claim an unclaimed person', implying a state change, but does not reveal what claiming entails (e.g., assignment to current user), whether it fails if the person is already claimed, idempotency, or permission requirements. This is insufficient for a state-changing 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 with no filler, clearly front-loading the purpose. It is appropriately sized for a simple one-parameter tool and 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 tool with no annotations and no output schema, the description is too terse. It does not explain the effect of claiming, provide usage context, or clarify what the caller should expect. The one-line purpose leaves too much implicit for an AI agent to use it 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?
The schema already describes personId as 'Person ID to claim' with 100% coverage. The description adds no additional meaning about the parameter beyond the schema, so it meets the baseline of 3 but does not exceed it.
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 'claim' with a clear resource 'unclaimed person', which distinguishes it from siblings like createPerson, updatePerson, or listUnclaimed. It concisely conveys the action and target, making the tool's purpose immediately evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention related tools like listUnclaimed, nor does it explain that claiming typically follows listing unclaimed people, and there are no exclusions or preconditions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createAppointmentA
Create an appointment. FUB uses start/end (not startTime/endTime), typeId/outcomeId (not appointmentTypeId/appointmentOutcomeId), and invitees:[{type:'person'|'user',id}].
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End ISO 8601 (required) | |
| start | Yes | Start ISO 8601 (required) | |
| title | Yes | Appointment title (required) | |
| allDay | No | ||
| typeId | No | Appointment type ID | |
| invitees | No | Array of {type:'person'|'user', id:int} | |
| location | No | Location | |
| outcomeId | No | Appointment outcome ID | |
| createdById | No | Creator user ID (admin only) | |
| description | No | Description |
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 platform-specific naming conventions that prevent errors and clarifies the invitees structure. However, it does not mention side effects, permission requirements, or return behavior, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single well-structured sentence. It is front-loaded with the core purpose and immediately provides the most important usage caveats. No redundant 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 10-parameter create tool with no output schema, the description covers the most error-prone naming conventions but omits return value, permissions, and error behavior. It is adequate for basic usage but not fully complete for an agent to invoke confidently in all contexts.
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 (90%), so baseline is 3. The description adds value by warning against incorrect field names (startTime/endTime, appointmentTypeId/appointmentOutcomeId) and reiterating the invitees shape. It does not address the one undocumented parameter (allDay) or provide deeper semantics beyond what the schema already offers.
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 appointment' with a specific verb and resource. It also provides critical naming conventions (start/end, typeId/outcomeId, invitees format) that distinguish this tool from similar create tools and prevent common mistakes.
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 does not mention any exclusions or alternative tools to prefer in certain scenarios. The naming hints are about parameter usage, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createAppointmentOutcomeA
Create an appointment outcome
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Outcome name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states only that it creates an appointment outcome, with no mention of side effects, permissions, return values, or failure modes, leaving significant behavioral ambiguity.
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, front-loaded sentence with no unnecessary words. For a tool with one parameter, this is appropriately sized and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema), the description is minimally viable but lacks context about return values or usage scenarios. The absence of annotations and output schema means the description could have been more informative about expected 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?
The input schema already specifies the required 'name' parameter with description 'Outcome name', so schema coverage is 100%. The description adds no additional parameter semantics beyond the schema, meeting the baseline for fully documented 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 uses the specific verb 'Create' and the resource 'appointment outcome', clearly distinguishing it from sibling tools like listAppointmentOutcomes and updateAppointmentOutcome. It is not a tautology and precisely states the 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?
The description provides no explicit guidance on when to use this tool versus alternatives. The creation semantics are implied by the verb 'Create', but no exclusions or alternative tool suggestions are given, so usage context is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createAppointmentTypeC
Create an appointment type
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Type name |
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, but it only states the action without any side effects, permissions, or default settings. It does not mention what happens upon creation (e.g., whether the type is immediately available, or if additional configuration is required).
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, which is concise, but it essentially restates the tool name without adding structure or context. It is not verbose, but also not particularly informative.
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 create operation with one parameter and no output schema, the description is minimally viable but leaves gaps such as name uniqueness or length constraints. It provides the essential action, but no additional context about expected behavior or return values.
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 the only parameter 'name' with a description ('Type name'), so schema coverage is 100%. The tool description adds no extra meaning beyond what the schema already provides, so a 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 'Create an appointment type' uses a specific verb ('Create') and resource ('appointment type'), clearly distinguishing it from siblings like updateAppointmentType or listAppointmentTypes. It does not elaborate on what an appointment type is, but the core purpose is 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?
There is no guidance on when to use this tool versus alternatives such as updateAppointmentType or createAppointment. No prerequisites or conditions (e.g., whether appointment types must be unique) are mentioned, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createCallA
Log a call for a person. FUB expects isIncoming (boolean) and note (singular).
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Call note | |
| phone | No | Phone number on the call | |
| userId | No | User who made the call | |
| outcome | No | Call outcome | |
| duration | No | Call duration in seconds | |
| personId | Yes | Person ID | |
| toNumber | No | Destination number | |
| fromNumber | No | Originating number | |
| isIncoming | No | true = inbound, false = outbound | |
| recordingUrl | No | Recording URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Log a call' which implies creation, but does not describe side effects, required permissions, or failure behavior. The FUB expectation is an API detail, not a behavioral trait.
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 short sentences, front-loaded with the primary purpose and then a key parameter expectation. Every word earns its place with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation tool with no annotations or output schema, the description is minimal. It conveys the core purpose and a critical expectation, but omits other behavioral context like return values, prerequisites, or potential errors. It is adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds extra value by highlighting that isIncoming and note are expected by FUB, and that note should be singular. This provides semantic guidance beyond the schema descriptions.
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 action and object: 'Log a call for a person.' This is specific and distinguishes it from sibling tools like getCall, updateCall, and listCalls. The additional note about FUB expectations further clarifies the intent.
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 given on when to use this tool versus alternatives. There is no mention of using updateCall for modifying existing calls, and the FUB expectation note is about parameter format rather than usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createCustomFieldC
Create a custom field
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Field name | |
| type | Yes | Field type (text, number, dropdown, etc) | |
| options | No | Options for dropdown fields |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral transparency. The phrase 'Create a custom field' only implies a write operation but does not clarify side effects, permissions required, uniqueness constraints, or whether dropdown options are required for certain types.
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 no wasted words, fitting the tool's simplicity. It is front-loaded, but it is a phrase rather than a full sentence, which slightly reduces 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 lack of annotations and output schema, the description leaves out critical context such as the entity type (person, deal, etc.) the custom field belongs to, uniqueness expectations, and how it relates to sibling tools like createDealCustomField. This is insufficient for an agent to safely select and invoke the tool among many similar create operations.
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 parameters (100% coverage) with descriptions for each, so the description does not need to add parameter semantics. The schema already explains 'name', 'type', and 'options', and the description adds no extra meaning beyond that.
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 (custom field), making the core purpose unambiguous. However, it does not differentiate this tool from the sibling 'createDealCustomField', which might also create a custom field but for deals specifically.
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 createDealCustomField or updateCustomField. There are no indications of prerequisites, target entity (e.g., person vs. deal), 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.
createDealB
Create a deal. FUB expects peopleIds (array) and price (number). name + stageId required.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Deal name | |
| price | No | Deal price | |
| stageId | Yes | Stage ID (required) | |
| userIds | No | Assigned user IDs | |
| peopleIds | No | Person IDs on the deal | |
| description | No | Deal description | |
| orderWeight | No | Sort order weight | |
| possessionDate | No | ||
| teamCommission | No | ||
| agentCommission | No | ||
| commissionValue | No | ||
| dueDiligenceDate | No | ||
| projectedCloseDate | No | Projected close date | |
| earnestMoneyDueDate | No | ||
| finalWalkThroughDate | No | ||
| mutualAcceptanceDate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'FUB expects peopleIds and price', which hints at backend requirements, but does not disclose side effects, permissions needed, irreversibility of creation, or return value/response format. For a mutation tool, 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 two short sentences with a clear front-loaded purpose statement. Every word earns its place: it states the action, highlights key API expectations, and lists the required fields. No fluff or redundant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 16 parameters, no output schema, and no annotations, this description is too sparse. It does not explain return values, error conditions, authentication expectations, or the meaning of the many commission/date fields. The description is minimally viable but leaves substantial gaps for a complex endpoint.
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 value by noting that FUB expects peopleIds and price, which are not in the required schema but may be operationally important. However, schema coverage is only 50% and the description only highlights two of the many undocumented parameters (possessionDate, commissions, etc.), so it only partially compensates for the schema's 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 opens with 'Create a deal.' which is a specific verb+resource statement that clearly differentiates this tool from siblings like updateDeal, getDeal, and listDeals. It also adds critical requirement details ('name + stageId required'), reinforcing the creation purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for creating deals, but it does not explicitly say when to use it versus alternatives like updateDeal for modifications or getDeal for retrieval. It provides no exclusionary guidance ('if you need to modify, use updateDeal'), so the usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createDealAttachmentA
Attach an externally-hosted file to a deal. "Restricted - Registered Systems Only": requires FUB_SYSTEM + FUB_SYSTEM_KEY env vars.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | Yes | File URI | |
| dealId | Yes | Deal ID | |
| fileName | Yes | File name | |
| fileSize | No | File size |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It discloses a critical authentication requirement (FUB_SYSTEM + FUB_SYSTEM_KEY env vars) and clarifies that the file is 'externally-hosted' (meaning it references a URI rather than uploading content). This adds meaningful behavioral context beyond the basic action, though it stops short of describing success/error responses 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 two sentences, front-loaded with the core action and quickly followed by the key restriction. Every word earns its place, achieving clarity without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 4-parameter tool with a clear purpose and an explicit auth restriction, the description is reasonably complete. It explains the key constraint (env vars) and the external hosting model, and the schema covers parameters. It does not describe return values, but since there is no output schema and the tool is a straightforward create action, the description provides enough context for an agent to select and invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a brief description (e.g., 'File URI', 'Deal ID', 'File name'). The description adds little beyond these schema definitions, except for the context that the file is externally hosted, which relates to the uri parameter. Since the schema already documents all parameters, a 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 states a specific action: 'Attach an externally-hosted file to a deal.' The verb 'attach' is clear, the resource is 'a deal', and the object is an 'externally-hosted file'. This distinguishes it from sibling tools like createPersonAttachment, getDealAttachment, and updateDealAttachment by scope and 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?
The description implies when to use the tool (when attaching an externally-hosted file to a deal) and provides a clear constraint ('Restricted - Registered Systems Only'). However, it does not explicitly mention when not to use it or name alternative tools like createPersonAttachment for person attachments. The usage context is clear but lacks explicit exclusion or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createDealCustomFieldB
Create a deal custom field. FUB expects 'label' (not 'name') and 'choices' (not 'options').
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Field type: text, date, number, dropdown | |
| label | Yes | User-friendly field name | |
| choices | No | Dropdown choices (dropdown only) | |
| readOnly | No | ||
| hideIfEmpty | No | ||
| isRecurring | No | ||
| orderWeight | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only notes the API's naming expectations for 'label' and 'choices' but does not disclose mutation side effects, required permissions, or response behavior. For a create 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?
Two concise sentences, front-loaded with the primary purpose and immediately followed by the key API gotcha. 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?
For a 7-parameter create tool with no annotations and no output schema, the description is too sparse. It lacks information about return values, conditional requirements (e.g., choices needed when type is dropdown), and the purpose of the remaining parameters, leaving the agent under-informed 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 meaningful semantics for two key parameters by clarifying the expected API names ('label' not 'name', 'choices' not 'options'). However, with only 43% schema coverage, it does not compensate for the four undocumented boolean/number parameters (readOnly, hideIfEmpty, isRecurring, orderWeight).
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 deal custom field, using a specific verb and resource. It distinguishes from sibling tools like createCustomField and updateDealCustomField by specifying 'deal' and '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?
No guidance is provided on when to use this tool versus alternatives. The description does not mention when to use createDealCustomField over createCustomField or listDealCustomFields, 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.
createEmCampaignB
Create an email marketing campaign
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | Campaign origin | |
| subject | Yes | Email subject | |
| bodyHtml | Yes | Email body HTML | |
| originId | No | Origin ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are not provided, so the description carries the full burden. The verb 'Create' implies a mutation but the description does not disclose permissions, side effects, idempotency, or what happens on success or failure. No additional behavioral context is given.
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 directly communicates the purpose. It contains no filler or redundant information, and every word 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?
The tool has multiple parameters and no output schema or annotations, yet the description provides only the basic purpose. It does not explain the creation process, parameter meanings beyond the schema, potential validations, or expected results, leaving significant 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?
The schema description coverage is 100%, with each parameter having a basic description (e.g., 'Email subject' and 'Email body HTML'). The tool description itself adds no parameter-level information, so the schema carries the weight, which justifies 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 action ('Create') and the resource ('an email marketing campaign'), making the tool's purpose unambiguous. It also distinguishes this tool from its siblings 'listEmCampaigns' and 'updateEmCampaign' by specifying the creation aspect.
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?
There is no guidance on when to use this tool versus alternatives, no mention of prerequisites or context, and no exclusions. The description simply states the action without any strategic usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createEmEventC
Create email marketing events
| Name | Required | Description | Default |
|---|---|---|---|
| events | Yes | Events array: [{type, email, timestamp}] | |
| campaignId | Yes | Campaign ID |
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 'Create' without any information about side effects, permissions, idempotency, or response behavior. This is a significant 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 a single, front-loaded sentence with zero waste. It is concise, but it could be slightly more structured with additional clauses, so it earns a 4 rather than a 5 due to its extreme 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?
The tool has no annotations, no output schema, and only a minimal description. It does not explain what constitutes an email marketing event, how it relates to campaigns, or any constraints beyond the schema. The schema partially covers parameters but lacks broader context, making this description inadequate 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?
Schema description coverage is 100%, with both 'campaignId' and 'events' having descriptions in the schema. The tool description adds no additional parameter meaning, so the baseline of 3 applies as the schema already provides the necessary semantics.
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 a specific verb 'Create' and resource 'email marketing events', which aligns with the tool name and distinguishes it from generic event tools like createEvent. However, it does not explicitly differentiate from sibling tools like createEmCampaign, though the context is sufficient for basic understanding.
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 given on when to use this tool versus alternatives such as createEvent or listEmEvents. There is no mention of prerequisites, campaign context, or exclusions, leaving the agent 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.
createEventC
Create a new event in FUB (lead event, property inquiry, etc)
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Event type (e.g. Registration, Property Inquiry, General Inquiry) | |
| person | No | Person data object | |
| source | No | Source of the event (e.g. website name) | |
| system | No | System identifier | |
| message | No | Event message | |
| pageUrl | No | URL of the page where event occurred | |
| campaign | No | Campaign tracking object | |
| property | No | Property data object | |
| pageTitle | No | Title of the page where event occurred | |
| occurredAt | No | ISO 8601 timestamp when event occurred | |
| description | No | Event description | |
| pageDuration | No | Time spent on page in seconds | |
| pageReferrer | No | Referrer URL | |
| propertySearch | No | Property search criteria |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description bears the full burden of disclosing behavioral traits. It only says 'create' which is inherent to the tool name, and offers no information about required fields despite the schema having zero required properties, potential side effects, auth needs, or response format. This is a significant transparency 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 a single sentence with no unnecessary words, making it immediate and easy to parse. It is appropriately concise for a simple statement of purpose, though it could include more substance while remaining 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?
With 14 parameters, zero required fields, no output schema, and no annotations, this description is insufficient to guide an agent on correct usage. It does not explain the relationship between parameters, the semantics of 'event' in FUB, or any operational constraints. The complexity of the schema demands more contextual information than a single sentence provides.
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 provides descriptions for all 14 parameters (100% coverage), so the baseline is 3. The tool description adds no parameter-specific meaning beyond the schema, so it neither enhances nor detracts from parameter understanding.
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 new event in FUB, with examples like 'lead event, property inquiry'. It uses a specific verb and resource, making the purpose understandable. However, it does not explicitly distinguish from sibling createEmEvent, so it falls short of a perfect score.
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 createEmEvent or createCall. The description simply states what it does without discussing prerequisites, contexts, or exclusions. This leaves the agent without decision-making support for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createGroupC
Create a group
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Group name | |
| userIds | No | User IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no behavioral details in the description, the agent is left completely in the dark about potential side effects, permissions, or error conditions. The description adds no transparency beyond the bare 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?
The description is extremely under-specified, consisting of only three words. While it is concise in length, it lacks necessary substance, making it ineffective rather than 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?
Given the tool's low complexity, a short description could suffice, but this one omits even basic context about what a 'group' is or what the operation entails. With no output schema and no annotations, the description fails to provide a complete picture 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 description coverage is 100%, so the input schema already documents both 'name' and 'userIds'. The description adds no parameter information, meeting the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a group' is essentially a tautology of the tool name 'createGroup'. It states the verb and resource but adds no distinguishing scope or details, failing to differentiate from sibling create tools like createPersonAttachment or createTeam.
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 context is provided about when to use this tool versus alternatives. The description neither states scenarios nor exclusions, leaving the agent without guidance on selecting this tool among many similar create operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createNoteB
Create a note on a person
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Note body/content | |
| userId | No | User ID who created the note | |
| personId | Yes | Person ID | |
| createdAt | No | ISO timestamp |
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 a note is created, without disclosing side effects, permission requirements, reversibility, or what happens to the note after creation.
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, front-loaded with the action and object. Every word is necessary, with 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?
Despite having 4 parameters and no output schema or annotations, the description does not explain return values, param relationships, or required vs optional fields. It is too minimal to fully guide an agent in a complex creation context.
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 descriptions cover 100% of parameters (body, userId, personId, createdAt), so the baseline is 3. The description adds no extra meaning about parameter semantics, merely contextualizing the note as being 'on a person'.
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 'Create a note on a person' clearly states the specific action (create) and resource (note) with a target (person), which distinguishes it from sibling tools like updateNote and createPersonAttachment.
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, nor does it mention prerequisites or exclusions. It lacks any contextual instructions for choosing createNote over similar create/list/update tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createPersonB
Create a new person/contact in FUB
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tags to apply | |
| price | No | Price point | |
| stage | No | Pipeline stage | |
| emails | No | Email addresses: [{value, type}] | |
| phones | No | Phone numbers: [{value, type}] | |
| source | No | Lead source | |
| lastName | No | Last name | |
| addresses | No | Addresses: [{street, city, state, code, type}] | |
| contacted | No | Whether person has been contacted | |
| createdAt | No | ISO timestamp for creation date | |
| firstName | No | First name | |
| sourceUrl | No | Source URL | |
| assignedTo | No | Assigned agent name | |
| background | No | Background info | |
| deduplicate | No | Check for duplicates before creating (query param) | |
| timeframeId | No | Timeframe ID | |
| collaborators | No | Collaborator user IDs | |
| assignedPondId | No | Assigned pond ID | |
| assignedUserId | No | Assigned user ID | |
| assignedLenderId | No | Assigned lender ID | |
| assignedLenderName | No | Assigned lender name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden of behavioral disclosure. It only says 'Create a new person/contact', which is the obvious action, and fails to mention permissions, duplicate handling, validation, error responses, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasteful words. However, for a tool with 21 parameters, it is somewhat under-sized, so it earns a 4 rather than a 5.
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 complex with 21 parameters and no output schema or annotations. The one-line description is far from complete, giving no sense of what the tool returns, what fields are essential, or how the many parameters relate.
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 descriptions for all 21 parameters, so the baseline is 3. The description adds no additional parameter context beyond what the schema already 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 tool's purpose with a specific verb ('Create') and resource ('person/contact in FUB'). It is unambiguous and distinguishes itself from sibling tools like updatePerson or createPersonAttachment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description simply states what it does without mentioning prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createPersonAttachmentA
Attach an externally-hosted file to a person. "Restricted - Registered Systems Only": requires FUB_SYSTEM + FUB_SYSTEM_KEY env vars.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | Yes | File URI | |
| fileName | Yes | File name | |
| fileSize | No | File size in bytes | |
| personId | Yes | Person ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It does add useful information about access restrictions and environment variables, but it does not describe what the operation does beyond 'attach', whether it creates a new record, or any side effects. There is no contradiction with annotations since none 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?
The description is two sentences, gets straight to the point, and every part earns its place. It states the core purpose first and then provides the critical access 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?
For a simple create operation with a fully documented schema, the description covers the essential context: what it does and the access restriction. It doesn't explain return values, but given no output schema, the absence is forgivable. The constraint about env vars is valuable and complete enough for 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 the schema already documents all four parameters. The description adds minimal parameter-specific context, aside from implying the 'uri' is an external file reference. This meets the baseline but doesn't enhance schema semantics.
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 (Attach) and the resource (externally-hosted file to a person), and it naturally distinguishes from sibling tools like getPersonAttachment and updatePersonAttachment by focusing on the create operation. The phrase 'externally-hosted file' adds specificity beyond a generic attach.
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 a notable usage constraint: 'Restricted - Registered Systems Only' and lists required environment variables. This gives clear context about when this tool can be used, though it doesn't explicitly name alternative tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createPipelineC
Create a pipeline
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pipeline name |
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, but it only states 'Create a pipeline.' It omits side effects, required permissions, idempotency, or return behavior, leaving the agent without crucial operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise, front-loaded sentence with no wasted words. It is appropriately brief, though it borders on under-specification, stopping just short of a tautology.
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 no output schema and no annotations, the description fails to explain what 'pipeline' means in context, what the response looks like, or any preconditions. It is too skeletal to be considered 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 input schema has 100% description coverage for the 'name' parameter ('Pipeline name'), so the schema already carries the semantic load. The description adds no additional parameter meaning, meriting 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 action ('Create') and the resource ('pipeline'), distinguishing it from sibling tools like updatePipeline and listPipelines. However, it lacks elaboration on what a pipeline represents in the domain, preventing a perfect score.
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 vs alternatives, such as updatePipeline for modifications or listPipelines for viewing. There are no exclusions, prerequisites, or contextual hints beyond the imperative verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createPondC
Create a pond
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pond name |
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 only states 'Create a pond' and does not mention side effects, permissions, idempotency, return values, or any other meaningful behavior beyond the obvious fact that it creates a resource.
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 short, but it is under-specified and restates the tool name, so it does not earn its place. It is not verbose, but the content is so minimal that it fails to provide useful structure or information beyond the name.
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 mutating tool with no annotations and no output schema, the description should provide more context about what happens when a pond is created or what the resulting state is. 'Create a pond' alone is insufficient for complete understanding of 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?
The input schema already fully describes the only parameter 'name' with 100% coverage, so the description does not need to add parameter meaning. It earns the baseline score of 3, as it neither adds nor detracts from the schema's clarity.
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 'Create a pond' is essentially a plain-language restatement of the tool name 'createPond', providing no additional detail beyond the action and resource. It is not vague, but it qualifies as a tautology since it simply restates what the name already conveys.
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?
There is no guidance on when to use this tool vs. alternatives like listPonds, getPond, or updatePond. No prerequisites, exclusions, or contextual hints are provided, leaving the agent without direction on selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createReactionB
Create a reaction on an item
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | Yes | Emoji reaction | |
| refId | Yes | Reference ID | |
| refType | Yes | Reference type (e.g. note, email) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, leaving the description to fully disclose behavioral traits. It only says 'Create a reaction' but does not mention whether duplicate reactions are allowed, whether existing reactions are replaced, what happens on error, or any required permissions. For a mutation tool, this is a significant lack of 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, clear sentence with no redundant words. It is front-loaded with the action and resource, and every word contributes to meaning. This is appropriately concise 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?
For a mutation tool with no annotations and no output schema, the description is too sparse. It does not explain return value, error behavior, or any side effects. The schema covers parameters, but the overall context is incomplete for an agent to invoke the tool with full understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (emoji, refId, refType all have descriptions), so the schema carries the semantic load. The description adds no additional parameter context, but per the rubric a baseline of 3 is appropriate when schema coverage is high.
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 a specific verb ('Create') and resource ('reaction on an item'), making the tool's purpose clear. Although 'item' is somewhat generic, the input schema's refType parameter clarifies that reactions are attached to items like notes or emails. No sibling tool has the same create action, so further differentiation is unnecessary.
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 getReactions for viewing existing reactions. There is no mention of prerequisites, intended use cases, or exclusion of certain scenarios. Users must 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.
createRelationshipA
Create a relationship contact (Spouse, Brother, Partner, etc.) for an existing person. The relationship is its own contact record linked to personId.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Relationship type (e.g. Spouse, Brother, Partner) | |
| emails | No | Email addresses [{type, value}] | |
| phones | No | Phone numbers [{type, value}] | |
| lastName | No | Last name of the relationship contact | |
| personId | Yes | Person ID this relationship is associated with | |
| addresses | No | Mailing addresses | |
| firstName | No | First name of the relationship contact |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the relationship is its own contact record linked to personId, which is a key structural behavior beyond the schema. However, with no annotations, the description leaves gaps: it does not mention response behavior, required conditions beyond personId, or any side effects (e.g., duplicate handling, permissions). For a create tool, this is adequate 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?
Two concise sentences, front-loaded with the action and purpose. The key behavioral note about being its own contact record is included without redundancy. 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?
Given 7 parameters, 100% schema coverage, and 1 required field, the description is mostly complete for a create tool. It explains the core concept and linkage, though it omits any mention of return value or error behavior. Since no output schema exists, a note on the returned object would elevate completeness, but the current context is sufficient for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds that personId links the relationship to an existing person, but this is already reflected in the schema ('Person ID this relationship is associated with'). No additional parameter meaning is provided, so the 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 action ('Create'), the resource ('relationship contact'), and the scope ('for an existing person') with concrete examples (Spouse, Brother, Partner). It distinguishes from createPerson by emphasizing the linkage to an existing personId and that the relationship is its own contact 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?
The description provides clear context for when to use this tool: when adding a relationship contact tied to an existing person. It implies that this is the alternative to creating a standalone person, but it does not explicitly name createPerson or state when not to use it, so it falls short of an explicit when/when-not listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createStageC
Create a pipeline stage
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Stage name | |
| pipelineId | No | Pipeline ID |
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 merely repeats the function name without disclosing any behavioral traits such as side effects, permissions, idempotency, or return values.
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 short ('Create a pipeline stage') but under-specified. While concise, it fails to include necessary context and reads as a tautology of the tool name, making it insufficiently informative for an agent.
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 sparse annotations, the description should provide more context about the stage's role in a pipeline, ordering, or required pipeline association. It lacks this completeness, leaving agent to infer critical information from the schema alone.
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 ('Stage name', 'Pipeline ID'), so the description need not add more. The tool description itself adds no additional parameter meaning, which aligns with the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a pipeline stage' clearly states the action (create) and the specific resource (pipeline stage). It differentiates from sibling tools like updateStage and listStages, and clarifies it's not creating a pipeline itself.
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 gives no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or relationships to other stage-related tools (e.g., getStage, updateStage).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createTaskB
Create a task
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Task name | |
| status | No | Task status | |
| dueDate | No | Due date ISO | |
| personId | No | Person ID | |
| assignedUserId | No | Assigned user ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of disclosing behavioral traits. It only states 'Create a task,' which implies mutation but offers no details about permissions, idempotency, duplicate handling, return values, or side effects. This is similar to the mid-calibration example where 'update' implied mutation but lacked necessary context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one short sentence) and front-loaded, but it is under-specified. While every word earns its place, the total content is inadequate for a tool with 5 parameters, making it not 'appropriately sized.' It is concise but not sufficiently informative, similar to the calibration note about under-specification not being true 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?
This is a mutation tool with no annotations, no output schema, and 5 parameters. The description provides only 'Create a task,' which does not explain behavior, return values, or usage context. Even though the schema fully documents parameters, the tool's overall context is incomplete given the absence of safety annotations and the need for behavioral clarity.
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% (all 5 properties have descriptions), so the schema carries the parameter documentation. The tool description itself adds no parameter-level meaning. Per the calibration rules, baseline is 3 with high coverage, and there is no reason to deviate.
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 'Create a task' uses a specific verb and resource, clearly distinguishing it from sibling tools like listTasks, updateTask, and getTask. It unambiguously states the tool's core function, so it fully satisfies the purpose clarity criterion.
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 exclusions, prerequisites, or clarify how it differs from similar creation tools like createNote or createAppointment. There is no guidance at all, making this a 'no guidance' case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createTeamC
Create a team
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Team name | |
| description | No | Team description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. 'Create a team' only indicates a creation operation; it does not mention idempotency, potential errors, return values, or side effects, which 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 extremely concise, but it merely restates the tool name without earning its place. It provides no additional information beyond the name 'createTeam', making it an under-specification rather than effective 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 lack of annotations and output schema, the description should provide more context about the creation result, duplicates, or related operations. The current description is too minimal for a create tool, even with a simple two-parameter schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear descriptions for both 'name' and 'description'. The tool description adds no parameter information, so the baseline score of 3 is appropriate as the schema already handles parameter semantics.
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 'Create a team' uses a clear verb+resource structure, stating exactly what the tool does. It is distinct from sibling tools like updateTeam or getTeam due to the create verb, but it doesn't add extra context about what constitutes a team in this system.
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?
There is no guidance on when to use this tool versus alternatives like updateTeam or listTeams. No prerequisites, scenarios, or exclusions are mentioned, leaving the agent to infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createTemplateC
Create an email template
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Email body HTML | |
| name | Yes | Template name | |
| subject | Yes | Email subject |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It provides none: no mention of permissions, idempotency, return values, or side effects. It merely restates the tool's purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise as a single sentence, but it is under-specified, lacking the necessary context for a tool description. It is not appropriately sized; it's closer to a tautology than a helpful description.
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 should provide more context about behavior and usage. For a simple create operation, it's minimal but complete only in the most literal sense.
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 clear descriptions. The tool description adds no additional parameter semantics, so the baseline 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 'Create an email template' uses a specific verb ('create') and a specific resource ('email template'), clearly distinguishing it from sibling tools like createTextMessageTemplate. The purpose is immediately obvious.
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 (e.g., createTextMessageTemplate or mergeTemplate). No context, 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.
createTextMessageA
LOG a text message that was already sent by your registered third-party SMS system. This endpoint does NOT actually deliver an SMS — FUB only records it. "Restricted - Registered Systems Only": requires FUB_SYSTEM + FUB_SYSTEM_KEY env vars.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Message body | |
| personId | Yes | Person ID | |
| toNumber | No | Recipient phone number | |
| fromNumber | No | Sender phone number | |
| isIncoming | No | true = inbound to your user; default false | |
| externalUrl | No | Link to view the original message in your system | |
| externalLabel | No | Label shown to the user (e.g. 'My SMS App') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden. It discloses that the tool only records, does not deliver, and requires specific environment variables ('FUB_SYSTEM + FUB_SYSTEM_KEY'). This gives important behavioral context about side effects and restrictions, though it does not detail return values or error conditions.
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: the first states the core function, the second adds critical non-delivery and auth restrictions. Every sentence earns its place, and the main action is front-loaded. There is no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has moderate complexity with 7 parameters, all documented in the schema. The description provides essential operational context (logging vs sending, restricted access) that is not in the schema. Given no output schema, the description is reasonably complete, though it could mention the response type or success/failure 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?
The input schema already provides descriptions for all 7 parameters, achieving 100% coverage, so the baseline is 3. The tool description does not add parameter-specific guidance beyond the schema, but the overall purpose helps infer how parameters like 'toNumber' and 'fromNumber' are 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 uses the specific verb 'LOG' and names the resource 'a text message that was already sent by your registered third-party SMS system.' It clearly distinguishes from sending SMS by explicitly stating 'does NOT actually deliver an SMS' and from template tools like createTextMessageTemplate by focusing on recording an actual message.
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 clearly defines when to use this tool: to log an already-sent SMS from a third-party system. It explicitly states what it does not do ('does NOT actually deliver an SMS'), implying not to use it for sending. It does not name specific alternative tools, but the context is sufficient to guide selection among siblings like createCall or createNote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createTextMessageTemplateB
Create a text message template
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Message body | |
| name | Yes | Template name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It only states the action ('Create') without disclosing any behavioral details such as required permissions, idempotency, duplicate handling, or what happens on success. This is minimal and leaves the agent without important context for a mutation 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, clear sentence with no wasted words. It is appropriately concise for a simple create operation, though it could add value with minimal extra 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 create tool with no annotations, no output schema, and no usage differentiation, the description is inadequate. It fails to clarify how this template creation is distinct from other template tools, and does not mention required fields or any post-creation effect. The gaps in usage guidance and transparency hurt 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% for both parameters ('name' and 'body'), so the schema already provides the necessary meaning. The description adds no extra parameter semantics, but the baseline of 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: 'Create a text message template.' The verb 'create' is specific, and the resource 'text message template' clearly distinguishes it from generic template tools like createTemplate and from other template CRUD 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 is provided on when to use this tool versus alternatives. Given siblings like createTemplate, createTextMessage, and mergeTextMessageTemplate, the description does not clarify which scenario calls for this tool or mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createWebhookD
Create a webhook
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Callback URL | |
| event | Yes | Webhook event type |
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 says 'Create a webhook' without mentioning side effects, return values, required permissions, or error behavior, which 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 extremely short but under-specified. The single sentence merely restates the tool name and does not earn its place by adding useful information, making it more of a placeholder than a concise description.
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 and no annotations, and the description is minimal. It lacks critical context about webhook event types, URL expectations, and how it relates to sibling webhook tools, making it inadequate for a 2-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes both parameters (url as 'Callback URL' and event as 'Webhook event type'), so schema coverage is 100%. The description adds no additional parameter context, meeting the baseline but not exceeding it.
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 'Create a webhook' is essentially a tautology of the tool name 'createWebhook'. It states the action and resource but adds no specificity about the webhook's purpose or distinguishing characteristics.
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 like listWebhooks, getWebhook, updateWebhook, or getWebhookEvents. There is no mention of prerequisites, use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAppointmentA
Get an appointment by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Appointment ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must convey behavioral traits. The verb 'Get' clearly indicates a read-only operation, but it does not disclose potential error outcomes, response structure, or any special behaviors. Given the simplicity, this is a minor gap but the description is very 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 with no redundant words. It directly states the action and object.
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 getter with one parameter and no output schema, the description provides the essential purpose. However, it could be more complete by mentioning that it returns the full appointment object or noting the absence of side effects. Overall, it's adequate but not exhaustive.
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 already describes the only parameter `id` with 'Appointment ID' at 100% coverage. The description 'by ID' adds no semantic enrichment beyond 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 uses the specific verb 'Get' with a clear resource 'appointment' and identifies the primary parameter 'by ID'. This clearly distinguishes it from sibling tools like listAppointments, createAppointment, or updateAppointment.
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 instead of alternatives such as listAppointments or getAppointmentType. It lacks any mention of prerequisites, alternative approaches, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAppointmentOutcomeA
Get appointment outcome by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Outcome ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral disclosure burden. The verb 'Get' implies a read-only operation and no side effects, which is adequate. However, it does not specify what happens if the ID is not found (e.g., returns null or throws an error) or whether the full outcome object is returned.
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 filler or redundancy. It efficiently conveys the essence of the tool without unnecessary details, making it easy for an agent to parse.
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 single-ID lookup tool with no output schema, the description sufficiently conveys the operation and resource. It would benefit from explicitly stating what is returned (e.g., 'Returns the appointment outcome matching the given ID'), but the resource name and 'by ID' imply the return value well enough for a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full coverage for the single parameter 'id' with description 'Outcome ID'. The description merely restates 'by ID' without adding new semantic detail, such as format expectations or alternatives. Since schema coverage is 100%, the 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 operation ('Get'), the specific resource ('appointment outcome'), and the access pattern ('by ID'). This distinguishes it from sibling tools like listAppointmentOutcomes, which would retrieve multiple outcomes without a specific ID.
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 about when to use this tool versus alternatives. For example, it does not mention that listAppointmentOutcomes should be used for listing all outcomes, or that this tool is for single-record retrieval when the ID is already known. The 'by ID' clause is implicit context but not explicit usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAppointmentTypeA
Get appointment type by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Type ID |
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 correctly indicates a get (read) operation with no side effects, but it does not disclose return format, error behavior, or permissions. The minimal behavior is transparent, but additional context is lacking.
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 of six words. Every word contributes to the meaning, with no unnecessary information. Excellent structure and 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?
For a simple getter with one required parameter and no output schema, the description is adequate. It clarifies the resource and the method of lookup. It could mention that the full appointment type object is returned, but this is easily inferred from the tool name and 'get' semantics. Given the simplicity, this 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 coverage is 100% with the parameter described as 'Type ID'. The description mentions 'by ID', which aligns with the schema but does not add additional meaning beyond what the schema already provides. This meets 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 clearly states the verb ('get'), resource ('appointment type'), and scope ('by ID'). It effectively distinguishes itself from sibling tools like listAppointmentTypes, createAppointmentType, and updateAppointmentType, which have different actions.
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 ID, but it does not explicitly mention when to use it versus alternatives, nor does it provide exclusions or references to other tools. The context is clear from the phrase 'by ID', but the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAutomationB
Get an automation by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Automation ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey safety and behavioral traits. It only says 'Get an automation by ID' without disclosing what is returned, error handling (e.g., 404 if not found), permissions, or rate limits. This leaves the agent without sufficient transparency for a tool with no annotation support.
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, direct sentence with no fluff. It efficiently states the purpose without redundancy, making it appropriately concise for a simple getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool and lack of output schema/annotations, the description is incomplete. It does not mention return format, error behaviors, or authentication needs, which are critical for an agent to use it correctly in real 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?
The input schema fully describes the single 'id' parameter (100% coverage) as 'Automation ID', so the description adds no additional parameter semantics. Baseline of 3 is appropriate since the schema carries the semantic load.
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 'Get an automation by ID' uses a specific verb and resource, clearly indicating it fetches a single automation. It distinguishes itself from sibling tools like listAutomations and getAutomationPerson by focusing on the automation entity itself.
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 listAutomations or other automation-related tools. The description does not mention prerequisites, exclusions, or alternative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAutomationPersonA
Get an automation-person entry by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | AutomationPerson ID |
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 basic action and does not reveal any behavioral traits such as error handling (e.g., what happens if the ID does not exist), whether authentication is required, or whether it is a safe read operation. This minimal description lacks context beyond the literal function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no redundant information. It is appropriately sized for a simple get-by-ID tool and front-loads the core action. 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?
Given the tool's simplicity—one required parameter, no output schema, no nested objects—the description is largely complete for an agent to select and invoke it correctly. It does not explain what an 'automation-person entry' is, but the sibling tool names (e.g., addPersonToAutomation, listAutomationsPeople) provide context. A brief note about return behavior or non-existence handling could enhance completeness, but it is not strictly necessary for such a straightforward 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?
The input schema already provides a description for the 'id' parameter ('AutomationPerson ID') with 100% coverage. The tool description adds no additional meaning beyond confirming the lookup is by ID. Since schema coverage is high, 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 explicitly states 'Get an automation-person entry by ID', which uses a specific verb ('Get'), identifies the resource ('automation-person entry'), and specifies the access method ('by ID'). This clearly distinguishes it from siblings like listAutomationsPeople (listing) and addPersonToAutomation/updateAutomationPerson (mutations).
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 explicitly state when to use this tool vs alternatives. The parameter requirement ('by ID') implies it is for fetching a single specific record, contrasting with listing tools, but this is implied rather than stated. No exclusions or explicit guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCallA
Get a call by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Call ID |
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 merely says 'Get a call by ID' without disclosing response format, error behavior (e.g., 404 not found), or whether it returns the full call object. 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?
Single concise sentence that front-loads the purpose. Zero wasted words, appropriate for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature (one parameter, no output schema), the description is minimally adequate but lacks detail on return value or error cases. It meets the viability threshold but does not enrich beyond the bare 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% with the parameter 'id' described as 'Call ID'. The description repeats 'by ID' without adding extra meaning beyond the schema, so the baseline 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 'Get a call by ID' uses a specific verb and resource, clearly distinguishing this from siblings like listCalls, createCall, and updateCall. It precisely states the operation and the scope (by ID).
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. The context implies usage when a specific call ID is known, but no alternatives are named or exclusionary conditions given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCurrentUserA
Get the current authenticated user (GET /me)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of behavioral disclosure. It only restates the action and gives the endpoint, but does not explain the return format, error behavior (e.g., unauthenticated requests), or that it is a read-only operation. The 'get' verb and 'GET' method hint at safety, but deeper details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys both the action and endpoint. It is maximally concise without any wasted words, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is relatively complete. It tells the agent exactly what to expect: it gets the current authenticated user. However, it could be improved by noting the return type (e.g., 'returns the user object') or any authentication prerequisites, but these are largely implied by the tool's name and endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing to add. The schema coverage is 100% by virtue of having no params. The description does not need to explain any parameters, and the baseline for zero-param tools is 4, which is appropriate 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?
The description clearly states the function: 'Get the current authenticated user' with the explicit endpoint '(GET /me)'. The verb 'Get' is specific, and 'current authenticated user' distinguishes it from sibling tools like getUser (which implies fetching a user by ID) and listUsers (which lists multiple users).
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 does not mention that this is the appropriate tool when you need the current authenticated user's information without providing an ID, nor does it exclude alternatives like getIdentity or getUser. The context is implied by the name but not articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCustomFieldB
Get a custom field by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Custom field ID |
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, but it only states the action without any detail on return format, error behavior, permissions, or side effects. For a mutation or complex tool this would be a serious gap; for a simple getter it is still minimal disclosure, hence a low score.
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 front-loads the verb and resource. No wasted words, and it is appropriately sized for a simple parameterless-except-id getter. It fits the tool's simplicity perfectly.
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 single required parameter with full schema coverage and no nested objects or output schema, the description is adequate but has gaps. It never states what is returned (e.g., the custom field object) or how errors are handled (e.g., 404 if not found). With no annotations to fill in safety/behavior, the tool is not fully specified, but the simplicity keeps it at a minimum viable level.
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% since the only parameter 'id' has a description 'Custom field ID'. The description's 'by ID' confirms the schema but adds no new meaning. Baseline for high coverage is 3, and no extra semantic value is provided, so the score stays 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 'Get a custom field by ID' uses a specific verb with a clear resource and the method of lookup. It unambiguously distinguishes this getter from related list/create/update custom field tools, even though it doesn't explicitly differentiate from getDealCustomField which operates on a different resource.
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 like listCustomFields or getDealCustomField. There is no mention of prerequisite steps, typical use cases, or situations to prefer another tool. It is a bare statement with zero usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getDealB
Get a deal by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Deal ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not mention whether the operation is read-only, what happens on missing IDs, or what fields are returned. It essentially restates the tool name with 'by ID', adding no behavioral insight 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?
The description is a single, front-loaded sentence with no redundant words. It is concise but not overly terse to the point of being cryptic, fitting the simple nature of the 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?
Given the tool's simplicity, the description is minimally adequate, but it lacks detail about the return format, error behavior, and any required permissions. No output schema exists, so the description could have added more context, but it does not. For a simple get-by-ID, this is a borderline 3.
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 documents the single `id` parameter as 'Deal ID' (100% coverage). The description's 'by ID' merely reiterates the schema, adding no new semantic meaning. 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 'Get a deal by ID' clearly specifies a single-entity retrieval operation with verb 'get', resource 'deal', and scope 'by ID'. This distinguishes it from siblings like listDeals (bulk retrieval) and createDeal/updateDeal. The intent is 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?
No usage context is provided. The description does not state when to use this tool instead of listDeals or other getters, nor any prerequisites such as requiring a valid deal ID. This leaves the agent without guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getDealAttachmentA
Get a deal attachment by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Attachment ID |
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 'Get' with no additional context about return format, error behavior, permissions, or whether the actual file content or just metadata is returned. This is minimal for a read operation without annotation support.
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 zero waste. Every word contributes to conveying the tool's purpose, making it exceptionally concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-parameter getter, the description is adequate but lacks detail about the return value, such as whether it returns file content or metadata. Since there is no output schema to fill this gap, the description would benefit from mentioning what the response contains, though the tool's simplicity keeps the gap small.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with 'Attachment ID' clearly describing the 'id' parameter. The description's 'by ID' reinforces the schema but adds no new semantic meaning beyond what the schema already provides, matching the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a deal attachment by ID' clearly identifies the action (get), resource (deal attachment), and qualifier (by ID). It is distinct from sibling tools like createDealAttachment and getPersonAttachment, which differ by action or resource type.
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 deal attachment ID and need the attachment, but it does not explicitly state when to use it over alternatives or any exclusions. No alternative tools are mentioned, though the sibling context makes the use case reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getDealCustomFieldB
Get a deal custom field by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Field ID |
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. The verb 'Get' implies a read-only operation, which is a basic behavioral signal. However, it does not disclose error behavior, permission requirements, or return format, leaving some ambiguity for an agent.
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 communicates the tool's purpose. It is appropriately sized, front-loaded, and contains 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?
The tool is a simple getter with one parameter and no output schema, so the description is mostly adequate. However, it does not clarify the distinction between deal custom fields and other custom field types (e.g., person custom fields), nor does it describe the return object. This missing context could confuse an agent in this sibling-rich environment.
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 the parameter, describing 'id' as 'Field ID'. The description adds no additional meaning beyond the schema, so with high schema coverage 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 and resource: 'Get a deal custom field by ID'. It provides a specific verb and target. However, it does not differentiate from sibling tools like getCustomField or listDealCustomFields, so it lacks explicit sibling distinction.
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 gives no guidance on when to use this tool versus alternatives. It does not mention scenarios where listDealCustomFields or getCustomField would be more appropriate, nor any prerequisites. The only implied usage is that an ID is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getEventA
Get a single event by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Event ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals only that it retrieves an event, but says nothing about return format, error behavior (e.g., 404 if not found), or permission requirements.
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 zero wasted words. It immediately states the verb and resource, making it highly skimmable.
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 (one parameter) and complete schema coverage, the description is minimally sufficient. However, without an output schema or annotations, it lacks details about the return value shape and edge cases, leaving some ambiguity 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%: the id parameter is described as 'Event ID' in the schema. The description adds no additional semantic detail, but the schema fully documents the only parameter, 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?
The description 'Get a single event by ID' clearly states the action (get), the resource (event), and the scope (single by ID). It distinguishes from sibling tools like listEvents (which lists events) and createEvent (which creates).
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 event ID and need that one event. However, it provides no explicit guidance on when not to use it or alternatives (e.g., use listEvents to search/filter).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getGroupB
Get a group by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not explicitly state that this is a read-only operation, nor does it mention error handling, permission requirements, or what happens if the group does not exist. The verb 'get' implies safety but does not adequately disclose 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?
The description is a single concise sentence, front-loaded with the action and resource. There is zero filler or redundant information, making it highly concise and easy to 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?
For a simple get-by-ID tool, the description is minimally viable but has clear gaps. There is no output schema or annotations, and the description does not specify what the return value contains (e.g., the full group object) or behavior on not-found errors. However, given the simplicity of the tool, this may be adequate in context.
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 fully describes the single 'id' parameter (type: number, description: 'Group ID'), giving 100% schema description coverage. The description adds no additional parameter meaning beyond what the schema already provides, so the 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 'Get a group by ID' clearly states the action (get), resource (group), and search criterion (by ID). It distinguishes itself from sibling tools like listGroups and updateGroup by explicitly indicating a single-group retrieval by ID.
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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of exclusions. The description relies solely on the verb 'get' to imply usage, but does not reference sibling tools like listGroups or listRoundRobinGroups, which are the obvious comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIdentityA
Get identity/account information for the API key
| 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 must convey behavior. It indicates a read operation via 'Get' and specifies the API key context, but it does not explicitly state side-effect safety, response structure, or error behavior. It adds some context but lacks rich behavioral 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?
The description is a single focused sentence with no redundant words. It is appropriately concise for a simple, parameterless 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?
Given the tool's simplicity (no parameters, no output schema), the description sufficiently communicates its purpose and scope. It could mention specific fields returned, but 'identity/account information' adequately covers the value returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to clarify parameters; the schema already shows an empty object. No parameter information is missing.
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 specific verb 'Get' and identifies the resource as 'identity/account information for the API key', clearly distinguishing it from sibling tools like getCurrentUser by tying the data to the API key.
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 one needs identity/account info for the API key, but it does not explicitly state when to use this tool over alternatives like getCurrentUser or exclude other scenarios. No explicit guidance or alternative comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getNoteC
Get a note by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it does not state whether this is a read-only operation, potential errors, or special behaviors. The verb 'Get' suggests read-only, but no explicit disclosure is given.
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 directly states the tool's function with no unnecessary words. It is perfectly sized for the simplicity of the 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?
Without an output schema, the description should clarify what is returned, but it does not. It also lacks any details about error cases or permissions. For a simple getter, the description is minimal but incomplete given the absence of structured return information.
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 fully describes the only parameter 'id' with 'Note ID', achieving 100% schema coverage. The description does not add meaningful detail beyond the schema, 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 'Get a note by ID' clearly states the action (get) and the resource (note) with a specific identifier. It is not explicitly differentiated from sibling tools like listNotes, but the 'by ID' implies a single resource retrieval, which is clear enough.
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 such as listNotes or updateNote. The description simply states the action without any contextual hints or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPersonB
Get a single person by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Person ID | |
| fields | No | Comma-separated list of fields to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'Get a single person by ID,' which implies a read operation but does not disclose response structure, error handling, or the effect of the fields parameter. The agent has limited behavioral context beyond the verb 'get.'
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 succinct, front-loaded, and contains no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description should at least indicate what the response contains. It only states the action, not what is returned or potential error behaviors, leaving the tool under-specified 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?
The input schema fully describes both parameters (id and fields), so the description does not need to add much. The description adds no extra meaning beyond the schema, but the schema coverage is 100%, yielding 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 (get), resource (person), and scope (single by ID), which aligns with the tool's name and distinguishes it from sibling tools like listPeople and getPersonByEmail.
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 vs alternatives like getPersonByEmail or listPeople. There is no mention of prerequisites or exclusions, leaving usage context entirely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPersonAttachmentA
Get a person attachment by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Attachment ID |
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 restates the read action without mentioning return format, error behavior, permissions, or any side effects. This is minimal and fails to add context beyond the action itself.
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-loaded with the verb and resource. No filler or redundancy, earning full marks for 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?
The tool is simple with one parameter and no output schema. The description is adequate for a basic 'get by ID' but lacks explicit mention of return value or response structure. Given the low complexity, it is minimally sufficient 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 coverage is 100% (one parameter 'id' with description 'Attachment ID'). The description's 'by ID' matches the schema but adds no new meaning. Given high schema 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 'Get a person attachment by ID' clearly states a specific verb (Get), resource (person attachment), and method (by ID). It effectively distinguishes from sibling tools like createPersonAttachment and updatePersonAttachment, making the tool's function 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?
Usage context is implied by the name and description—use this tool when needing to retrieve a person attachment by its ID. However, there is no explicit guidance on when to prefer this over alternatives or any exclusions, so it stops at 'implied usage'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPersonByEmailA
Look up a person by email address. Returns the first matching contact.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address to look up |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It does add a key behavior: returning the first matching contact, which is not trivial. However, it lacks details about permissions, not-found behavior, or whether the result is a full person object. The verb 'look up' suggests a read operation, but this is implicit.
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 short, focused sentences with no redundant words. Every phrase earns its place: the lookup action, the identifier, the return behavior. It is an exemplary model of conciseness 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?
Given that this is a simple lookup tool with one fully documented parameter and no output schema, the description covers the essential aspects: what to provide (email) and what to expect (first matching contact). It does not mention return format, but 'contact' is sufficiently clear for most uses. The description is nearly complete, though a bit more detail about the return object would fully round it out.
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 already describes the email parameter with 100% coverage ('Email address to look up'), and the description adds little beyond that phrase. No additional parameter-level details are provided, so the description does not significantly enhance understanding of the parameter 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 uses a specific verb ('look up') and resource ('a person by email address'), clearly stating the tool's function. It also adds the behavior of returning the first matching contact, which distinguishes it from list-style tools like listPeople. The name and description together leave no ambiguity about purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when you have an email address and need a person), but it does not explicitly mention alternatives or exclusions. There is no guidance on when to use this over getPerson, checkDuplicate, or listPeople, so it relies on the name and reader inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPipelineA
Get a pipeline by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pipeline ID |
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. The verb 'Get' implies a read-only, non-mutating operation, but it does not disclose what happens when the ID is not found, whether authorization is required, or what the response structure is. This is minimally sufficient for a simple getter 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, front-loaded sentence with no redundant words. It fully serves its purpose without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, no output schema), the description is adequate but not complete. It does not specify the return value or any edge-case behavior, which would be expected since no output schema is present to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for the single 'id' parameter with a clear description. The description's 'by ID' reinforces the parameter's role but adds no additional semantics beyond what the schema already states.
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 ('pipeline'), and the selection criterion ('by ID'). It is concise and distinct from related tools like listPipelines or createPipeline, which are visible in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by ID' clearly indicates the tool is used when a specific pipeline ID is known, implying it is not for listing all pipelines. However, it does not explicitly name alternatives such as listPipelines, so it lacks an explicit exclusion or alternative reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPondA
Get a pond by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pond ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. The verb 'get' clearly indicates a read-only operation, but no other behavioral traits are mentioned, such as return format or error behavior on missing IDs. For a simple getter, this is minimal but not severely deficient.
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 zero filler. It efficiently conveys the exact operation and key qualifier, making it perfectly concise for a tool of this simplicity.
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 very simple (one required parameter, no output schema), and the description covers the core operation. However, it leaves out any mention of what is returned (the pond object) or how failures are handled. This is a minor gap, but complete enough for an agent to infer typical get-by-ID 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?
The input schema fully covers the single parameter 'id' with the description 'Pond ID' (100% coverage). The description's 'by ID' simply echoes the schema, adding no extra semantic context or constraints beyond what the schema already 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 'Get a pond by ID' clearly states the action (get) and resource (pond) with the key identifier (ID). It distinguishes itself from sibling tools like listPonds (which lists many) and createPond/updatePond (which mutate), leaving no ambiguity about its scope.
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 given on when to use this tool versus alternatives. The existence of listPonds implies a distinction, but the description does not articulate it. Usage is implied rather than directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getReactionsC
Get reactions for an item
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Item ID |
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 says 'Get reactions for an item' without disclosing return format, whether results are paginated, authentication needs, or any read-specific caveats. The behavior beyond the literal action is undefined.
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 is appropriately concise for a simple getter, though it could be slightly more informative 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?
With one parameter, no annotations, and no output schema, the description should clarify what 'reactions' means and what 'item' refers to. It leaves significant ambiguity and does not relate to any sibling tools or expected return values, making it incomplete for an agent to invoke confidently.
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 describes the sole parameter 'id' as 'Item ID' (100% coverage), so the baseline is 3. The description adds no extra meaning to the parameter, merely echoing the idea of an 'item' without elaboration on the type or format of the ID.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get reactions for an item' clearly identifies a 'get' operation targeting 'reactions', but the resource 'item' is vague and generic. It doesn't specify what type of item or distinguish it from sibling getters like getPersonAttachment or getThreadedReplies, so it falls short of a precise purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no exclusions, and no mention of prerequisites or context. The one-line description simply states the action 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.
getRelationshipB
Get a relationship by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Relationship ID |
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. The verb 'get' implies a read-only operation, but the description does not explain what happens if the ID is not found, what the response contains, or any side effects (e.g., marking something as read). 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, concise sentence that is front-loaded with the verb and resource. Every word earns its place, and there is no redundant or filler content.
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 there is no output schema, the description should explain what the tool returns or at least define what a 'relationship' is in this context. It does neither, leaving the agent to infer the return payload and relationship semantics. For a simple getter, this is an adequate skeleton but lacks necessary context to fully invoke 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?
The input schema already describes the only parameter ('id' as 'Relationship ID') with 100% coverage. The description adds no additional meaning beyond the schema, so the baseline of 3 applies; it neither enhances nor detracts.
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 'Get a relationship by ID' uses a specific verb ('get') and resource ('relationship'), with the scope clarified by 'by ID'. It clearly distinguishes from sibling tools like listRelationships, createRelationship, and updateRelationship, which have different actions.
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 listRelationships. There is no mention of prerequisites, exclusions, or direct comparisons, leaving usage to pure implication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSmartListB
Get a smart list by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Smart list ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only restates the action. It does not disclose side effects, authorization needs, or behavior when the ID is not found, offering no additional 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?
The description is a single, focused sentence without unnecessary words. It is appropriately sized for the tool's simplicity.
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 one parameter, the description conveys the essential functionality. The lack of an output schema creates slight ambiguity about the exact return structure, but the sibling tool pattern (e.g., listSmartLists, getNote) helps inference.
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 fully describes the only parameter 'id' as 'Smart list ID' (100% coverage). The description doesn't add any extra meaning, so the 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 'Get a smart list by ID' clearly specifies the verb (get), resource (smart list), and scope (by ID), which distinguishes it from sibling tool listSmartLists that lists all smart lists.
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 listSmartLists or other getters. There is no explicit context, exclusions, or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getStageA
Get a stage by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Stage ID |
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 only states the action and target, but does not mention return format, error behavior on missing ID, whether it can return null/404, or any authentication requirements. For a read operation, this is 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?
The description is a single, front-loaded sentence with zero wasted words. It states the action and target clearly without any redundant or off-topic content.
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 this is a simple single-parameter getter, the description is adequate for basic understanding. However, the lack of annotations and output schema means the description should ideally provide more context about return values or error handling. It is functional but not enriched.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides complete coverage for the single parameter 'id' with its own description ('Stage ID'). The tool description adds no additional semantic meaning beyond what the schema already states, so it meets the baseline but does not exceed it.
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 'Get a stage by ID' uses a specific verb ('Get') and resource ('stage') with a clear scoping mechanism ('by ID'). It clearly distinguishes from sibling tools like listStages, createStage, and updateStage by indicating this is a single-record retrieval 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 the tool should be used when you have a specific stage ID and need that stage's details, but it does not explicitly mention alternative tools like listStages for browsing or updateStage for modifying. The usage context is implied rather than explicitly contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTaskA
Get a task by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Task ID |
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 states 'Get', implying a read operation, but it does not disclose response format, error behavior, or any side effects. Minimal behavioral information beyond the verb itself.
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 sentence, no redundant words, and the key information (action + resource + scope) is front-loaded. 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?
The tool is extremely simple with one documented parameter, so the description is mostly adequate. However, there is no output schema and the description does not mention return format or failure behavior, leaving some ambiguity for the 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 fully documents the single 'id' parameter with description 'Task ID' (100% coverage). The description's phrase 'by ID' adds no additional meaning beyond what the schema already provides, so the 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') and resource ('task'), scoped by ID, which distinguishes it from sibling tools like listTasks and updateTask. It is specific and 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?
No explicit guidance is given about when to use this tool versus alternatives. Usage is implied by the name and the ID parameter, but the description lacks explicit exclusions or references to sibling tools such as listTasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTeamA
Get a team by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Team ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. 'Get' implies a read-only operation, but the description provides no additional information about error handling, response format, or behavior when the team is not found. It adds little beyond what the name already conveys.
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 zero filler. 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?
The tool is simple (one parameter, no output schema), and the description is minimally viable. However, since there is no output schema or annotations, a little more context about the return value or error behavior would improve completeness. As is, it leaves some ambiguity about what the response contains.
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% — the 'id' parameter is described as 'Team ID'. The description says 'by ID', which aligns but does not add extra semantic depth. Baseline of 3 is appropriate because the schema already documents the parameter 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 'Get a team by ID' clearly states a specific verb ('get'), resource ('team'), and scope ('by ID'). This effectively distinguishes it from siblings like listTeams (retrieve all teams), createTeam, and updateTeam.
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 clearly implies when to use this tool: when you have a team ID and need a single team. Alternatives are not explicitly named, but the context is obvious given the tool's name and the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTemplateA
Get an email template by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Template ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It only states the action ('Get an email template by ID') without describing what happens if the ID is not found, the return format, or any permissions/rate limits. This adds minimal value beyond what the name and input schema already convey.
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 unnecessary words. It efficiently communicates the essential purpose without redundancy, making it highly scannable for an AI agent.
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?
This is a simple getter with one parameter, no nested objects, and no output schema. The description is adequate for such a straightforward read operation, but it could be more complete by noting the response shape or likely error conditions. Given the absence of annotations and output schema, it sits at the minimal viable level.
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: the 'id' parameter is described as 'Template ID'. The description adds no further semantic detail beyond the parameter's existing description. Therefore, a baseline score of 3 is appropriate, as the schema fully documents the only 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 uses a specific verb 'Get' with a clear resource 'email template' and scope 'by ID'. This clearly distinguishes the tool from siblings like listTemplates (list all), createTemplate, updateTemplate, and mergeTemplate, while also separating it from getTextMessageTemplate by specifying 'email'.
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?
Usage is implied by the standard getter convention: retrieve a single template when you know its ID. No explicit when-to-use vs alternatives, exclusions, or prerequisites are provided. The description would be stronger if it mentioned that listTemplates is used for batch retrieval or search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTextMessageA
Get a text message by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Text message ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Get', implying a read operation, but provides no details on return format, error handling, 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?
The description is a single sentence with no filler, front-loaded with the action and resource. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-ID get, the description is functional but sparse. With no output schema, it does not explain what is returned, but the purpose is clear enough for basic 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?
The schema already documents the 'id' parameter with 100% coverage, and the description adds no additional meaning beyond what the schema provides. 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 retrieves a text message using its ID, using a specific verb and resource. It distinguishes from sibling tools like 'listTextMessages' by indicating a single retrieval by ID.
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 text message ID, but it does not explicitly state when to use this tool versus alternatives like 'listTextMessages' or 'createTextMessage'. No exclusions or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTextMessageTemplateB
Get a text message template by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Template ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It says 'Get' which implies a read-only operation, but provides no additional behavioral context such as error handling, permissions, or what happens if the template is not found.
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 unnecessary words. It is appropriately concise for the simplicity of the 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?
For a one-parameter, read-only lookup, the description is adequate but minimal. It does not describe the return value, which is not covered by an output schema, nor does it mention any edge cases or related tools. It meets the basic need but lacks extra context.
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 the 'id' parameter with a description ('Template ID'), and the schema coverage is 100%. The description's 'by ID' adds no further semantic value beyond what the schema already provides, so a 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 action ('Get') and the resource ('text message template') with the scope ('by ID'). This distinguishes it from sibling tools like listTextMessageTemplates (which lists) and getTemplate (which gets a different resource).
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 explicit guidance on when to use this tool versus alternatives. It implies usage when you have an ID, but does not mention when not to use it or reference siblings like getTemplate or listTextMessageTemplates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getThreadedRepliesC
Get threaded replies for an item
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Item ID |
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 'Get' and offers no information about return format, pagination, auth requirements, or side effects. This minimal disclosure does not meet the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It conveys the core purpose efficiently, making it 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?
With no output schema or annotations, the description must explain what the tool returns and under what conditions. It does neither, and the undefined 'item' leaves significant ambiguity for an agent trying to use the tool 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?
The schema has one parameter 'id' with 100% descriptive coverage ('Item ID'). The tool description adds nothing beyond the schema, 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 action ('Get') and resource ('threaded replies') with a scope ('for an item'). It is distinct from sibling getters by focusing on replies, but the ambiguous term 'item' prevents a perfect score.
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 vs alternatives, prerequisites, or exclusions. The usage is only implied by the tool name, which is insufficient for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getUserA
Get a user by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID |
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 mentioning return format, error handling, permissions, or other behavioral traits. This is a significant gap for a tool with no annotation support.
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 zero wasted words. It efficiently communicates the core 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 simple getter with one parameter, the description is minimally sufficient, but it lacks mention of return value, not-found behavior, or permissions. Since there is no output schema, these details would be helpful. The description 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 coverage is 100% for the single parameter 'id' with description 'User ID'. The tool description adds minimal extra meaning beyond the schema, simply restating that the user is fetched by ID. 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 uses a specific verb 'Get' with a clear resource 'user' and scope 'by ID', making it easy to distinguish from sibling tools like listUsers (list) and getCurrentUser (current user).
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 user ID is known, but provides no explicit guidance on when to use this tool versus alternatives such as getCurrentUser or listUsers. There are no exclusions or alternative mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getWebhookA
Get a webhook by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook ID |
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. The description only states the operation ('Get a webhook by ID') without disclosing return format, error behavior (e.g., 404 if not found), or whether it is read-only. This leaves the agent with insufficient 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?
The description is a single sentence of six words, front-loaded with the action and resource. Every word is essential; no filler or redundant information. It earns full marks for 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?
This is a simple get-by-ID tool with one parameter and no output schema. The description covers the core purpose but omits details about the response structure (e.g., what fields are returned) and error handling. It is adequate but not fully complete without those details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (id described as 'Webhook ID'). The description adds 'by ID' but this is redundant with the schema. No additional semantic meaning (e.g., origin, constraints) is provided, so the baseline 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 'Get a webhook by ID' uses a specific verb 'Get' and resource 'webhook' with a clear scope (by ID). It distinguishes from sibling tools like listWebhooks (listing all) and getWebhookEvents (events for a 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 usage is implied: you use this tool when you have a specific webhook ID and want its details. However, the description does not explicitly mention alternatives (e.g., listWebhooks to find IDs) or provide when-not-to-use guidance, so it only partially guides selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getWebhookEventsC
Get events for a webhook
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description alone must disclose behavior. It only states what the tool does, with no mention of return format, pagination, error handling, or whether it performs a read-only operation. This is minimal behavioral 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, front-loaded sentence with no fluff, which is appropriately concise for a simple parameter set. It is not empty, avoiding the under-specification seen in worse examples.
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 sparse to be complete. It does not clarify what kind of events are returned, whether it returns a list or a single item, or any usage context, leaving the agent with insufficient information for confident 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 input schema provides a single parameter 'id' with a description ('Webhook ID'), achieving 100% schema coverage. The description adds no additional meaning beyond what the schema already conveys, 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?
The description clearly states the action ('Get events') and the target resource ('for a webhook'), using a specific verb and resource. It distinguishes itself from 'getWebhook' (which retrieves webhook details) and 'getEvent' (which retrieves a single event), though it doesn't explicitly contrast with sibling tools like 'listEvents'.
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 'listEvents' or 'getEvent'. It does not mention any prerequisites (e.g., webhook must exist) or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
helpA
Get usage tips for this MCP server, common tool examples, and how to report bugs or request features. Call this when the user asks for help, examples, or how to use this MCP.
| 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 adequately discloses that the tool returns informational content (tips, examples, reporting instructions) and implies a read-only, safe operation. While it doesn't specify exact output format, it is sufficient for this simple informational 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, well-structured sentence that front-loads the action and includes a clear trigger condition. Every phrase earns its place, with no wasteful or redundant wording.
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 zero-parameter help tool with no output schema, the description fully covers purpose, content, and usage trigger. It is complete for the agent to decide when and how to invoke it, and no further context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema description coverage is 100% (empty schema). The baseline for 0 params is 4, and the description appropriately does not attempt to document parameters that do not 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 tool provides usage tips, common examples, and bug/feature request guidance for the MCP server. It uses a specific verb 'Get' and resource 'usage tips for this MCP server', distinguishing it from the many domain-specific 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?
The description explicitly says 'Call this when the user asks for help, examples, or how to use this MCP.' This provides clear context for when to use it. It does not mention alternatives, but no alternatives exist given it is the sole help tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inboxAppAddMessageB
Add a message to an inbox app conversation
| Name | Required | Description | Default |
|---|---|---|---|
| sender | No | Sender info | |
| message | Yes | Message content | |
| timestamp | No | ISO timestamp | |
| conversationId | Yes | Conversation ID |
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 'Add a message' without revealing side effects, permission requirements, idempotency, or what happens if the conversation does not exist. This is a significant gap for a write 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 sentence with no unnecessary words. It is front-loaded and immediately conveys 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?
The tool has no output schema and no annotations, and the description offers no additional context about behavior, return values, or typical usage scenarios. Given the large set of sibling tools and the need for an agent to make informed choices, this level of completeness is inadequate.
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 itself adds no parameter detail, but the schema provides basic descriptions for each parameter. The sender parameter description is vague ('Sender info'), and the description does not compensate for this ambiguity.
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 ('Add') and clearly identifies the resource ('a message') and the target ('an inbox app conversation'). It differentiates from sibling tools like inboxAppAddNote and inboxAppUpdateMessage by stating the exact 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?
No guidance is provided about when to use this tool versus alternatives. There is no mention of prerequisites, conditions, or exclusions, leaving the agent to infer usage solely from the name and generic description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inboxAppAddNoteA
Add a note to an inbox app conversation
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | Note content | |
| conversationId | Yes | Conversation ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states the basic action without explaining side effects, permissions, or error behavior, adding little beyond the tool's name.
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, direct sentence with no filler. It is appropriately sized and front-loaded, 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?
The tool is simple, with two documented parameters and no output schema, so a short description is acceptable. However, it lacks context about the inbox app integration and any prerequisites or consequences, making it only 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% for both parameters, so the baseline is 3. The description adds no additional parameter context beyond what the schema already 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 action ('Add'), the resource ('note'), and the scope ('inbox app conversation'), distinguishing it from generic note tools and other inbox app actions like adding a message.
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 use case (adding notes to inbox app conversations) but does not explicitly contrast with alternatives like createNote or inboxAppAddMessage. No when-not guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inboxAppCreateParticipantA
Add a participant to an inbox app conversation
| Name | Required | Description | Default |
|---|---|---|---|
| personId | Yes | Person ID to add | |
| conversationId | Yes | Conversation ID |
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. However, it only mentions 'Add', which implies mutation, without revealing any side effects, permissions, idempotency, 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?
The description is a single, front-loaded sentence with no wasted words. Every word contributes to conveying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with no output schema, the description provides the core action but lacks usage guidelines and behavioral transparency. Given the many sibling tools, additional differentiation would improve completeness, but it is minimally adequate for a straightforward add operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides clear descriptions for both parameters (conversationId: 'Conversation ID', personId: 'Person ID to add'), achieving 100% coverage. The description adds no additional semantic meaning beyond what the schema states, so the 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 clearly states a specific action ('Add') and resource ('participant to an inbox app conversation'), which distinguishes it from sibling tools like inboxAppGetParticipants and inboxAppAddMessage.
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 the tool (when adding a participant), but provides no explicit when-to-use guidance, exclusions, or references to alternatives. It is a simple, unqualified statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inboxAppDeactivateB
Deactivate an inbox app installation by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Installation ID |
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 the action without disclosing side effects, reversibility, permissions, or what 'deactivate' entails for the installation.
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 directly states the purpose with 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?
The tool is a mutation with no annotations or output schema, and the description does not mention return values, effects, or whether the operation is reversible, leaving significant contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with 'id' described as 'Installation ID'. The description's 'by ID' aligns with the schema but adds no extra meaning beyond the structured parameter definition.
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 deactivates an inbox app installation by ID, using a specific verb and resource. It distinguishes itself from siblings like inboxAppInstall (activation/creation) and listInboxAppInstallations (listing).
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 usage guidance is provided beyond the action itself. There is no mention of when to use this tool versus alternatives, conditions, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inboxAppGetParticipantsB
Get participants of an inbox app conversation
| Name | Required | Description | Default |
|---|---|---|---|
| conversationId | Yes | Conversation ID |
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 simply says 'Get participants' with no mention of read-only guarantees, potential side effects, authorization requirements, return format, or error behavior. The only implied trait is that it is a read operation, but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the operation. It is not verbose, but it is also quite sparse, lacking any additional details that could improve usefulness while still being 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?
For a simple one-parameter getter, the description is minimally adequate but incomplete. It does not describe the return value (e.g., that a list of participant objects is returned) or any edge-case behavior, which would be valuable given there is no output schema.
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 a description for conversationId ('Conversation ID'), achieving 100% schema coverage. The tool description does not add any additional meaning or context beyond the schema, 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 'Get participants of an inbox app conversation', using a specific verb ('Get') and resource ('participants'), which directly distinguishes it from sibling tools like inboxAppCreateParticipant or inboxAppUpdateMessage. It unambiguously identifies the 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 provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, typical use cases, or mention related tools such as inboxAppCreateParticipant. Usage is only implied by the name, but no explicit direction is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inboxAppInstallA
Install an inbox app for a user. Requires the publishedInboxAppId from FUB's app catalog plus a webhook subscriptionUrl.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User to install for | |
| subscriptionUrl | Yes | Webhook subscription URL | |
| publishedInboxAppId | Yes | Published inbox app ID from FUB catalog |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must convey behavioral context. It only mentions requirements ('Requires the publishedInboxAppId...') but does not disclose side effects, reversibility, permissions, or return behavior, leaving important operational details unknown.
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 short sentences that front-load the purpose and prerequisites without any fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple three-parameter schema and absence of an output schema, the description covers the basic purpose but omits information about success/error responses or relationship to other inbox app operations. It is minimally sufficient but lacks rich context.
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 provides 100% coverage with descriptions for all three parameters. The tool description adds minimal new meaning, mostly restating that publishedInboxAppId comes from the FUB catalog and subscriptionUrl is a webhook, so it does not significantly exceed schema information.
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 'Install an inbox app for a user' with a specific verb and resource. It effectively distinguishes the tool from siblings like inboxAppDeactivate or inboxAppAddMessage by focusing on the installation 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?
The description does not explicitly address when to use this tool versus alternatives like listInboxAppInstallations or inboxAppUpdateConversation. It implies usage for installing an app, but provides no exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inboxAppUpdateConversationC
Update an inbox app conversation status
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | New status | |
| conversationId | Yes | Conversation ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states 'Update', which implies mutation, but does not mention effects, valid status values, authentication needs, or whether the operation 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. However, it is under-specified, lacking any additional context that might be expected for a tool in an 'inbox app' 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 absence of annotations and output schema, the description is too minimal. It does not explain what statuses are valid, how the conversation is identified beyond an ID, or any side effects. The contextual information is insufficient 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 description coverage is 100%, so baseline is 3. The description adds minimal context by clarifying that 'conversation status' is the target, but it does not expand on the 'status' or 'conversationId' parameters beyond what the schema already 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 'Update an inbox app conversation status' uses a specific verb (update) and resource (inbox app conversation status), clearly stating what the tool does. It implicitly distinguishes from siblings like inboxAppUpdateMessage by targeting conversation status, but does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks any context about prerequisites, exclusions, or comparison with sibling tools such as inboxAppUpdateMessage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inboxAppUpdateMessageC
Update an inbox app message
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Updated message | |
| messageId | Yes | Message ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description is the sole source of behavioral information. It only states 'Update' and does not disclose whether the update is partial, what it returns, permissions needed, or side effects on related data. This is a significant 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 a single, concise sentence with no redundant words. It is appropriately front-loaded with the core action, though it lacks detail that could make it more helpful.
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 and full schema coverage, the description is minimal but incomplete. Without an output schema, it should at least mention the return value or update behavior. It also fails to situate the tool within the broader inbox app context provided by sibling 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?
The input schema covers 100% of parameters, each with a brief description ('Updated message', 'Message ID'). The description adds no additional semantic meaning beyond the schema, so the baseline 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 'Update an inbox app message' uses a clear verb+resource structure, indicating the action and object. It distinguishes from siblings like inboxAppAddMessage and inboxAppUpdateConversation, though it could be more specific about what an 'inbox app message' entails.
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 such as inboxAppAddMessage or inboxAppUpdateConversation. The description offers no context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listActionPlansC
List all action plans
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only implies a read operation. It does not disclose pagination behavior, response format, or any potential side effects. This is minimal behavioral information.
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 wasted words, making it highly concise. It is front-loaded and easy to parse, though it may be too terse to fully serve agent decisions.
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 lacks key contextual information such as pagination limits, ordering, or whether 'all' means the response includes all results or supports pagination. No output schema or annotations exist to fill the gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents both parameters (limit, offset) with descriptions, so the baseline is 3. The description adds no additional parameter semantics beyond what the schema already 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 (List) and resource (action plans), and 'all' indicates scope. However, it does not differentiate from sibling tools like listActionPlansPeople, though the resource is distinct enough.
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 listActionPlansPeople or other list tools. There are no exclusions or recommended usage contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listActionPlansPeopleB
List people assigned to action plans
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination | |
| personId | No | Filter by person ID | |
| actionPlanId | No | Filter by action plan ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral transparency. It only states the basic list action without disclosing pagination behavior, filtering specifics, return format, or side effects. The verb 'list' implies read-only, but no additional context is added beyond what the tool name already suggests.
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 directly states the verb and resource. No unnecessary words or repetition, making it perfectly concise for its simple purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool, the description covers the core purpose, and all parameters are documented in the schema. However, the lack of annotations, output schema, and behavioral details leaves gaps in understanding pagination, return values, and usage context. It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with all four parameters (limit, offset, personId, actionPlanId) documented in the schema. The description itself adds no extra parameter semantics, so the 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 a specific verb 'List' and identifies the resource as 'people assigned to action plans', clearly distinguishing it from sibling tools like listActionPlans (which lists action plans) and addPersonToActionPlan (which adds a person to a plan). It is not a tautology and adds clarity over the tool name.
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. There is no mention of prerequisites, exclusions, or a comparison with similar list tools like listAutomationsPeople or getActionPlanPerson. The intended use is only implicit from the verb 'list'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listAppointmentOutcomesB
List appointment outcomes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden of behavioral disclosure, but it only states a basic action. It omits any mention of read-only safety, pagination, ordering, authentication requirements, or return shape. The phrase adds no behavioral detail beyond what the tool name already implies.
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 and front-loaded, using only three words. Every word contributes to clarity, but it is so terse that it lacks any additional contextual structure (e.g., examples or related tool references) that could help the agent. Still, it is appropriately sized for a tool with no parameters and a straightforward 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?
Description completeness is low. While the tool is simple (zero params, no output schema), the description provides no details about what an appointment outcome is, whether results are paginated, or what the response format looks like. It fails to give agents enough context to confidently invoke the tool, especially given the lack of 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?
The tool has zero parameters and the schema coverage is 100%, so the baseline is 4. There is no parameter information needed, and the description doesn't need to compensate for any undocumented fields, as there are none.
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 appointment outcomes' uses a specific verb ('List') and resource ('appointment outcomes'), clearly distinguishing it from siblings like listAppointments, listAppointmentTypes, getAppointmentOutcome, and updateAppointmentOutcome. Even though it mirrors the tool name, it expands the camel case into a readable phrase, which is 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?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention that this is the collection-list version of getAppointmentOutcome, nor does it explain any filtering, pagination, or contextual triggers. An agent is left to infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listAppointmentsC
List appointments
| Name | Required | Description | Default |
|---|---|---|---|
| next | No | Cursor for next page of results | |
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination | |
| personId | No | Filter by person |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It does not mention that this is a read-only operation, nor does it explain pagination behavior, default ordering, or how filters like personId affect results. The minimal description leaves the agent to infer semantics from the name alone.
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 concise two-word phrase, with no filler or redundancy. While it is refreshingly brief, it borders on under-specification, missing an opportunity to convey essential context in a structured way.
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, absence of an output schema, and the presence of many related list tools, the description is incomplete. It does not state what is returned (e.g., an array of appointments), how pagination works, or when to prefer this tool over listEvents or listAppointmentTypes. This makes the tool harder to invoke correctly in a broader workflow.
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 describes all four parameters (next, limit, offset, personId) with complete coverage. The description itself adds no parameter-specific detail, but since the schema already covers them, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List appointments' uses a specific verb and resource, clearly indicating the operation. It distinguishes from sibling tools like listAppointmentTypes and listAppointmentOutcomes by referring to the base 'appointments' resource, though it could be confused with listEvents or listCalls without further context.
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 such as listEvents or listAppointmentTypes. The description simply states the action without any context, exclusions, or comparisons to sibling list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listAppointmentTypesA
List appointment types
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. The phrase 'List appointment types' only conveys a read operation and provides no detail about return format, pagination, exhaustive listing, or any side effects. It adds no behavioral context beyond the tool name.
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 extraneous wording. It is appropriately sized for the tool's simplicity and communicates the essential purpose immediately.
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 zero-parameter list operation, the description is minimally adequate but leaves gaps. It does not explicitly state that it returns all appointment types, nor does it describe what an appointment type contains, and there is no output schema to clarify the return structure. A more complete description would add scoping or result details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool has zero parameters, making the input schema trivially complete. The baseline for 0-parameter tools is 4, and the description need not explain parameters since there are none to document.
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 appointment types' is a clear verb+resource statement that directly states the operation and target. It distinguishes itself from sibling tools like listAppointments (which lists appointments, not types) and getAppointmentType (which retrieves a single type).
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 explicit guidance on when to use this tool versus alternatives, nor any exclusions or alternative tool suggestions. It is simply the operation name restated, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listAutomationsA
List all Automations 2.0 automations. "Restricted - Registered Systems Only": requires FUB_SYSTEM + FUB_SYSTEM_KEY. Account must also be on Automations 2.0.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses access restrictions and the Automations 2.0 requirement, but does not describe return format, pagination behavior, or error cases. The word 'List' implies a read-only operation, but without explicit safety statements, transparency is partial.
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, front-loaded with purpose and then necessary access constraints. No redundant phrasing, every sentence provides substantive 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 two optional params and no output schema, the description is adequate but not complete. It states the purpose and access restrictions but does not mention what the response looks like or how pagination behaves beyond the schema's parameter descriptions. It leaves out potential defaults or result structure.
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 descriptions for both parameters (limit and offset) with 100% coverage. The description adds no additional meaning about these parameters, so it does not exceed the baseline for schema-suffcient cases.
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 all Automations 2.0 automations,' using a specific verb ('List') and resource ('Automations 2.0 automations'). This distinguishes it from sibling tools like 'getAutomation' (single) and 'listAutomationsPeople' (people within automations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on prerequisites: the 'Restricted - Registered Systems Only' requirement (FUB_SYSTEM + FUB_SYSTEM_KEY) and the need for the account to be on Automations 2.0. However, it does not explicitly mention alternatives or when to use this tool versus others like getAutomation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listAutomationsPeopleA
List people in Automations 2.0 automations. "Restricted - Registered Systems Only": requires FUB_SYSTEM + FUB_SYSTEM_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination | |
| personId | No | Filter by person | |
| automationId | No | Filter by automation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description bears the full burden. It discloses a key behavioral constraint: 'Restricted - Registered Systems Only' and requires FUB_SYSTEM + FUB_SYSTEM_KEY. However, it does not mention pagination, response format, or side effects, offering only minimal transparency 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?
The description is two short sentences. The first states the purpose, and the second provides essential access restrictions. Both sentences earn their place, and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with optional filters, the description plus full schema coverage is minimally adequate. It names the purpose and a critical restriction, but offers no output description and no comparison to similar tools. It is not severely lacking, but does not go beyond the essential minimum.
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 does not need to explain parameters. The description adds no extra meaning beyond the schema's detailed parameter descriptions (limit, offset, personId, automationId). 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 clearly states the tool's function: 'List people in Automations 2.0 automations.' It uses a specific verb ('List') and resource ('people in automations'), and distinguishes it from siblings like listAutomations (which lists automations) and getAutomationPerson (which gets a single person in an automation).
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 getAutomationPerson or listActionPlansPeople. It only mentions a restriction, but no explicit context or exclusions. This falls under 'no guidance'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listAvailableTagsA
Discover tags used in your FUB account by scanning recent contacts. Returns unique tags sorted alphabetically. Note: scans up to 500 contacts so may not find rarely-used tags.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of contacts to scan (default 500, max 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It openly states the scan limit (up to 500 contacts), the potential incompleteness for rarely-used tags, and the output format (unique tags sorted alphabetically). This exceeds minimal disclosure, though it could explicitly confirm read-only status.
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 with no filler. The purpose is front-loaded, and the critical limitation is stated right after. 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?
For a simple listing tool with one optional parameter and no output schema, the description provides all necessary context: purpose, method, output format, and limitation. It is complete and self-contained.
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 already documents the 'limit' parameter with default and max values. The description adds meaningful context by explaining the impact of the limit—scanning more contacts gives more complete tag coverage, but may still miss rarely-used tags—which helps agents reason about parameter choices.
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 uses a specific verb ('Discover') and clearly identifies the resource ('tags used in your FUB account') and method ('scanning recent contacts'). It distinguishes itself from sibling tools like searchPeopleByTag by focusing on listing available tags rather than searching people.
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?
Usage context is implied: use this to see what tags exist in the account. The note about scanning limits hints at potential gaps for rarely-used tags, but no explicit alternatives or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listCallsC
List calls
| Name | Required | Description | Default |
|---|---|---|---|
| next | No | Cursor for next page of results | |
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination | |
| personId | No | Filter by person ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure, but 'List calls' only states the action. It does not disclose pagination behavior, return shape, authentication needs, 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 extremely concise (two words) and front-loaded, but it is under-specified rather than efficiently complete. It does not earn its place as a standalone description because it adds no value over the tool name.
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 four optional parameters, no output schema, and no annotations. A complete description would note pagination, personId filtering, and return behavior; 'List calls' leaves too much context implicit.
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 parameters like limit, offset, next, and personId are documented. The description itself adds no semantic meaning beyond the schema, meriting 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 operation is to list calls, using a specific verb and resource. It is somewhat generic and does not add scope beyond the tool name, but it does distinguish from sibling getCall/get single-call 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 usage guidance is provided. The description does not mention when to prefer listCalls over getCall, createCall, or updateCall, nor any filtering/pagination context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listCustomFieldsA
List all custom fields
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It simply states 'List all custom fields' with no disclosure of return format, pagination, ordering, or potential errors. The agent is left without expectations for the response or any side effects, though 'list' implies a read 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, direct sentence that states the verb, resource, and scope. It wastes no words and is appropriately concise for a parameterless list 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?
The tool is simple (no params, no output schema, no annotations), but the description still lacks detail about what the response will contain (e.g., an array of custom field objects). An agent would benefit from knowing the return shape or any filtering/pagination behavior. It is minimally adequate but not fully informative.
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?
There are no parameters in the schema, so the description has nothing to add there. The baseline for 0 params is 4; the word 'all' is the only semantic content, which is sufficient since there is nothing to configure.
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 specific verb 'List' and identifies the resource as 'custom fields', with the scope 'all' — clearly distinguishing it from getCustomField (single resource) and create/update operations. This is a precise statement of the tool's function.
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 offers no explicit guidance on when to use this tool over alternatives like getCustomField. The 'all' scope implies it returns the full set, but there is no statement about trade-offs or prerequisites. Usage is only implied by the list/get naming convention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listDealCustomFieldsC
List deal custom fields
| 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 must disclose behavioral traits, but it only restates the tool name. It does not mention whether this is a safe read operation, pagination, sorting, return format, or any other behavioral details, providing zero 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 extremely short but it is essentially a paraphrase of the tool name, offering no additional information. It is under-specified rather than concise, omitting crucial details about the output and 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?
With no annotations, no output schema, and only a sparse description, the tool context is significantly incomplete. It does not explain what 'deal custom fields' are (e.g., definitions vs. values), how they are returned, or any limits, leaving the agent without enough information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter behavior for the description to explain. The schema confirms no inputs are required; the baseline of 4 applies here since no parameter information is necessary.
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 ('List') and resource ('deal custom fields'), clearly indicating it retrieves deal custom fields. However, it does not distinguish itself from the sibling tool 'listCustomFields', leaving potential ambiguity about the scope of the listing.
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 the similarly named 'listCustomFields' or other sibling tools. There is no mention of prerequisites, use cases, or exclusions, leaving the agent without context for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listDealsC
List deals with filtering
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Comma-separated deal IDs | |
| next | No | Cursor for next page of results | |
| sort | No | Sort order | |
| limit | No | Maximum number of results to return | |
| stage | No | Filter by stage | |
| fields | No | Comma-separated list of fields to return | |
| offset | No | Offset for pagination | |
| assignedTo | No | Filter by assigned name | |
| pipelineId | No | Filter by pipeline | |
| assignedUserId | No | Filter by assigned user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden of behavioral disclosure. It only states that the tool lists deals with filtering, but omits important behaviors like pagination (cursor, limit, offset), sorting, field selection, default result sizes, or whether it returns full or partial deal objects.
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 short, front-loaded phrase with no wasted words, but it is under-specified. A second sentence about pagination or scope would make it more useful without adding significant length. It's concise yet lacks structural completeness.
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 10 parameters, no output schema, and no annotations, the description is far too minimal. It does not explain return value format, pagination behavior, default limits, or filter semantics, making it difficult for an agent to use the tool correctly without additional 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?
All 10 parameters have schema descriptions, so schema coverage is 100%. The description's phrase 'with filtering' adds little beyond what the schema already documents, and it does not clarify filter combination logic or pagination mechanics, justifying 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 says 'List deals with filtering', which clearly identifies the verb (list), the resource (deals), and hints at the filtering capability. It distinguishes from getDeal (singular) but does not explicitly differentiate from other list tools, and 'with filtering' is somewhat generic.
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 such as getDeal for a single deal or other list tools. There is no mention of context, prerequisites, or exclusions, leaving the agent 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.
listEmCampaignsB
List email marketing campaigns
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination |
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 says 'List email marketing campaigns' without mentioning pagination behavior, return format, permissions, or whether the list includes inactive/draft campaigns. This is a significant gap for a tool with no structured safety hints.
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 superfluous words. It front-loads the core purpose and is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has only two optional pagination parameters and no output schema, the description is minimally sufficient. However, the lack of annotations and output schema means the agent is left without details on return structure or default behavior, so it stops at a bare acceptable level.
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 already describes both parameters ('limit' and 'offset') with complete descriptions (100% coverage). The tool description adds no additional parameter meaning, so the baseline of 3 is appropriate since the schema handles the semantic burden.
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 'list' and the resource 'email marketing campaigns', making it distinct from sibling tools like listEmEvents, createEmCampaign, and updateEmCampaign. The verb+resource combination is specific and 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 offers no guidance on when to use this tool versus alternative list tools, nor any exclusions or prerequisites. It merely states what it does, leaving the agent to infer usage context 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.
listEmEventsC
List email marketing events
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for disclosing behavior, but it only says 'List email marketing events'. It does not mention pagination behavior, ordering, default limits, or whether this is a read-only operation (though 'List' implies it). This lack of behavioral context 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 concise sentence that states the core purpose without unnecessary words. It is appropriately brief for a simple list operation, though it could include 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 simple list tool with well-documented parameters, the description is minimally complete but leaves open questions: what types of email marketing events are included, what the response format is (no output schema), and how it differs from the sibling 'listEvents'. The description would benefit from clarifying the event scope and return structure.
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 both parameters (limit and offset), achieving 100% schema_description_coverage. The tool description adds no additional parameter meaning, so the baseline score of 3 is appropriate since the schema carries the semantic weight.
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 identifies the action ('List') and the resource ('email marketing events'), which is specific and distinct from general event tools like 'listEvents'. However, it does not clarify what constitutes an 'email marketing event' or differentiate it from the sibling 'listEvents', so it lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'listEvents' or 'createEmEvent'. It simply states the action without any context on use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listEventsA
List events from FUB. Filter by personId, type, property address, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| next | No | Cursor for next page of results | |
| type | No | Filter by event type | |
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination | |
| personId | No | Filter by person ID | |
| hasProperty | No | Filter events that have property data | |
| propertyAddress | No | Filter by property address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. 'List' clearly indicates a read-only operation, but the description does not disclose behavior such as pagination defaults, result ordering, or whether all events or only user-scoped events are returned. This is minimal but acceptable for a simple 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 two short sentences, front-loaded with the primary action and followed by a list of example filters. Every word earns its place, and there is no redundant padding or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 optional parameters and no output schema, the description is adequate but incomplete. It does not explain pagination parameters (next, offset, limit) or how filters interact, and it does not guide agents toward related tools like listEmEvents. The schema helps, but the description alone leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description mentions a few filter examples (personId, type, propertyAddress) but adds no meaning beyond what the schema already provides. The 'etc.' is vague but does not compensate for the lack of additional parameter context.
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 events and mentions key filterable fields (personId, type, propertyAddress), making the core action and resource explicit. However, it does not differentiate this from the sibling listEmEvents tool, so it falls short of a 5.
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 this tool is for listing events with optional filters, but it offers no explicit when-to-use or when-not-to-use guidance, nor does it point to alternatives like getEvent for single events or listEmEvents for email events. The usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listGroupsB
List all groups
| 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 itself is the only source of behavioral information. It only says 'List all groups' and fails to disclose potential side effects, pagination, permissions, or return format. This leaves the agent uncertain about the operation's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, easy to parse and front-loaded. It is not bloated, though it may be too terse for a complete 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?
The description lacks details on return values or response structure, and with no output schema, the agent cannot anticipate what the tool returns. For a list operation, this is a notable gap, though the zero-parameter interface keeps complexity low.
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 accepts no parameters, so the schema fully covers the input surface. The description adds nothing about parameters because there are none; the baseline of 4 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?
Clearly states it lists all groups, using the verb 'list' and the resource 'groups'. It doesn't elaborate on scope or differentiate from similar list tools like listTeams or listRoundRobinGroups, but the meaning is 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?
Provides no guidance on when to use this tool versus alternatives. It simply states the action with no mention of prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listInboxAppInstallationsA
List inbox app installations. Requires a registered third-party system (FUB_SYSTEM + FUB_SYSTEM_KEY). On unregistered accounts FUB returns 404.
| 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 of behavioral disclosure. It goes beyond a simple 'list' statement by revealing the authentication need and the specific 404 error for unregistered accounts. This is meaningful behavioral context, though it omits details about the success response format.
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 concise sentences, front-loaded with the primary purpose in the first sentence. Every clause adds value, 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 tool with no parameters and no output schema, the description adequately covers the essential context: what it lists and the required condition for success. Adding a note about the return structure could improve completeness, but it is not critical given the straightforward nature of the 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?
The input schema is empty (no parameters), so there is no parameter semantics to explain. The baseline score of 4 for zero-parameter tools applies here, and the description appropriately does not invent unnecessary parameter details.
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 specific verb 'List' with the noun 'inbox app installations', clearly indicating the action and resource. This distinguishes it from sibling tools like inboxAppInstall and inboxAppDeactivate, making its 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?
It clearly states the prerequisite of a registered third-party system (FUB_SYSTEM + FUB_SYSTEM_KEY) and the error condition on unregistered accounts, providing actionable context for when to use the tool. However, it does not explicitly mention alternatives, though no direct alternative for listing installations exists among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listNotesA
List notes, optionally filtered by personId
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return | |
| offset | No | Pagination offset | |
| personId | No | Filter notes by person ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the basic operation and optional filter, but does not disclose pagination behavior, result ordering, access control, or any potential side effects. This is minimal for a read 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 sentence of six words, concise and front-loaded with the core action and subject. Every word carries meaning; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema, the description is adequate but leaves out what a note is or what the return value contains. The schema covers parameters, but the description could benefit from mentioning the result type (e.g., an array of note objects) or any default 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?
All parameters are fully described in the schema (limit, offset, personId), so the description does not need to add parameter details. The description mentions personId but adds no new meaning beyond the schema; the baseline of 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists notes, using a specific verb and resource. It distinguishes itself from sibling tools like createNote, getNote, and updateNote by indicating the list action, and from other list tools (e.g., listTextMessages) by the resource 'notes'.
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 listing notes with an optional personId filter, but it does not explicitly state when to use this tool versus alternatives or mention any exclusions. There is no naming of when not to use it or comparison with siblings like listTextMessages or listCalls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listPeopleA
List/search people in FUB. Supports filtering by name, email, phone, tags, stage, source, assignedTo, price range, smart list, and more. For tag filtering use the tags parameter (comma-separated, OR logic). For email lookup use the email parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Comma-separated person IDs | |
| name | No | Search by name | |
| next | No | Cursor for next page of results | |
| sort | No | Sort order | |
| tags | No | Comma-separated tags to filter by | |
| No | Filter by email | ||
| limit | No | Maximum number of results to return | |
| phone | No | Filter by phone | |
| stage | No | Filter by stage | |
| fields | No | Comma-separated list of fields to return | |
| offset | No | Offset for pagination | |
| source | No | Filter by source | |
| lastName | No | Filter by last name | |
| contacted | No | Filter by contacted status | |
| firstName | No | Filter by first name | |
| assignedTo | No | Filter by assigned agent name | |
| priceAbove | No | Minimum price filter | |
| priceBelow | No | Maximum price filter | |
| smartListId | No | Filter by smart list ID | |
| includeTrash | No | Include trashed people | |
| assignedPondId | No | Filter by assigned pond ID | |
| assignedUserId | No | Filter by assigned user ID | |
| assignedLenderId | No | Filter by lender ID | |
| includeUnclaimed | No | Include unclaimed people | |
| lastActivityAfter | No | ISO date - only people with activity after this date | |
| assignedLenderName | No | Filter by lender name | |
| lastActivityBefore | No | ISO date - only people with activity before this date |
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 reveals that tag filtering uses OR logic and that email lookup is supported - both are parameter semantics rather than deeper behavioral traits. Critically, it omits any mention of pagination (despite limit, offset, next params in schema), default scoping (e.g., whether trashed people are excluded by default), or response format. This is a significant gap for a list/search tool with 27 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the primary purpose. It efficiently lists key filter options and provides two specific usage notes. No redundant phrases or filler. The final sentence about email lookup could be seen as slightly obvious, but it is brief and reinforces a common use case.
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?
This is a complex tool with 27 parameters, no output schema, and no annotations. The description is too sparse to be complete. It does not mention pagination behavior, default result set, or response structure, which are essential for an agent to correctly use a list/search operation. The description covers the 'what' but not the 'how' of handling result sets or 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 description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by clarifying that the tags parameter uses comma-separated OR logic, which is not stated in the schema. It also groups filter capabilities (price range, smart list) that map to multiple schema parameters, helping the agent understand intended 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 'List/search people in FUB' which is a specific verb+resource. It enumerates multiple filter dimensions (name, email, phone, tags, etc.) providing a clear scope. However, it does not explicitly differentiate from sibling tools like getPerson, getPersonByEmail, or searchPeopleByTag, which could be relevant alternatives for specific lookups.
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 establishes clear context: use this tool to list or search people with a broad set of filters. It provides specific parameter guidance ('For tag filtering use the tags parameter', 'For email lookup use the email parameter'), but it does not mention when to prefer alternative tools like getPersonByEmail for exact email lookup or searchPeopleByTag for tag-only searches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listPipelinesC
List all pipelines
| 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 must convey behavioral traits. It only claims to list all pipelines, with no mention of read-only safety, pagination, ordering, or return format. This leaves the agent without critical operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant words, making it concise. However, brevity here also contributes to lack of completeness.
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 is too sparse for an operation with no annotations or output schema. It doesn't explain what 'all' means (e.g., across all workspaces, including archived), whether results are paginated, or what order they return. This is a clear gap in context.
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?
Since the schema has zero parameters, the baseline is 4. The description correctly implies no filters are needed, and it doesn't add any parameter semantics that could mislead. No additional documentation is 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 tool lists pipelines, but it adds little beyond the tool name itself. It does not specify scope (e.g., all pipelines vs. owned pipelines) or distinguish from other list tools beyond the resource name.
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?
There is no guidance on when to use this tool versus the many sibling list tools, nor any exclusions or prerequisites. The description provides no context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listPondsA
List all ponds
| 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 of behavioral disclosure. It indicates a read-only 'List' operation, but discloses nothing about pagination, sorting, response size, or side effects. While the read-only nature is implicit, the lack of any additional context or safety guarantees leaves significant behavioral ambiguity.
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 'List all ponds' that is front-loaded and devoid of filler. Every word carries meaning. It is appropriately concise for a zero-parameter list operation, achieving high clarity with minimal text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (0 params, no output schema), the description is minimally viable but lacks context about what a 'pond' is and what the response contains. Without an output schema, the agent must infer the return structure. The description covers the basic intent but not enough for fully informed invocation and result handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is complete and the description cannot add parameter-level detail. The baseline score of 4 applies as there is nothing to document or compensate for. No parameter information is needed.
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 ponds' clearly states a specific action (List) and resource (ponds). It distinguishes itself from sibling tools such as getPond (single resource) and createPond/updatePond (mutations), and from list tools for other resources like listPeople and listNotes. The verb and noun are 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 provides no explicit guidance on when to use this tool versus alternatives. There is no mention of use cases, exclusions, or comparisons to getPond or other list operations. The usage is only implied by the name and composition, which is insufficient for guiding an agent on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listRelationshipsB
List relationships for a person
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination | |
| personId | No | Person ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only restates the purpose. It doesn't disclose pagination behavior beyond schema hints (limit/offset), whether personId is optional or required, return format, or any side effects. It adds minimal 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?
The description is a single, focused sentence with no unnecessary words. It front-loads the action and resource, making it easy to scan and understand.
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 fully described params and no output schema, the description is minimal but mostly adequate. However, the lack of annotations and the absence of guidance on personId requirement leaves gaps. Given siblings like getRelationship exist, a bit more context on what 'relationships' includes or when personId is needed 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 the baseline is 3. The description adds a slight context by linking the personId to 'for a person', but it doesn't explain nuances like format, defaults, or how the parameters interact. The schema already handles parameter descriptions 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 action (list) and resource (relationships) with a scope (for a person). It is distinct from getRelationship (which implies fetching a single relationship) and create/updateRelationship, though it doesn't explicitly differentiate itself. It's a clear, non-tautological statement.
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 vs alternatives like getRelationship. There is no mention of prerequisites, required parameters, or context such as whether personId is necessary. The description simply states what it does without guiding selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listRoundRobinGroupsA
List round robin groups
| 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 only states 'List round robin groups' with no disclosure of read-only behavior, authentication requirements, pagination, or output format. This adds nothing beyond the tool name itself.
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 precisely states the action and resource. It contains no superfluous information, making it perfectly acceptable in terms of 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 tool's simplicity (no parameters, no output schema, no annotations), the description is largely sufficient for a basic list operation. However, it doesn't mention what the response contains or any edge cases, leaving slightly more to be desired 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 tool has zero parameters, and schema coverage is 100% (vacuously true). Since there are no parameters to document, the description cannot add parameter semantics, and the baseline of 4 for zero-parameter tools 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 'List round robin groups' uses a clear verb ('List') and specific resource ('round robin groups'), immediately conveying the tool's function. It distinguishes itself from sibling tools by targeting a unique entity not present in other list 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 is provided on when to use this tool versus alternatives like listGroups or listTeams. The description simply states the action without any context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listSmartListsA
List all smart lists. By default only classic FUB smart lists are returned. Pass all: true to also include smart lists created in the current FUB UI.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Return all smart lists from both FUB Classic and current FUB | |
| fub2 | No | Return smart lists created in FUB's current UI | |
| next | No | Cursor for next page of results | |
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination |
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 disclosure. It usefully reveals the default scope behavior and the effect of `all: true`. However, it does not disclose pagination behavior, return format, or the relationship between `all` and the `fub2` parameter, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and contains no filler. Every word contributes to understanding the tool's purpose and behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and the main nuance (classic vs current UI). However, it omits the `fub2` parameter's relation to `all`, does not mention pagination or response structure (no output schema), and leaves some uncertainty about how the agent should interpret the parameters. More detail would make it fully self-sufficient.
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 value by clarifying that the default is classic-only and specifying the `all: true` flag, which is not explicitly stated in the schema. This goes beyond the parameter descriptions.
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 all smart lists', which is a specific verb and resource. It also distinguishes between classic and current FUB smart lists, adding scope. It does not explicitly name sibling alternatives like getSmartList, but the plural 'all' adequately differentiates from single-list 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 clear context on default behavior (classic only) and how to expand to include current FUB smart lists using `all: true`. This guides the agent on when to pass the additional parameter. However, it does not explicitly mention when not to use this tool or name alternatives, so it lacks full exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listStagesB
List all pipeline stages
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states 'List all pipeline stages', which conveys a read-only intent but does not mention ordering, pagination, authentication requirements, or whether archived stages are included. This is minimal additional value beyond the tool name.
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 wasted words. It is front-loaded with the action and resource, making it immediately clear what the tool does.
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 (no params, no output schema, no annotations), so the description is minimally adequate. However, it lacks context about the scope of 'all' (global across pipelines), whether pagination exists, or what the return structure looks like. Given the absence of an output schema, the description could have provided more behavioral context to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the schema is empty with 100% coverage. Per the rubric, 0 params corresponds to a baseline of 4. The description adds no parameter information, which is appropriate since none exist. No confusion 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 'List all pipeline stages' clearly states the verb (List) and resource (pipeline stages). It distinguishes from siblings like getStage (singular) and listPipelines (pipelines, not stages). Minor ambiguity remains about whether 'all' means globally or within a specific pipeline, but with no parameters, the global scope is 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 implies usage for retrieving a list of all stages, but provides no explicit context on when to use this tool versus alternatives (e.g., getStage for a specific stage, createStage/updateStage for modifications). No when-to-use or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listTasksC
List tasks
| Name | Required | Description | Default |
|---|---|---|---|
| next | No | Cursor for next page of results | |
| sort | No | Sort order | |
| limit | No | Maximum number of results to return | |
| fields | No | Comma-separated list of fields to return | |
| offset | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'List tasks,' omitting important context such as read-only nature, pagination behavior, return format, or any side effects. The agent is left to infer everything from the parameter 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?
At two words, the description is extremely concise but under-specified. This is not good conciseness; it is a lack of substance. Every sentence should add value, and this description adds almost no value beyond the tool name.
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 5 optional parameters and no output schema, so the description should at least mention pagination, sorting, or return type. No such context is provided, making the description inadequate for an agent to understand the tool's full capabilities and constraints.
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 five parameters have descriptions in the input schema, achieving 100% schema description coverage, so the baseline is 3. The tool description itself adds no additional meaning about how the parameters work together, defaults, or usage patterns. The schema descriptions are generic but acceptable.
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 action ('List') and the resource ('tasks'), which is clear and unambiguous. However, it does not differentiate from sibling list tools beyond the resource name; there is no mention of scope, filtering, or other distinguishing details. This is essentially a human-readable version of the tool name.
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?
There is no guidance on when to use this tool versus alternatives like listNotes or listCalls. The description simply repeats the tool's function and offers no decision support, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listTeamInboxesC
List all team inboxes
| 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 of behavior disclosure, but it only repeats the obvious 'list' operation and adds no information about side effects, permissions, rate limits, or return behavior. It essentially restates the tool's name without elaboration.
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 states the core functionality without any wasted words. It is appropriately front-loaded and sized for the simplicity of the 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?
Although the tool has zero parameters and a simple action, the description omits crucial context such as what a 'team inbox' is, whether the response includes pagination, or any special behavior. Without an output schema, the description should provide more context but fails to go beyond the bare minimum.
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 zero parameters, and the baseline is 4. The description does not need to explain parameters since there are none, and it correctly implies the operation takes no arguments.
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 team inboxes' uses a specific verb and resource, clearly indicating a read operation for team inboxes. It is self-contained and distinguishes itself from sibling tools via the unique resource 'team inboxes', though it does not explicitly compare to alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description simply states the action without any context, prerequisites, or exclusions, leaving the agent without direction on appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listTeamsA
List all teams
| 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 of behavioral disclosure, but it only states the operation without any details about return format, pagination, ordering, permissions, or error behavior. It does not even explicitly state that it returns a list, though it is implied.
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 wasted words. It is appropriately sized for a parameterless list operation and communicates the core action immediately.
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 of a zero-parameter list tool and the absence of an output schema, the description is largely sufficient. However, it could mention the return value (e.g., 'returns an array of team objects') to be fully self-contained, so it is slightly short of a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is at 100% (vacuously, since the schema is empty). The description adds no parameter information, but there is nothing to explain, so the baseline for zero parameters 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 'List all teams' uses a specific verb ('List') and resource ('teams'), clearly distinguishing it from sibling tools like getTeam (single team) and createTeam (creation). The scope 'all' clarifies this is a bulk retrieval 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 provides no guidance on when to use this tool vs alternatives. It does not mention that getTeam should be used for a specific team, or any context such as 'use this to fetch all teams for dropdowns'. Without exclusions or alternative references, the usage context is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listTemplatesA
List email templates
| Name | Required | Description | Default |
|---|---|---|---|
| next | No | Cursor for next page of results | |
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination |
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 says 'List email templates' and fails to mention pagination, output format, permissions, or any side effects. This is a minimal behavioral description that does not enrich the agent's understanding beyond the name.
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 waste or redundant information. Every word earns its place, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with fully documented parameters, the description is adequate but sparse. It does not mention pagination behavior despite the pagination parameters, and with no output schema, it fails to indicate what fields are returned. This leaves some ambiguity about the exact response structure, but the core purpose is clear.
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 (next, limit, offset). The description adds no additional parameter semantics, so the baseline score of 3 is appropriate as the schema already fully documents 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 'List email templates' clearly states the action (list) and the resource (email templates), which differentiates it from sibling tools like listTextMessageTemplates and getTemplate. It is specific and 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 for listing email templates but does not explicitly mention when to use it versus alternatives. The word 'email' provides implicit differentiation from listTextMessageTemplates, but no alternative tools or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listTextMessagesA
List text messages. FUB REQUIRES at least one filter: personId, threadId, phone, toNumber, fromNumber, sharedInboxId, groupTextId, participants, or id list. Unfiltered calls return 400.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Comma-separated message IDs | |
| next | No | Cursor for next page of results | |
| limit | No | Maximum number of results to return | |
| phone | No | Filter by phone | |
| offset | No | Offset for pagination | |
| personId | No | Filter by person ID | |
| threadId | No | Filter by thread ID | |
| toNumber | No | Filter by destination number | |
| fromNumber | No | Filter by source number | |
| groupTextId | No | Filter by group text | |
| participants | No | Comma-separated participants | |
| sharedInboxId | No | Filter by shared inbox |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavior disclosure. It discloses the mandatory filter requirement and the 400 error for unfiltered calls, which are critical behavioral traits. It does not mention pagination behavior or sorting, but the schema already describes pagination parameters, so the description adds substantial value beyond the structured data.
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. The first sentence states the purpose concisely, and the second delivers the essential constraint and error behavior without redundancy. It is front-loaded and 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?
Given the schema's rich parameter descriptions and the absence of an output schema, the description fills the most critical gap: the mandatory filter requirement and the 400 error. It does not elaborate on filter combination semantics or pagination details, but for tool selection and invocation, the description provides sufficient context to avoid common failures.
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 covers all 12 parameters with descriptions, so the baseline is 3. The description adds semantic value by grouping several parameters as valid filters and explicitly stating that at least one is required. This clarifies a critical constraint not evident from individual parameter descriptions, elevating the score above 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 tool's purpose: 'List text messages.' This is a specific verb+resource combination that distinguishes it from sibling tools like createTextMessage and getTextMessage. The additional note about FUB's filter requirement further clarifies the scope without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by explicitly stating that at least one filter is required and that unfiltered calls return 400. This gives the agent a key prerequisite. However, it does not explicitly mention when to prefer this tool over alternatives like getTextMessage for single messages, so it lacks explicit when-not or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listTextMessageTemplatesB
List text message templates
| Name | Required | Description | Default |
|---|---|---|---|
| next | No | Cursor for next page of results | |
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination |
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 the action without disclosing pagination behavior, ordering, or return format. The schema hints at pagination, but the description adds no behavioral context beyond the verb 'list'.
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: 'List text message templates'. Every word earns its place with no wasted content, appropriate for a simple list 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 the tool's simplicity and full schema coverage, the description is minimally adequate. However, without an output schema and with no mention of pagination or alternatives, it is not fully complete for an agent to understand the full 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 description coverage is 100%, so the baseline of 3 applies. The description does not add any additional parameter semantics, but the schema already fully documents 'next', 'limit', and 'offset'.
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 specific verb 'List' and the resource 'text message templates', clearly distinguishing from sibling tools like 'listTextMessages' and 'listTemplates'. It is specific and 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 provides no guidance on when to use this tool versus alternatives such as 'listTemplates' or 'getTextMessageTemplate'. No exclusions or preferred contexts are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listTimeframesB
List all timeframes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'List all timeframes' without disclosing output format, pagination, ordering, or whether it is read-only. The verb 'list' implies read-only but the description does not explicitly state any 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?
The description is exceptionally concise at three words, with every word serving a purpose. It is front-loaded and clear, though it 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?
With no output schema, no annotations, and a bare description, the tool leaves the user uninformed about what a timeframe is, what the response contains, or any limitations. It is minimally adequate for a list operation but lacks essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description adds no parameter information. With no params to document, this is acceptable and aligns with the baseline score of 4 for 0-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly uses the verb 'List' and resource 'timeframes', making the action unambiguous. It distinguishes from sibling tools by naming a unique resource, but lacks any context on what timeframes are in this 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?
There is no guidance on when to use this tool versus alternatives, nor any mention of exclusions or prerequisites. Since it is a simple list-all with no parameters, the usage is implied but still undocumented.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listUnclaimedA
List unclaimed people (in ponds, not assigned)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| offset | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It conveys that the tool lists unclaimed people, filtered to those in ponds and not assigned. However, it does not disclose additional behavioral details such as pagination behavior, ordering, or what constitutes 'unclaimed', nor does it explain the domain term 'pond'. It is not misleading and provides the key filter.
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 conveys the 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?
For a paginated list tool, the description covers the core purpose and scope, but it omits any explanation of the 'ponds' concept and does not describe the return value format (no output schema exists). Given the simplicity, it is adequate but not comprehensive.
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 both parameters (limit and offset) with full coverage. The description adds no additional parameter-specific meaning, so the 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 clearly states the verb 'List' and the resource 'unclaimed people', with the parenthetical clarifying scope ('in ponds, not assigned'). This distinguishes it from sibling tools like listPeople (which likely lists all people) and claimPerson (which claims people).
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 use case: retrieving unclaimed people within ponds. It does not explicitly mention alternatives or situations where this tool should not be used, but the context is clear enough for an agent to decide when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listUsersB
List all users/agents in the account
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Comma-separated user IDs | |
| next | No | Cursor for next page of results | |
| sort | No | Sort order | |
| limit | No | Maximum number of results to return | |
| fields | No | Comma-separated list of fields to return | |
| offset | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the core action without disclosing pagination behavior, filtering capabilities, or response structure. The schema's pagination parameters suggest the tool does not necessarily return all users in one call, but the description claims 'all', which is potentially misleading.
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 unambiguous sentence, with no filler words, earning its place 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 description lacks explanation of pagination, sort, offset, and fields parameters, and no output schema is provided to clarify return format. An agent would need to infer behavior from the params alone, so the description is incomplete for a tool with this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions cover all six parameters, so the description adds little to parameter understanding beyond the context of 'all users'.
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 'list' with the resource 'users/agents' and scope 'in the account', clearly indicating this returns all users rather than a single user, distinguishing it from getCurrentUser and getUser.
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 all users, but does not explicitly mention when to prefer this over getUser or other list tools, nor does it mention pagination/filtering options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listWebhooksA
List all webhooks
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns all webhooks, which is a useful behavioral trait, but does not mention pagination, read-only status (implied by 'List'), or response structure. Minimal but not misleading.
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 unnecessary words. It front-loads the verb and resource, making it instantly understandable and appropriately 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 the tool's simplicity (no parameters, no output schema), the description is adequate but minimal. It doesn't clarify whether 'all' means all webhooks in the account or all accessible to the user, nor what fields are returned. For a basic list tool, this is sufficient but lacks depth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty with 100% coverage. The description adds no parameter details, but none are needed since there is nothing to explain.
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 specific verb 'List' and the resource 'webhooks', clearly indicating the operation. The scope 'all' distinguishes it from getWebhook, which fetches a single webhook, 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?
No explicit guidance is given on when to use listWebhooks vs alternatives like getWebhook or getWebhookEvents. The usage is implied by the name and the 'all' scope, but no alternatives or exclusions are mentioned, so the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mergeTemplateB
Merge an email template with a person's data (mail merge)
| Name | Required | Description | Default |
|---|---|---|---|
| personId | Yes | Person ID | |
| templateId | Yes | Template ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. The word 'Merge' implies an operation, but it does not disclose whether this modifies data, returns merged content, or requires specific permissions. The behavior is under-specified beyond the basic merge concept.
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, succinct sentence that delivers the core purpose without any filler. Every word earns its place; no structural issues.
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 no output schema and no annotations, the description should clarify what the tool returns or accomplishes. It does not mention whether the result is a string, a saved entity, or something else. The tool is simple, but the lack of behavioral detail leaves the agent guessing about the outcome.
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% (both params have descriptions 'Person ID' and 'Template ID'). The description adds the contextual notion of mail merge, implying template placeholders are replaced with person data, which adds value beyond the schema. Baseline is 3 for high coverage, and this modest extra context justifies a 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 specifies a clear action ('Merge') and resource ('an email template with a person's data'), with a clarifying parenthetical ('mail merge'). It distinguishes from sibling 'mergeTextMessageTemplate' by explicitly stating 'email template', making the tool's 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?
No guidance is provided on when to use this tool versus alternatives. The description does not mention sibling tools like 'mergeTextMessageTemplate' or any exclusions. It merely states what the tool does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mergeTextMessageTemplateC
Merge a text message template with person data
| Name | Required | Description | Default |
|---|---|---|---|
| personId | Yes | Person ID | |
| templateId | Yes | Template ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing side effects. It simply says 'merge', leaving unclear whether this is read-only, whether it modifies the template, or what it returns. No behavioral details are provided.
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, unwordy sentence but is too terse to be fully effective. It lacks the elaboration needed for a tool with no output schema and no annotations, making it under-specified rather than appropriately 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 the absence of annotations and an output schema, the description is incomplete. It does not explain the output format, potential side effects, or appropriate use cases, leaving significant ambiguity.
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 provides 100% coverage with descriptions for both 'personId' and 'templateId'. The description adds no additional parameter information, so the 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 states a clear verb ('merge') and resource ('text message template') with a target object ('person data'). It distinguishes from sibling tools like 'createTextMessage' and 'updateTextMessageTemplate', though it does not explicitly differentiate from the similarly named 'mergeTemplate'.
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 such as 'mergeTemplate' or 'createTextMessage'. There is no mention of prerequisites, intended scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
removeTagFromPersonA
Remove a single tag from a person without affecting their other tags. Handles the read-modify-write cycle internally.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Person ID | |
| tag | Yes | Tag to remove (case-insensitive match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description takes on the burden of behavioral disclosure. It reveals the read-modify-write cycle and the guarantee of not affecting other tags, which adds meaningful context about how the operation works internally. Could disclose failure behavior but not necessary for a simple removal.
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, front-loaded with the core purpose, followed by the key behavioral note. Every clause 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 two-parameter tool with no annotations and no output schema, the description provides the essential behavioral context (single tag, non-destructive to other tags, internal cycle). It is sufficient for an agent to select and invoke the tool, though it doesn't specify edge-case outcomes.
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 both parameters with descriptive text (Person ID, case-insensitive match). The description adds no additional parameter-level meaning, so baseline 3 applies per high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove a single tag') with the specific resource ('from a person') and adds a distinguishing guarantee ('without affecting their other tags'). This distinguishes it from generic updatePerson 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?
Implies usage for removing a tag from a person, but does not explicitly state when to choose this over updatePerson or other tag-related tools. No alternatives or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchPeopleByTagA
Find all people with one or more tags. Comma-separate multiple tags for OR matching (e.g. 'Investor,Buyer' returns people with either tag).
| Name | Required | Description | Default |
|---|---|---|---|
| tags | Yes | Comma-separated tag(s) to search for | |
| limit | No | Max results (default 25, max 100) | |
| offset | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It discloses a key behavioral trait: comma-separated tags are matched with OR logic, meaning a person matches if they have any of the specified tags. This goes beyond a simple 'find people' statement. It does not mention pagination or return format, but the core behavior is well 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 two sentences long, with the main purpose front-loaded in the first sentence. The second sentence adds a crucial usage detail (OR matching) with an example. There is no wasted text or repetition of schema 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 search tool with no output schema and no annotations, the description covers the essential behavior: what it finds and how multiple tags are interpreted. Pagination parameters are documented in the schema, so their absence in the description is acceptable. It could be more complete by mentioning default limits or return structure, but the current description is adequate for an agent to invoke the tool 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%, so the baseline is 3. The description adds value by explaining that comma-separated tags produce OR matching, using a concrete example. This clarifies the semantics of the 'tags' parameter beyond the schema's basic 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 states a specific verb ('Find') and resource ('all people') with a clear method ('by tags'). It distinguishes from sibling tools like listPeople by specifying the tag-based search mechanism. The OR matching example further clarifies the exact behavior.
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 clearly implies when to use this tool: when you need to find people by tags. It provides specific usage instructions for multiple tags (comma-separated for OR matching). However, it does not explicitly mention alternatives or when not to use it, so it lacks the explicit exclusions seen in top-tier examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateActionPlanPersonC
Update a person's action plan status
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ActionPlanPerson ID | |
| status | No | New status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states 'Update' without addressing side effects, required preconditions (e.g., existing ActionPlanPerson), valid status values, or whether other fields are unaffected. This is a minimal mutation description with no added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no verbose or redundant wording. It is front-loaded with the action and resource, but it is so brief that it misses opportunities to include valuable context, preventing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema and no output schema, the description is still incomplete for a mutation tool. It fails to clarify that only the status is updated, that the referenced person must already be part of an action plan, or any detail about valid status transitions. The potential ambiguity of 'a person's action plan status' further reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both parameters already have descriptions (id as 'ActionPlanPerson ID', status as 'New status'). The tool description adds no additional meaning beyond the schema, so the 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 a clear verb 'Update' and identifies the resource as 'a person's action plan status', making the tool's primary purpose understandable. It distinguishes from siblings like updateAutomationPerson, though it could be more explicit about updating the ActionPlanPerson entity itself.
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 updatePerson or updateAutomationPerson. No prerequisites, exclusions, or alternative tool mentions are included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateAppointmentA
Update an appointment. FUB requires start and end on EVERY update or it returns 'Valid Start and End dates are required'. Refetch with getAppointment first if you only have the id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Appointment ID | |
| end | No | End ISO | |
| start | No | Start ISO | |
| title | No | ||
| allDay | No | ||
| typeId | No | Type ID | |
| invitees | No | ||
| location | No | ||
| outcomeId | No | Outcome ID | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It reveals a critical FUB requirement (start and end must be provided on every update) and the exact error message returned otherwise. This goes beyond the schema and warns of a non-obvious constraint.
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: the first states the purpose, the second packs crucial usage and behavioral guidance. No fluff, every word earns its place, and the critical warning is front and center.
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 10-parameter mutation tool with no output schema, this description covers the main trap (start/end requirement) and the safe usage pattern (refetch first). It omits other possible constraints or return-value details, but the essential operational knowledge is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, and the description significantly compensates by stating that `start` and `end` are effectively required despite being optional in the schema. It also implies the need to fetch current values, adding semantic meaning to the parameters beyond their descriptions.
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 appointment' with a specific verb and resource. This distinguishes it from sibling tools like updateAppointmentType or updateCall, leaving no ambiguity about what entity it 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 gives a clear, actionable prerequisite: 'Refetch with getAppointment first if you only have the id.' This tells the agent when and how to prepare. It doesn't explicitly exclude alternatives, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateAppointmentOutcomeC
Update an appointment outcome
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Outcome ID | |
| name | Yes | Name |
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 says 'Update', implying a mutation, but does not describe side effects, permissions, idempotency, partial update behavior, or response format. This is insufficient for an agent to safely invoke the 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, short sentence with no filler words. It is efficiently front-loaded and earns its place, though it is terse. This is ideal conciseness 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?
Given the lack of annotations and output schema, the description alone is too sparse. It does not explain what an 'appointment outcome' is, whether the update is partial or full, or why 'name' is required. The schema parameter descriptions are vague ('Name'), so the description does not compensate for the missing context.
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 baseline is 3. The description itself ('Update an appointment outcome') adds no parameter meaning beyond the schema, which already provides minimal descriptions for 'id' and 'name'. The parameter semantics are adequate but not enhanced.
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 'Update' and the resource 'appointment outcome', making it clear what the tool does. It is distinguishable from sibling tools like createAppointmentOutcome and getAppointmentOutcome due to the 'update' verb, but it lacks any additional scope or differentiation detail.
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. There is no mention of prerequisites, exclusions, or related tools, leaving the agent to infer usage solely from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateAppointmentTypeC
Update an appointment type
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Type ID | |
| name | Yes | Name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It only states 'update' (a mutation) but does not mention side effects, required permissions, reversibility, or return values. The behavior is as opaque as the tool's name, providing no added 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, compact sentence with no filler words. It is appropriately front-loaded, but it may be too minimal given the lack of other context. Still, it is efficient and easily parsed.
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 update tool with two fully described parameters, the description is adequate but not rich. It does not explain what happens on update (e.g., return value, partial vs full update), and no output schema exists. The lack of behavioral context reduces completeness, but the tool's simplicity keeps it at a minimum-viable level.
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% for both parameters (id and name), so the schema already documents them. The description adds no additional meaning or context about how these parameters are used, so the baseline 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 clearly states the verb 'update' and the resource 'appointment type', making it easy for an agent to know what the tool does. It distinguishes from sibling tools like createAppointmentType and getAppointmentType, though it doesn't specify which attributes are updatable (left to the schema).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description only says 'Update an appointment type' with no mention of prerequisites, alternative tools, or contextual scenarios. With many sibling update tools, this leaves the agent to infer usage from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateAutomationPersonB
Update a person's automation status
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | AutomationPerson ID | |
| status | No | New status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'Update' without mentioning idempotency, permissions, side effects, or result behavior, leaving the agent uninformed about mutation consequences.
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 six words, front-loaded with action and resource. It is appropriately sized for the tool's simplicity and contains 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 full param coverage, the description lacks explicit return values, error conditions, or behavioral context. For a mutation tool with no annotations and no output schema, it falls short of being 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 input schema fully documents both 'id' and 'status' with descriptions, so the baseline is 3. The description does not add parameter semantics beyond saying 'person's automation status', which is already implied by the tool name and 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 a specific verb ('Update') and resource ('a person's automation status'), clearly distinguishing it from sibling tools like addPersonToAutomation or getAutomationPerson. It concisely conveys the tool's exact function.
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 about when to use this tool versus alternatives such as 'addPersonToAutomation' or 'updateActionPlanPerson'. There are no prerequisites, exclusions, or context hints to help the agent choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateCallC
Update a call record
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Call ID | |
| note | No | Note | |
| phone | No | Phone number | |
| userId | No | User ID | |
| outcome | No | Outcome | |
| duration | No | Duration | |
| personId | No | Person ID | |
| toNumber | No | ||
| fromNumber | No | ||
| isIncoming | No | true = inbound | |
| recordingUrl | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure, but it only says 'update', implying mutation. It does not state whether the operation is a partial update, which fields are required, whether permissions are needed, or what the response contains.
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 short sentence with no wasted words, but it is under-specified; the sentence essentially restates the tool name without adding helpful context. Conciseness is acceptable, but it sacrifices informativeness.
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 11 parameters, no annotations, and no output schema, a one-line generic description is far from sufficient. It fails to explain required inputs, update semantics, return values, or how this tool fits with sibling call 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?
The description adds no parameter-level meaning. Schema coverage is 73%, but three parameters (toNumber, fromNumber, recordingUrl) are undocumented in the schema, and the description does not help clarify any of the 11 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 states the verb 'update' and the resource 'call record', making the basic action clear. However, it provides no scope, fields, or differentiation from sibling update tools beyond the resource type already encoded in the tool name.
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 about when to use updateCall rather than createCall, getCall, or other update tools. There is no mention of prerequisites, typical scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateCustomFieldC
Update a custom field
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Custom field ID | |
| name | No | Name | |
| type | No | Type | |
| options | No | Options |
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. 'Update a custom field' merely restates the tool name and implies mutation without detailing side effects, partial vs. full updates, permissions, or any other behavioral traits. It adds no value beyond the name itself.
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 short sentence, which is concise and front-loaded. However, it is also under-specified—it restates the tool's name without adding explanatory value, so it does not fully 'earn its place' as a helpful description.
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 inadequate. It fails to explain the update behavior, return value, required parameters' significance, or any caveats. The schema lists properties, but the description does not offer the contextual completeness needed for confident 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 100%, with each parameter having a basic description (id, name, type, options). The tool description adds no additional parameter semantics, so the baseline of 3 applies; the schema alone is adequate but not enriched.
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 identifies the action ('Update') and the resource ('custom field'), which distinguishes it from create/get/list siblings. However, it lacks specificity about which attributes can be updated, making it slightly less informative than ideal but still 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?
No guidance is provided about when to use this tool versus alternatives like createCustomField or getCustomField. There is no mention of prerequisites, context, or conflicting tools, leaving the agent without directional support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateDealA
Update a deal. Use price (not value) and peopleIds (not personId).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Deal ID | |
| name | No | Name | |
| price | No | Price | |
| stageId | No | Stage ID | |
| userIds | No | User IDs | |
| peopleIds | No | People on deal | |
| description | No | Description | |
| possessionDate | No | Possession date (YYYY-MM-DD) | |
| teamCommission | No | Team commission split | |
| agentCommission | No | Agent commission split | |
| commissionValue | No | Total commission value | |
| dueDiligenceDate | No | Due diligence date (YYYY-MM-DD) | |
| projectedCloseDate | No | Projected close date (YYYY-MM-DD) | |
| earnestMoneyDueDate | No | Earnest money due date (YYYY-MM-DD) | |
| finalWalkThroughDate | No | Final walk-through date (YYYY-MM-DD) | |
| mutualAcceptanceDate | No | Mutual acceptance date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavioral traits. It only restates the update action and gives parameter naming tips; it does not mention whether updates are partial or full, permission requirements, or the return value. This is a significant 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 short sentences, front-loaded with the purpose statement. Every word earns its place, and the naming hints are directly actionable, making it extremely concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and an output schema, the description leaves out behavioral details like return value and mutation semantics. However, the schema is thorough for parameters, and the naming correction adds important context. The tool is moderately complex, so a bit more detail on expected behavior would improve completeness, but it is minimally sufficient.
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 already documents all 16 parameters with descriptions, providing a baseline of 3. The description adds valuable extra guidance by explicitly correcting common naming mistakes ('price' not 'value', 'peopleIds' not 'personId'), which goes beyond the schema and helps the agent invoke the tool correctly.
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 a deal' with a specific verb and resource, distinguishing it from siblings like createDeal and getDeal. The additional naming hints do not obscure the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Update a deal' provides clear context for when to use this tool, and the name itself differentiates from related tools. However, it does not explicitly state when not to use it or mention alternatives, though the CRUD naming makes this largely unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateDealAttachmentC
Update a deal attachment
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Attachment ID | |
| uri | Yes | URI | |
| dealId | Yes | Deal ID | |
| fileName | Yes | File name | |
| fileSize | No | Size |
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. 'Update a deal attachment' only implies a mutation but does not state whether it overwrites existing data, requires specific permissions, or is reversible. This is a significant 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 a single sentence with minimal waste, but it is under-specified. It is concise but at the cost of conveying essential information, so it doesn't reach the level of a well-crafted, informative description.
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?
This is a 5-parameter mutation tool with no output schema, yet the description does not explain what happens on update, what the response looks like, or any side effects. The description is far too sparse to be considered complete for an AI agent to invoke successfully.
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 provides descriptions for all parameters (100% coverage), so the baseline is 3. The description adds no additional meaning beyond the schema, not even hinting at which fields are most relevant or how they interact.
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 'Update a deal attachment' clearly identifies the action (update) and the resource (deal attachment), distinguishing it from related tools like updatePersonAttachment. However, it lacks any additional context about what updating entails, so it doesn't fully earn a 5.
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 such as createDealAttachment or getDealAttachment. The description gives no context for appropriate use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateDealCustomFieldC
Update a deal custom field
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Field ID | |
| type | No | Field type | |
| label | No | User-friendly field name | |
| choices | No | ||
| readOnly | No | ||
| hideIfEmpty | No | ||
| isRecurring | No | ||
| orderWeight | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. The single phrase "Update" implies mutation but offers nothing about side effects, validation behavior, idempotency, required permissions, or response format. This is a significant transparency 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 a single sentence with no wasted words, making it highly concise and front-loaded. However, it is so minimal that it borders on under-specification; still, for what it does say, it 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 that this is an 8-parameter mutation tool with no annotations and no output schema, a one-line description is severely incomplete. It lacks information about which fields are updatable, whether partial updates are supported, return behavior, and any caveats, making it inadequate for reliable tool 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 38%, and the description adds no parameter semantics beyond what the schema already provides. It doesn't mention the required id, the meaning of the boolean flags, or the choices array, so the description fails to compensate for the schema's limited 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 "Update a deal custom field" clearly identifies the verb (update) and the resource (deal custom field), which is specific enough to distinguish it from generic custom field operations. However, it doesn't explicitly differentiate from the similarly named sibling tool 'updateCustomField'.
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 createDealCustomField or updateCustomField. There is no context about prerequisites, expected usage scenarios, or exclusions, 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.
updateEmCampaignC
Update an email marketing campaign
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Campaign ID | |
| origin | No | Origin | |
| subject | No | Subject | |
| bodyHtml | No | Body HTML | |
| originId | No | Origin ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'update,' which implies mutation but doesn't disclose permissions, partial vs full update semantics, side effects, or return behavior. The description carries the full burden but adds little context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It is front-loaded, but borderline underspecified; however, for a simple update tool, this level of conciseness is acceptable.
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 5 parameters and no annotations/output schema, a one-sentence description is insufficient to fully guide an agent. It lacks details on update semantics, what can be changed, and expected outcomes, similar to the mid-tier calibration example.
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 covers 100% of parameters with descriptions, so baseline is 3. The description adds no additional parameter information 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 identifies the verb ('Update') and resource ('email marketing campaign'), distinguishing it from create/list siblings. However, it is terse and doesn't elaborate on the scope of updates, relying on the schema.
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 createEmCampaign or listEmCampaigns, and no prerequisites or context for updating a campaign.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateGroupC
Update a group
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Group ID | |
| name | No | Name | |
| userIds | No | User IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. Beyond 'Update a group,' there is no disclosure of whether the update is partial or full replacement, how userIds behaves, authentication requirements, or return values.
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?
At just three words, the description is extremely concise and front-loaded. Every word is necessary, but the brevity borders on under-specification, so a 4 is appropriate rather than 5.
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 is a mutation with no annotations and no output schema, the description is incomplete. It lacks behavioral context such as update semantics, validation rules, or effects on related entities. The simple schema does not compensate for this gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add any explanation about the semantics of name or userIds (e.g., whether userIds replaces the full list or merges). It simply labels the resource.
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 ('Update') and the resource ('a group'), which distinguishes it from sibling tools like createGroup, getGroup, and listGroups. However, it provides no detail about what updating a group entails, so it lacks some 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?
No guidance is provided about when to use this tool versus alternatives like createGroup or getGroup. There is no mention of prerequisites, typical use cases, or scenarios where another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateNoteC
Update a note
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID | |
| body | Yes | Updated note body |
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 verb 'update,' giving no information about side effects, idempotency, return values, or potential destructive aspects. This is a minimal disclosure with significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff. However, it is under-specified, essentially restating the tool name. While it is not verbose, it lacks the additional structure or context that would make it a valuable description.
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 2-parameter tool with no output schema, the description is minimally complete but still leaves gaps. It does not explain what the update operation returns, whether it is a full or partial update, or any behavioral expectations. With no annotations to supplement, the description is insufficient for full contextual completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'id' and 'body' having meaningful descriptions. The tool description adds no extra parameter context, but the baseline for high schema coverage is 3, and the schema already handles parameter semantics 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 'Update a note' clearly states a specific verb (update) and resource (note), which distinguishes it from siblings like getNote and listNotes. However, it adds no extra scope or context beyond the tool name, so it stops short of a 5.
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 exclusions, prerequisites, or contrast with createNote, getNote, or other update tools. The use case is implied by the name but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updatePersonB
Update an existing person in FUB
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Person ID to update | |
| tags | No | Tags | |
| price | No | Price point | |
| stage | No | Pipeline stage | |
| emails | No | Email addresses: [{value, type}] | |
| phones | No | Phone numbers: [{value, type}] | |
| lastName | No | Last name | |
| addresses | No | Addresses: [{street, city, state, code, type}] | |
| contacted | No | Contacted status | |
| firstName | No | First name | |
| mergeTags | No | Merge tags instead of replacing (query param) | |
| assignedTo | No | Assigned agent name | |
| background | No | Background info | |
| timeframeId | No | Timeframe ID | |
| assignedPondId | No | Assigned pond ID | |
| assignedUserId | No | Assigned user ID | |
| assignedLenderId | No | Assigned lender ID | |
| assignedLenderName | No | Assigned lender name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'Update an existing person'. It fails to reveal whether updates are partial or full replacement, idempotency, error behavior, or required permissions. This is a significant 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 a single, well-structured sentence that is front-loaded and contains zero filler. It efficiently communicates the core purpose, making it appropriately 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?
For a tool with 18 parameters, no output schema, and no annotations, a one-sentence description is inadequate. It does not explain return values, update semantics (e.g., merge vs replace), required fields beyond the schema, or usage examples, leaving significant gaps for effective 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 input schema provides descriptions for all 18 parameters, achieving 100% schema description coverage. The tool description itself adds no parameter details, but since the schema already documents each field, the 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 tool's function: 'Update an existing person in FUB'. It specifies a concrete verb (update) and resource (person), distinguishing it from createPerson, getPerson, and other update tools for different entities.
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 given on when to use this tool versus alternatives like createPerson, bulkUpdatePeople, or other update operations. The description does not mention prerequisites (e.g., the person must already exist) or any specific context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updatePersonAttachmentC
Update a person attachment
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Attachment ID | |
| uri | Yes | File URI | |
| fileName | Yes | File name | |
| fileSize | No | File size | |
| personId | Yes | Person ID |
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 says 'Update a person attachment' without specifying whether the update is partial or full replacement, how omitted fields like fileSize are handled, or any side effects or permission requirements. This is a serious transparency 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 a single concise sentence with no redundant wording, earning its place by stating the tool's purpose. However, it is very brief, which slightly limits its informative value, though this is a conciseness score, not a completeness score.
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 5 parameters, no annotations, and no output schema, the description is insufficient. It does not explain update behavior, what happens to unspecified fields, or the response format, making the tool's contract ambiguous 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?
The input schema has 100% description coverage for all five parameters, so the baseline is 3. The description adds no meaning beyond the schema—it does not clarify the relationship between parameters or update semantics.
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 specific verb 'update' with the resource 'person attachment', making the primary action clear. It distinguishes itself from sibling tools like createPersonAttachment and getPersonAttachment, though it lacks additional scope or context.
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 such as createPersonAttachment or getPersonAttachment. The description does not mention prerequisites, like whether the attachment must already exist, or any scenarios that favor this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updatePipelineC
Update a pipeline
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pipeline ID | |
| name | Yes | Name |
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 simply says 'Update a pipeline' without mentioning side effects, partial vs full replacement, authentication requirements, or return value.
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 filler. However, it is so brief that it borders on under-specification, preventing a perfect score.
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 no output schema and minimal annotations, the description lacks context about update behavior, required fields beyond the schema, and response format. It is minimally complete for a simple CRUD operation but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters (id, name) with descriptions, so the baseline is 3. The description adds no additional meaning beyond the schema, which is sufficient for this simple update.
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 'Update a pipeline' clearly identifies the verb (update) and resource (pipeline). However, it does not differentiate this tool from sibling tools like updateDeal or updateRelationship, apart from the resource name.
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?
There is no guidance on when to use this tool versus getPipeline, createPipeline, or listPipelines. The description only states the action without contextualizing it among alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updatePondC
Update a pond
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pond ID | |
| name | Yes | Name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It only states 'Update a pond' without explaining the mutation's effects, whether the update is partial or full, any permission requirements, or what the response contains. This is a significant gap for a write 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 extremely concise at three words, but it is under-specified. While brevity is valued, the description does not include enough detail to be considered well-structured for an agent; it is simply a minimal phrase without added 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?
With no output schema and no annotations, the description should provide more context about the update behavior, return values, or side effects. The tool has only two simple parameters, so the overall complexity is low, but the description still leaves the agent with insufficient information about the tool's 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?
The input schema has 100% coverage for both parameters (id and name), each with a clear description. The tool description adds no additional parameter meaning beyond the schema, so the 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 'Update a pond' clearly identifies the action (update) and the resource (pond), distinguishing it from sibling tools like createPond, getPond, and listPonds. However, it lacks specifics about what fields or aspects of a pond can be updated, relying on the schema for that detail.
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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of when updating is appropriate. The description does not differentiate between creating, getting, or updating a pond in terms of usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateRelationshipC
Update a relationship contact
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Relationship ID | |
| type | No | Relationship type (e.g. Spouse) | |
| emails | No | ||
| phones | No | ||
| lastName | No | ||
| addresses | No | ||
| firstName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It only repeats the tool's name and action, disclosing nothing about partial updates, required fields beyond 'id', whether fields are replaced or merged, permission needs, or side effects. For a mutation tool, this is a serious 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 short sentence with no wasted words, but it is under-specified. Given the tool has 7 parameters and no annotations, one sentence stating the obvious is too thin to earn its place; it sacrifices needed detail for 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?
The tool is moderately complex with 7 parameters, no annotations, and no output schema. The description provides no additional context about update behavior, return values, or constraints, making it completely inadequate for an agent to understand the tool's full scope and implications.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (29%), with only 'id' and 'type' having brief descriptions. The tool description adds no parameter meaning beyond the schema's existing entries, leaving fields like 'emails', 'phones', 'addresses', 'firstName', and 'lastName' unexplained. It does not compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action 'Update' and a resource 'relationship contact', which specifies the tool's function and distinguishes it from siblings like createRelationship and getRelationship. However, the phrase 'relationship contact' is slightly ambiguous, and it could be more explicit about whether this updates a relationship entity or the contact details attached to it.
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. While 'Update' implies it should be used for existing relationships rather than creation (createRelationship) or retrieval (getRelationship), there is no explicit context, prerequisites, or exclusion of other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateStageC
Update a stage
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Stage ID | |
| name | Yes | Stage name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the action without disclosing behavioral details such as whether it returns the updated record, what happens if the stage ID is invalid, or any side effects. For a mutation tool, 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, concise sentence with no wasted words. However, it is under-specified, but that is a completeness issue rather than a conciseness issue.
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 mutation tool with no annotations or output schema, the description is too thin. It doesn't mention return behavior or error conditions, making it inadequate for an agent to fully understand the tool's effects.
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 provides 100% coverage with descriptions for both parameters (id and name). The description adds no additional parameter semantics, so the 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 'Update a stage' clearly states the action (update) and resource (stage), distinguishing it from siblings like createStage, getStage, and listStages. However, it is minimal and doesn't specify which attributes can be updated, though the schema covers that.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The verb 'update' implies modifying an existing stage, but there is no explicit context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateTaskC
Update a task
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Task ID | |
| name | No | Name | |
| status | No | Status | |
| dueDate | No | Due date | |
| personId | No | Person ID | |
| assignedUserId | No | Assigned user |
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 merely says 'Update a task' and provides no details about whether partial updates are allowed, what happens when the task doesn't exist, or whether the updated task is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at one sentence, but it's under-specified given the tool's six parameters. It's not overly verbose, but it also doesn't earn its place by adding any meaningful information beyond the tool name.
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 a moderate number of parameters and no output schema, so the description should explain return values or side effects. It does neither. The lack of annotations and minimal description leave significant gaps for a caller.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all parameters with descriptions (100% coverage), so the baseline is 3. The tool description adds no parameter semantics beyond what's already in the schema, but the schema itself is sufficient.
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 'Update a task' clearly states a specific verb and resource. However, it doesn't distinguish this tool from siblings like updateDeal or updatePerson, though the resource name itself is enough to disambiguate at a basic level.
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 createTask or getTask. The description lacks any context about prerequisites, timing, or related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateTeamC
Update a team
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Team ID | |
| name | No | Name | |
| description | No | Description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full responsibility for disclosing behavioral traits. It only states 'Update a team' with no mention of whether this is a partial update, whether unspecified fields are cleared, or any side effects, permissions, or error conditions. This is a serious 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 extremely brief, but this is under-specification rather than effective conciseness. It is a single sentence that only repeats the tool name, failing to earn its place by providing any unique information. Structure is minimal, with no additional context or formatting.
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 three-parameter mutation tool with no annotations and no output schema, the description is inadequate. It does not explain update semantics, required parameters, or expected behavior, leaving the agent without enough information to correctly predict the tool's effects or interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions ('id', 'name', 'description'). The description adds nothing beyond the schema, but since schema coverage is high, the baseline of 3 is appropriate. The description provides no additional meaning or constraints on 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 'Update a team' is a direct restatement of the tool name 'updateTeam', making it tautological. It names the verb and resource but adds no additional detail about the team entity or the specific update behavior, failing to distinguish itself from sibling update 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?
There is no guidance on when to use this tool, when not to use it, or how it differs from alternatives like updatePerson or updateGroup. The description offers no context, exclusions, or prerequisites, leaving the agent without direction on appropriate invocation scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateTemplateB
Update an email template
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Template ID | |
| body | No | Body HTML | |
| name | No | Name | |
| subject | No | Subject |
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 'update', implying mutation. It does not disclose whether updates are partial (only provided fields) or full replacements, what happens if the template ID does not exist, or the response format. No additional operational context is provided 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?
The description is a single, front-loaded sentence with no fluff. It is efficient and immediately conveys the core action. While it lacks detail, that is a completeness concern rather than a conciseness issue, so it earns a high score for structure.
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?
As a mutation tool with four parameters and no annotations or output schema, the description is under-specified. It omits critical operational details like update semantics (partial vs. full), the need for an existing template, and expected errors/return values, leaving the agent to make assumptions.
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 provides 100% coverage with descriptions for all parameters (id, body, name, subject). The tool description adds no further semantic meaning, but with full schema coverage, this meets the baseline and adequately guides parameter 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 verb 'update' and the resource 'email template', making it unambiguous. It also distinguishes from sibling tools like updateTextMessageTemplate by specifying 'email', and from createTemplate/getTemplate/mergeTemplate by indicating modification.
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 offers no guidance on when to use this tool versus alternatives such as createTemplate or getTemplate. It does not mention that the template must already exist, nor does it differentiate partial versus full update behavior. Usage is only implicit via the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateTextMessageTemplateB
Update a text message template
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Template ID | |
| body | No | Body | |
| name | No | Name |
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 does not mention whether partial updates are allowed, whether missing fields are ignored, required permissions, or the return format. The one-line description adds no insight beyond the tool's name.
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 fluff. While short, it efficiently states the tool's 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?
Given the absence of annotations and output schema, the description is insufficient to fully understand the tool's behavior. It does not explain update semantics, optional vs. required parameters, return values, or error conditions, making it inadequate for a mutation tool with several sibling operations.
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 descriptions for all three parameters (id, body, name), achieving 100% coverage. The tool description adds no additional parameter semantics or usage details beyond the schema, so it aligns with the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update a text message template' uses a specific verb and resource, clearly distinguishing it from similar template tools like createTemplate, getTemplate, or mergeTemplate. It unambiguously identifies the target entity.
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 createTextMessageTemplate or updateTemplate. It does not mention prerequisites, constraints, or exclusion criteria, leaving the agent to infer 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.
updateWebhookC
Update a webhook
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook ID | |
| url | No | Callback URL | |
| event | No | Event type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. However, it gives no information about side effects, whether the update is partial or full, idempotency, or permission requirements, leaving the agent without 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?
The description is extremely short (three words), but it offers no added value over the tool name due to being a restatement. This is under-specification rather than effective 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 mutation tool with no annotations and no output schema, the description fails to explain update semantics, return values, or required scope. The schema covers parameters, but the tool still lacks essential context for an agent to understand behavior and expected results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides complete descriptions for all three parameters (id, url, event) with 100% coverage, so the baseline is 3. The description adds no parameter-level meaning beyond the schema, but the schema is sufficiently detailed to compensate.
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 'Update a webhook' directly restates the tool name 'updateWebhook' with no additional detail, making it a tautology. It does not specify which attributes can be updated or how it relates to sibling tools like createWebhook or getWebhook.
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 instead of alternatives, no prerequisites, and no context for updating a webhook. It simply states the action with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have a clearly distinct resource+action target, but the sheer number creates some potentially confusing pairs (e.g., listEvents vs listEmEvents, listPeople vs searchPeopleByTag). Descriptions help resolve these, so ambiguity is limited.
The naming pattern is largely consistent: verb_noun with list<resources> for collections and get/create/update for individuals. A few exceptions like 'about', 'help', and 'checkDuplicate' deviate, but they are special-purpose tools and do not break the overall pattern.
With 137 tools, this server is extremely over-scoped. Even for a full CRM API, exposing every endpoint as an MCP tool is unwieldy and far exceeds the recommended 3-15 tool range.
The server covers a wide range of CRM resources with CRUD operations, but delete operations are notably absent for most resource types (people, deals, notes, etc.), creating dead ends that agents cannot work around.
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
API-first CRM for LLMs - contacts, companies, deals and activities over a native MCP server.
AI agent platform: manage leads, conversations, bots, calendar and CRM via MCP.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- FlicenseCqualityAmaintenanceMCP server for Follow Up Boss CRM with 157 tools covering 100% of the official API. Manage contacts, deals, pipeline, tasks, emails, smart lists, action plans, webhooks, and more through natural language.13724
- AlicenseBqualityDmaintenanceA comprehensive MCP server that connects AI assistants to GoHighLevel CRM, enabling management of contacts, conversations, calendars, pipelines, payments, and more through 60+ tools.6456MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server for GoHighLevel with 82 live-tested tools, enabling CRM operations like contact management, appointments, invoices, and workflows via natural language.37MIT
- FlicenseNot gradedqualityCmaintenanceA self-hosted MCP server that connects a Follow Up Boss CRM account to Claude, enabling CRM operations through natural language via 25 curated tools and a raw API tool.
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/NerdSnipe-Inc/follow-up-boss-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server