Skip to main content
Glama

Moxie MCP Server v2

Upgraded MCP server for Moxie CRM — fully compatible with Claude Desktop, Claude Code, Osaurus, Cursor, VS Code Cline, and any MCP client.

Upgrades from v1.1.x

  • Claude JSON compatible — works with claude_desktop_config.json out of the box

  • dotenv support — load config from .env file for local dev

  • MCP Resources — exposes workspace config and server info as resources

  • Health check tool (moxie_health_check) — validate your setup

  • Startup validation — warns on missing env vars at launch

  • Renamed binarymoxie-mcp (shorter, cleaner)

  • Updated dependencies — latest @modelcontextprotocol/sdk, axios, zod

Related MCP server: Moxie CRM MCP Server

Quick Start

git clone <your-repo-url> moxie-mcp
cd moxie-mcp
npm install
npm run build

Get Your API Key

  1. Log into your Moxie account

  2. Workspace SettingsConnected AppsIntegrations

  3. Click Enable Custom Integration

  4. Copy your API Key and Base Endpoint URL

Claude JSON Config (Claude Desktop / Osaurus / Any MCP Client)

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "moxie": {
      "command": "node",
      "args": ["/absolute/path/to/moxie-mcp/build/index.js"],
      "env": {
        "MOXIE_API_KEY": "your_api_key_here",
        "MOXIE_BASE_URL": "https://pod01.withmoxie.com/api/public"
      }
    }
  }
}

For Osaurus or OpenRouter MCP configs, use the same structure.

Or install globally and use npx:

{
  "mcpServers": {
    "moxie": {
      "command": "npx",
      "args": ["-y", "moxie-mcp"],
      "env": {
        "MOXIE_API_KEY": "your_api_key_here",
        "MOXIE_BASE_URL": "https://pod01.withmoxie.com/api/public"
      }
    }
  }
}

Resources

This server exposes MCP resources for context-aware clients:

Resource URI

Description

moxie://workspace/config

Workspace configuration details

moxie://server/info

Server version and available tools

Available Tools

Clients

  • list_clients — List all clients

  • search_clients — Search clients by name/contact

  • create_client — Create a new client

Contacts

  • search_contacts — Search contacts by name/email/phone

  • create_contact — Create a contact under a client

Projects

  • search_projects — Search projects (optionally by client)

  • create_project — Create a project

  • update_project — Update project details

  • list_project_task_stages — List kanban stages

Invoices

  • search_payable_invoices — Search invoices

  • create_invoice — Create invoice (draft or send)

  • apply_payment — Apply payment to invoice

Tasks

  • create_task — Create task with subtasks, assignees, custom fields

Time Tracking

  • create_time_entry — Log time with auto-creation flags

Expenses

  • create_expense — Record expenses (billable/reimbursable)

Sales Pipeline

  • list_pipeline_stages — List pipeline stages

  • create_opportunity — Create opportunity

Support Tickets

  • create_ticket — Create ticket with structured form data

  • create_ticket_comment — Add comment to ticket

Forms

  • list_form_names — List forms

  • create_form_submission — Submit lead form (optionally create opportunity)

Files

  • attach_file_from_url — Attach file from URL to any entity

Calendar

  • create_or_update_calendar_event — Create or update an event

  • delete_calendar_event — Delete event

Deliverables

  • approve_deliverable — Approve a task/deliverable

Reference

  • list_email_templates — List email templates

  • list_invoice_templates — List invoice templates

  • list_vendor_names — List expense vendors

  • list_workspace_users — List workspace users

Diagnostics

  • moxie_health_check — Verify server and API connectivity

Configuration

Variable

Required

Description

MOXIE_API_KEY

Yes

Your Moxie API key

MOXIE_BASE_URL

Yes

Your Moxie API base URL

Development

# Watch mode
npm run dev

# Build
npm run build

# Test with MCP Inspector
MOXIE_API_KEY=your_key MOXIE_BASE_URL=your_url npx @modelcontextprotocol/inspector node build/index.js

License

MIT

Available Tools

30 tools
apply_paymentB

Apply a payment to an existing invoice

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate of payment (YYYY-MM-DD format)
memoNoNotes about the payment
amountYesPayment amount
clientNameNoClient name (required only if duplicate invoice numbers exist)
paymentTypeNoPayment method type
invoiceNumberYesInvoice number to apply payment to (e.g., E-2023-79)
referenceNumberNoInformational reference number for payment history

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states 'apply,' implying mutation, but does not disclose side effects (e.g., marking invoice as paid, reversing possibility, required permissions). This is insufficient for a financial action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the core action, and contains no unnecessary words. It is concise and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters), lack of annotations, and no output schema, the description is inadequate. It does not explain return behavior, error conditions, or concurrency implications for payment application.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 7 parameters. The description adds no extra meaning beyond what is already in the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Apply a payment to an existing invoice' clearly states the verb ('apply') and resource ('payment to an existing invoice'). It distinguishes this tool from sibling tools, none of which handle payment application.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., search_payable_invoices). No prerequisites or exclusions mentioned. The description lacks context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

approve_deliverableA

Approve a deliverable/task that is in Client Workflow / Approval status in the Project Kanban

ParametersJSON Schema
NameRequiredDescriptionDefault
clientNameYesExact match of the client name
projectNameYesExact match of the project name
deliverableNameYesExact match of the deliverable/task name

TDQS

A3.7/5.0
Behavior2/5

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 the action without explaining side effects, reversibility, permissions, or what happens after approval.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that front-loads the action and resource. Every word adds value; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with 3 string params and no output schema. The description covers purpose and precondition but lacks behavioral context. It is minimally adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions like 'Exact match of...'. The description adds no extra parameter meaning beyond the action, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'approve' and the resource 'deliverable/task' with a specific context ('in Client Workflow / Approval status in the Project Kanban'). It distinguishes from siblings as no other tool covers approval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use by requiring the deliverable to be in 'Client Workflow / Approval status'. It does not explicitly state when not to use or provide alternatives, but the precondition is useful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

attach_file_from_urlA

Attach a file to a Moxie record by providing a URL. The file will be downloaded and attached.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe unique identifier of the object
typeYesType of object to attach the file to
fileUrlYesValid HTTPS URL that Moxie will fetch the file from
fileNameNoName to give the attached file

TDQS

A3.6/5.0
Behavior3/5

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

Discloses that the file will be downloaded, but no details on side effects, permissions, size limits, or error handling. With no annotations, this is minimally 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the action and resource. No superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Sufficient for a simple file attachment tool with four parameters. Lacks mention of return value or error conditions, but the operation is straightforward.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already provides clear parameter meanings. The description adds little beyond restating the URL method, warranting a baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'attach', the resource 'file to a Moxie record', and the method 'by providing a URL'. Distinguishes from sibling tools, none of which perform file attachment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, or when not to use it. Lacks context about prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_clientC

Create a new client in Moxie CRM

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity
nameYesBusiness name of the client
colorNoClient color designation
notesNoGeneral notes about the client
phoneNoPhone number
taxIdNoTax identification number
postalNoPostal/ZIP code
archiveNoArchive the client
countryNoCountry
websiteNoWebsite URL
address1NoStreet address line 1
address2NoStreet address line 2
currencyYesISO 4217 currency code (e.g., USD, EUR, GBP)
initialsNo3-4 character initials for avatar and invoice sequences
localityNoState/Province/Region
clientTypeYesType of client record
leadSourceNoLead source tracking
paymentDaysNoPayment terms in days
hourlyAmountNoDefault hourly rate
latePaymentFeeNoLate payment fee amount
payInstructionsNoPayment instructions text
whoPaysCardFeesNoWho pays Stripe credit card fees
roundingIncrementNoRounding increment for invoices

TDQS

C2.9/5.0
Behavior1/5

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

No annotations are provided, and the description contains no behavioral details such as side effects, permissions required, or error handling. The agent has no insight into what happens when the tool is invoked beyond the creation itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that immediately conveys the core purpose. While it could include more context, it is not overly verbose and front-loads the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (23 parameters, no output schema, no annotations), the description is too sparse. It does not explain parameter relationships, constraints, or typical use cases, leaving the agent underinformed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 23 parameters. The description adds no additional meaning beyond the schema, earning a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it creates a new client in Moxie CRM, with a specific verb and resource, distinguishing it from sibling tools like list_clients or search_clients.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., search_clients to find existing clients, or create_contact for non-client contacts). The agent is left to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_contactB

Create a new contact record and optionally associate with a client

ParametersJSON Schema
NameRequiredDescriptionDefault
lastNoContact's last name
roleNoContact's role/title
emailNoEmail address
firstNoContact's first name
notesNoNotes about the contact
phoneNoPhone number
clientNameNoExact name of an existing client to associate this contact with
portalAccessNoGrant client portal access
defaultContactNoSet as default contact (receives all notifications)
invoiceContactNoSet as invoice contact (receives invoice notifications)

TDQS

B3.4/5.0
Behavior2/5

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

States mutation (create) but lacks disclosure of side effects (e.g., portal access grants, notification implications), permissions, reversibility, or default behaviors for boolean flags. No annotations to compensate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of 13 words, no wasted words, front-loaded with key action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, no annotations, and complex tool with 10 parameters, boolean flags, and optional associations. Description fails to explain return value, validation rules (e.g., existing client check), or follow-up actions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 10 parameters with descriptions (100% coverage). Description adds only the optional client association, but no additional meaning beyond schema. Baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'create' and resource 'contact record', with optional client association. Distinguishes from sibling tools like 'create_client' (creates a client) and 'search_contacts' (search, not create).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage for creating contacts, but no explicit guidelines on when to use vs alternatives, prerequisites (e.g., client must exist for association), or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_expenseB

Create a new expense record in Moxie

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesExpense date in ISO-8601 format (e.g., 2023-07-20T00:00:00.000+00:00)
paidNoWhether the expense has been paid or is due in the future
notesNoAdditional notes about the expense
amountYesExpense amount
billNoNoBill/reference number
vendorNoExact match of a Vendor record name in Moxie
categoryNoExpense category
currencyNoISO 4217 currency code (e.g., USD, EUR). Defaults to workspace currency
clientNameNoExact match of a client record name to allocate this expense to
descriptionYesDescription of the expense
reimbursableNoWhether the expense is eligible for reimbursement through invoicing
markupPercentageNoMarkup percentage for reimbursable expenses when applied to invoice

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so the description must disclose behavioral traits. It only states the creation action without mentioning side effects, permissions, or constraints (e.g., duplicate handling, billing implications).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, clear and concise. No unnecessary words, though more detail could be added without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 12 parameters and no output schema, the description provides minimal context. No information about return value, error handling, or operational effects, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 additional meaning beyond the parameter descriptions in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create a new expense record in Moxie' clearly identifies the action (create) and resource (expense record). It distinguishes from sibling tools as no other tool targets expenses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, prerequisites, or exclusions. The description only states the basic function.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_form_submissionB

Create a new form submission with lead information and custom answers. Can optionally create a pipeline opportunity by providing pipelineStageName.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity
roleNoLead's role/title
emailNoLead's email address
notesNoGeneral notes about the submission
phoneNoLead's phone number
postalNoPostal/ZIP code
answersNoArray of structured question/answer objects for custom form fields
countryNoCountry
websiteNoLead's website URL
address1NoStreet address line 1
address2NoStreet address line 2
formNameNoAssociate the submission with an existing form template for reporting purposes
lastNameNoLead's last name
localityNoState/Province/Region
firstNameNoLead's first name
sourceUrlNoSource URL where the form was submitted
leadSourceNoLead source tracking
businessNameNoLead's business/company name
pipelineStageNameNoIf provided, automatically creates an Opportunity in your pipeline. Must match exactly one of your pipeline stage names

TDQS

B3.4/5.0
Behavior2/5

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 discloses the optional side effect of creating a pipeline opportunity, but omits other important behavior: whether it requires an existing form template (formName), any validation rules for pipelineStageName matching, or what the response looks like. The tool mutates data, but safety, permission requirements, and failure behaviors are not addressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no redundancy. It front-loads the primary action ('Create a new form submission') and immediately communicates the optional behavior. Every word earns its place, making it appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 19 parameters and no output schema, the description is minimal. It does not mention return values, error scenarios, or how the tool integrates with related entities like form templates or lead records. The description leaves significant gaps about expected behavior and outcomes, which is insufficient for a tool with this many inputs and side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 groups parameters as 'lead information and custom answers' and highlights pipelineStageName as the trigger for opportunity creation, but the schema already explicitly explains pipelineStageName's behavior. The description adds minimal semantic value beyond what the schema provides; it simply aggregates concepts rather than deepening parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Create a new form submission with lead information and custom answers.' This specifies a distinct verb+resource (creating a form submission) and differentiates it from sibling tools like create_opportunity or create_contact, which serve different purposes. The optional pipeline opportunity behavior adds clarity without confusing the primary purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: when you need to create a form submission with lead data and custom answers, use this tool. It also mentions the conditional use of creating a pipeline opportunity via pipelineStageName. However, it does not explicitly state when not to use this tool or compare it to alternatives such as create_opportunity for standalone pipeline creation. Guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_invoiceA

Create a new invoice in Moxie CRM. If sendTo is not provided, the invoice will be created as a draft.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesArray of invoice line items
dueDateNoPayment due date (YYYY-MM-DD format)
taxRateNoTax rate as decimal (e.g., 0.08 for 8%)
clientNameYesExact name of the client (must match existing client record)
sendInvoiceNoSet to true to send the invoice immediately upon creation
templateNameNoInvoice template name (must match existing template)
invoiceNumberNoInvoice number/identifier
sendToContactsNoEmail addresses to send the invoice to
discountPercentNoDiscount percentage as decimal
emailTemplateNameNoEmail template name for sending the invoice
paymentInstructionsNoPayment instructions text

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It does disclose a key behavior: the invoice is created as a draft if sendTo is absent. However, it omits other important behaviors such as validation of client/template names, sending side-effects, or the structure of the response. The single disclosed behavior adds some value but is incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the primary action and immediately followed by a conditional behavior. No redundant words or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 11 parameters, 2 required, and no output schema. The description is too sparse to provide a complete operational picture. It only mentions the draft behavior, leaving out the overall flow, prerequisites, expected return, and interactions with other entities like templates or existing clients. Given the complexity, this is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, giving a baseline of 3. The description does not add any parameter meaning beyond the schema and, in fact, introduces 'sendTo' which is not a parameter in the input schema (the schema has 'sendToContacts' and 'sendInvoice'). This inconsistency could confuse an agent and reduces the description's value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new invoice in Moxie CRM', which is a specific verb + resource. It uniquely identifies the tool's function and is distinct from sibling tools like search_payable_invoices. The draft condition adds useful scoping.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives one implicit usage guideline: if sendTo is not provided, the invoice becomes a draft. However, it does not mention alternative tools, prerequisites like client existence, or when to choose this over other invoice-related tools. It provides minimal contextual guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_opportunityB

Create a new sales opportunity in the pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName/title of the opportunity
toDosNoTo-do items for this opportunity
valueNoEstimated value of the opportunity
leadInfoNoLead contact information and custom answers
stageNameNoPipeline stage name (use list_pipeline_stages to see available stages)
clientNameNoExact match of a client name in the CRM
descriptionNoDescription of the opportunity
customValuesNoMap of custom field values. Keys must match pipeline custom fields exactly
estCloseDateNoExpected close date (YYYY-MM-DD format)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behaviors. It only states creation but omits side effects (e.g., pipeline stage updates, required permissions, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Could benefit from slight expansion (e.g., 'returns the new opportunity ID'), but remains front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

9 parameters, nested objects, no output schema. The one-line description fails to cover creation behavior, prerequisites, or post-creation state. Incomplete for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds no extra meaning beyond the schema. Baseline of 3 is appropriate; no additional semantics provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create' and the resource 'new sales opportunity in the pipeline', distinguishing it from sibling tools like create_client or create_project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., create_project). The description offers no context about prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_or_update_calendar_eventA

Create or update a calendar event in the Moxie Homebase calendar. Use eventId to update an existing event.

ParametersJSON Schema
NameRequiredDescriptionDefault
busyNoWhether the event blocks scheduling (default true)
endTimeYesEnd time in ISO format without timezone (e.g., 2024-07-06T08:30:00)
eventIdNoICS Calendar Event ID for updating existing events
summaryYesTitle/summary of the event
locationNoPhysical or online location
timezoneYesISO timezone value (e.g., America/New_York, Europe/London)
startTimeYesStart time in ISO format without timezone (e.g., 2024-07-06T08:00:00)
userEmailNoEmail of the event owner. Defaults to workspace owner if not provided
descriptionNoLong description of the event

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full behavioral disclosure. It fails to mention idempotency, permission requirements, merge behavior, error handling, or side effects. The minimal statement 'create or update' 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. Front-loaded with purpose, followed by specific usage guidance. Excellent conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters and no output schema, the description is too brief. It does not explain return values, partial updates, or edge cases like non-existent eventId. More detail is needed for safe agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline 3. The description adds no new information beyond what the schema already provides for each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates or updates a calendar event in the Moxie Homebase calendar, with explicit guidance on using eventId for updates. It distinguishes from siblings like delete_calendar_event.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use eventId for updating vs creating, providing clear usage context. However, it lacks guidance on when not to use this tool or mention of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_projectC

Create a new project in Moxie CRM

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the project
amountNoFee amount
dueDateNoProject due date (YYYY-MM-DD format)
feeTypeNoFee schedule type
hexColorNoProject display color
startDateNoProject start date (YYYY-MM-DD format)
clientNameYesExact name of the client to associate this project with
descriptionNoProject description
portalAccessNoClient portal access level (None, Overview, Full access, Read only)
templateNameNoProject template name to use (creates settings + tasks from template)
showTimeWorkedInPortalNoWhether time worked is visible in client portal

TDQS

C2.9/5.0
Behavior2/5

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

Without annotations, the description should disclose behavioral traits such as required permissions or side effects. It only states it creates a project, which 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, fitting in one sentence. However, it could be slightly expanded to include context without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters and no output schema, the description should provide more context about what 'create' entails, such as whether it returns the created project or just a confirmation. The current description is insufficient for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 11 parameters are described in the schema with good detail; the description does not add additional meaning or context for any parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb-resource pair ('Create a new project'), but it does not provide any differentiation from sibling tools such as update_project or create_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no usage guidelines; it does not state when to use this tool versus alternatives or any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_taskB

Create a new task/deliverable in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the task
tasksNoArray of subtask names to create under this task
statusNoTask status - must match exactly a status in your kanban if provided
dueDateNoTask due date (YYYY-MM-DD format)
priorityNoNumeric priority for sorting in kanban
startDateNoTask start date (YYYY-MM-DD format)
assignedToNoEmail addresses of users in the workspace to assign this task to
clientNameYesExact match of a client record in your CRM
descriptionNoTask description
projectNameYesExact name of the project owned by the client to add this task to
customValuesNoMap of custom fields. Keys must match exactly the fields specified in your project settings custom fields setup

TDQS

B3.2/5.0
Behavior2/5

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 states the action without covering side effects, permissions, or constraints beyond the input schema. The description adds no 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no fluff. It is front-loaded and earns its place, efficiently conveying the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (11 parameters, no output schema, no annotations), the description is too minimal. It lacks information about return values, error handling, prerequisites, or post-creation behavior, making it incomplete for agent usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the description adds little extra meaning. The baseline is 3, and the description does not enhance understanding beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 'task/deliverable in a project', making the tool's purpose immediately obvious. It is specific and distinct from sibling tools like 'approve_deliverable' or 'create_project'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 are many creation tools among siblings, but no conditions or exclusions are mentioned to help the agent select this tool appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_ticketB

Create a new support ticket in your workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
commentYesRequired - The initial details/comment of the ticket
dueDateNoDue date in ISO format (YYYY-MM-DD)
subjectNoThe ticket subject/title
formDataNoAdditional structured questions/answers that can be mapped to ticket data
userEmailYesRequired - Email of a known contact in your workspace. The ticket will be rejected if the email is not found
ticketTypeYesRequired - The string value of the ticket type which can be found in Tickets >> Settings

TDQS

B3.1/5.0
Behavior2/5

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 that a ticket is created, omitting important behavior such as userEmail validation ('ticket will be rejected if the email is not found'), ticket type requirements, or what happens on success/failure. This is a significant transparency gap for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. While it is minimal, conciseness is a strength here; the lack of detail does not inflate the score but the structure is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with six parameters, a nested object, and no output schema, the one-sentence description provides very little beyond the schema itself. It does not explain required inputs, rejection behavior, or the tool's relationship to related sibling tools, leaving the description incomplete for effective tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already thoroughly documents all six parameters including required fields and nested formData. The description adds no parameter-level meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create a new support ticket in your workspace' uses a specific verb and resource, clearly distinguishing this tool from siblings like create_ticket_comment and create_form_submission. The workspace scoping adds context without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 create_ticket_comment or how to handle prerequisites like using a known contact email. The description does not mention exclusions 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.

create_ticket_commentC

Add a comment to an existing ticket

ParametersJSON Schema
NameRequiredDescriptionDefault
commentYesThe comment text to add
userEmailYesEmail of a known contact or team member in your workspace
ticketNumberYesThe numeric identifier of the ticket to comment on
privateCommentYesWhether the comment is private (ignored if userEmail is a client contact)

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only says 'Add a comment', omitting behavioral details like mutation effects, required permissions, or that privateComment flag behavior is conditional.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short (5 words), but fails to convey critical information. Overly terse rather than concise; not front-loaded effectively for agent use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 required parameters, no output schema, and no annotations, the description is insufficient. It does not explain return behavior or the effect of privateComment, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. The description adds no extra meaning beyond what the schema already provides, meeting the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Add' and resource 'comment to an existing ticket', distinguishing it from sibling tool create_ticket which creates a new ticket. However, it could be more specific about public/private distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use the tool, prerequisites (e.g., ticket must exist), or context compared to alternatives. The description lacks any usage hints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_time_entryA

Create a time entry to track work. Can optionally auto-create client, project, or deliverable if they don't exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoNotes about the time entry
timerEndYesEnd time in ISO-8601 format (must be after start time)
userEmailYesEmail of the workspace user who owns this time entry
clientNameNoExact name of the client
timerStartYesStart time in ISO-8601 format (e.g., 2024-01-15T09:00:00Z)
projectNameNoExact name of the project
createClientNoAuto-create client if not found
createProjectNoAuto-create project if not found
deliverableNameNoExact name of the task/deliverable
createDeliverableNoAuto-create task/deliverable if not found

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It notes the optional auto-creation of related entities, which is helpful. However, it does not disclose failure modes (e.g., behavior when required entities don't exist and auto-create flags are false), permission requirements, or reversibility. Disclosure is partial but non-trivial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise, front-loaded sentences. The first states the primary action, and the second adds an important optional behavior. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters and no output schema or annotations, the description is thin. It omits return value details, error handling, and broader operational context beyond the auto-create feature. Essential information like required parameters and success/failure behavior is left to the schema, which doesn't cover runtime semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 10 parameters have descriptions in the schema, so the baseline is 3. The description adds a high-level summary of auto-create behavior but no new parameter-level details beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function ('Create a time entry to track work') and highlights a distinguishing capability (optional auto-creation of client/project/deliverable). This is specific and sets it apart from sibling create tools like create_client or create_project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'to track work' implies a usage context, but the description does not specify when to choose this tool over alternatives or mention prerequisites, exclusions, or when not to use it. No alternative tool references are provided, leaving guidance implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_calendar_eventA

Delete a calendar event by its event ID

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYesID of the event to delete (the eventId used in createOrUpdate)

TDQS

A4.3/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states deletion but does not disclose behavioral traits like irreversibility, side effects, or auth requirements. Adequate for a simple delete but could be more explicit about permanence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action and resource, no extraneous words. Perfectly sized for the simple operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter, no output schema, and no annotations, the description is complete. It tells the agent what it does and how to call it, with the helpful reference to the create/update tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage for the only parameter, but the description adds value by referencing 'the eventId used in createOrUpdate', linking to the sibling tool and clarifying the ID source.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Delete' and resource 'calendar event', with specific identifier 'by its event ID'. Distinguishes from sibling tools which are for other entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context: you have an event ID and want to delete that event. No explicit exclusions or alternatives, but the purpose is straightforward and no sibling tools compete for the same action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_clientsA

List all clients in your Moxie workspace

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the transparency burden. The word 'List' indicates a read operation, which is clear. However, the description does not disclose any additional behavioral traits such as pagination, ordering, or response structure. For a simple list tool, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 object. Every word earns its place, with no superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description provides sufficient context: it names the action and the exact scope. It could optionally mention the return format, but for a basic list operation, the description is complete enough for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the baseline is 4. The description adds nothing about parameters because there are none, which is appropriate. The schema coverage is 100% vacuously, so no compensation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List'), the resource ('all clients'), and the scope ('in your Moxie workspace'). This directly distinguishes it from sibling tools like search_clients, which implies filtering, and create_client, which is a write operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving the full client list with no filtering, but it does not explicitly mention alternatives or exclusions. The presence of sibling search_clients suggests a filtered alternative, but no explicit guidance is given on when to use one over the other.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_email_templatesA

List all email templates in your workspace

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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 states the core action and does not disclose response format, pagination, permissions, or any caveats (e.g., whether archived templates are included).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the purpose without any filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list tool, the description is sufficient for an agent to select and invoke it correctly. It clearly indicates the resource and scope. However, the lack of output schema and any returned field details is a minor gap, preventing a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema description coverage is 100%. Per the rubric, 0 params sets a baseline of 4; the description correctly omits parameter details because there are none to explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 templates'), with scope ('in your workspace'). This distinguishes it from sibling tools like list_invoice_templates and other list_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by naming the resource, but it does not explicitly mention when to use this tool versus alternatives like list_invoice_templates or search_payable_invoices. There is no when-not or alternative guidance, so it stays at implied usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_form_namesA

List all available form names in your workspace

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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 adds the scope 'in your workspace' but otherwise simply restates the core action already implied by the name. It does not disclose response format, pagination, or any operational constraints, which is a gap given the lack of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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. Every word adds value, and there is no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list-only tool with no output schema, the description provides adequate context by stating what is listed and the scope. It doesn't mention return format, but that is not essential for such a simple operation. It feels complete for its complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema fully covers parameter semantics. The description adds no parameter information, which is appropriate since there is nothing to explain. Baseline for 0-parameter tools is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('List') and resource ('available form names'), and scopes it to the workspace. It distinguishes itself from sibling list tools like list_vendor_names and list_pipeline_stages by specifying the resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: use when you need form names. However, there is no explicit guidance on when to choose this over other list tools, nor any mention of exclusions or prerequisites. The context signals show it's the only form-name listing tool, but the description doesn't highlight that.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_invoice_templatesA

List all invoice templates in your workspace

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It explicitly states that all invoice templates are listed and scoped to the workspace, but does not mention pagination, return format, or whether hidden/archived templates are included. This is adequate for a simple list operation but lacks deeper behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no extraneous words. It efficiently conveys the essential action and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 annotations, no output schema), the description covers the core operation but omits details about the return payload, such as whether template names, IDs, or other fields are included. It is not misleading, but it leaves some gaps for a fully self-contained description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, making the input schema fully covered. There is nothing for the description to add about parameters, so baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all invoice templates in the workspace. The verb 'List' is specific and the resource 'invoice templates' is unambiguous, distinguishing it from sibling tools like list_email_templates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 list_email_templates or search_payable_invoices. It does not mention any exclusions or contextual prerequisites, 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.

list_pipeline_stagesA

List all pipeline stages for opportunities in your workspace

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. It indicates a read-only list operation, but provides no additional context about pagination, ordering, or whether all stages include archived ones. The simple phrasing is adequate but not informative beyond the obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short, front-loaded sentence with no wasted words. It fully states the tool's purpose without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool, the description is sufficient to convey the basic action and scope. There is no output schema to explain return values, but the mention of 'pipeline stages' implies the returned data. Slightly more detail on what constitutes a pipeline stage could improve completeness, but it is not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero parameters and 100% coverage, so the description need not explain parameters. Per the rubric, zero params warrants a baseline of 4, and the description offers no contradictory or supplementary parameter info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 resource 'pipeline stages' and provides scope ('for opportunities in your workspace'). It clearly distinguishes from siblings like list_project_task_stages, which target project tasks rather than opportunity pipelines.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It lacks any mention of when-not-to-use or explicit comparisons to sibling tools such as list_project_task_stages, leaving the agent to infer context solely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_project_task_stagesA

List all available project task stages in your workspace

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It accurately indicates a read-only operation ('List') and 'all available' suggests comprehensive retrieval without filters. There are no hidden side effects mentioned, but for a zero-parameter list tool, the behavior is straightforward and effectively conveyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It immediately states the action ('List') and the object ('all available project task stages'), making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with zero parameters, no annotations, and no output schema, the description provides sufficient context. It clearly indicates the resource type and scope, and there is no additional complexity that would require further explanation. The description fully covers the tool's purpose and behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema is empty. According to the guidelines, 0 params warrants a baseline of 4. The description adds no parameter information, but none is needed since there are no parameters to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 all available project task stages in your workspace'. It uses a specific verb ('List') and resource ('project task stages'), and the scope ('in your workspace') is clear. It also distinguishes from sibling tools like list_pipeline_stages by specifying 'project task stages'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by describing what it does, but it does not explicitly state when to use this tool versus alternatives. While it is clear that this tool lists project task stages, there is no mention of exclusions or alternative tools. For a simple list tool, this is adequate but lacks explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_vendor_namesA

List all vendor names for expense tracking

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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 clearly states the read-only nature ('List') and the resource scope ('all vendor names'), but lacks details about output format, error conditions, or any limitations beyond the name. This is adequate for a simple list operation but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of seven words, front-loaded with the action and resource. Every word earns its place, and there is no superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no params, no output schema, no siblings with overlapping names), the description is sufficiently complete for an agent to understand the tool's purpose and expected result. It lacks explicit mention of return shape, but 'list all vendor names' strongly implies a list of names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema coverage is trivially 100%. The description does not need to explain parameters, and per the rubric, the baseline for 0 params is 4. No additional semantics are required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 ('vendor names'), and adds context ('for expense tracking'). This clearly distinguishes it from sibling list tools like list_clients and list_form_names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 exclusions, prerequisites, or cases where another tool would be more appropriate, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_workspace_usersA

List all users in your Moxie workspace

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are present, so the description alone must convey behavioral traits. 'List' implies a read-only operation, but the description does not disclose output format, pagination, or any side effects. It adds minimal information 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. Every word contributes to the intended meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the zero-parameter, simple list-all nature of the tool, the description covers its core purpose. It lacks return-shape details, but for a trivial enumeration tool this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the baseline is 4. The description is consistent with the schema and implies that no inputs are needed, which is sufficient for this tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'List' plus the resource 'users' and scope 'your Moxie workspace' clearly state the tool's function. It is distinct from sibling tools that target other resources (e.g., clients, projects, stages).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when you need all workspace users, and no sibling tool covers users, so alternatives are implicitly excluded. However, there is no explicit 'when to use' or 'when not to use' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

moxie_health_checkA

Check if the Moxie MCP server is properly configured and can connect to the Moxie API

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

The description indicates a read-only check operation (idempotent, no side effects). With no annotations provided, the description carries the full burden. It does not disclose potential failure modes, authentication requirements, or what constitutes a successful connection check. It is adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose without any redundant or verbose language. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description is nearly complete. It explains the tool's basic function but could be improved by mentioning the expected return value (e.g., success/failure message).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so schema coverage is 100% trivially. The description does not add parameter information beyond the schema. With zero parameters, a baseline score of 4 is appropriate, as no extra parameter semantics are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: checking if the Moxie MCP server is properly configured and can connect to the Moxie API. The verb 'check' and the specific resource 'Moxie MCP server configuration and API connectivity' differentiate it from sibling tools that perform actions on clients, projects, invoices, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 versus alternatives. However, given that it is a health check, usage is implied for verifying server status before other operations. No exclusions 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.

search_clientsA

Search for clients by name or contact information

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query to find clients by name or contact info

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. The verb 'search' implies a read-only operation, and the criteria are stated, but it does not disclose return format, pagination, or case sensitivity. For a simple search tool, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that contains no filler. Every word contributes to understanding the tool's purpose and search scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter search tool with no output schema, the description is largely complete: it states the target resource and the type of query. A minor gap is not explicitly stating what is returned (e.g., a list of matching clients), but the simplicity of the tool makes this acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the tool description's 'by name or contact information' merely echoes the parameter description in the schema. The description adds no extra 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Search'), names the resource ('clients'), and specifies the search criteria ('by name or contact information'). This clearly distinguishes it from siblings like list_clients (which returns all clients) and search_contacts (which searches 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.

Usage Guidelines3/5

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 need to find clients by name or contact info—but does not explicitly mention alternatives or exclusions. It does not reference sibling tools like list_clients or search_contacts, 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.

search_contactsB

Search for contacts in your Moxie workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch query to find contacts by first, last, or email

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states 'Search for contacts' without disclosing behavior such as return format, pagination, or handling of empty queries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It is front-loaded and 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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with one parameter and no output schema, the description adequately states the purpose but does not mention what the result looks like (e.g., list of contacts). There is room for improvement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and already documents the query parameter. The description adds no additional meaning beyond the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Search' and the resource 'contacts' with workspace context. It is distinct from sibling tools like search_clients or list_clients, though it does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like create_contact or list_clients. No exclusions or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_payable_invoicesB

Search for payable invoices in your Moxie workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch query to filter invoices

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. 'Search' implies a read-only operation, but the description does not explicitly state whether it is non-destructive, what the return format is, or whether any side effects occur. The minimal description adds little 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the action and resource. Every word earns its place, with no redundancy or irrelevant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description is minimally viable but not rich. It does not indicate what the response looks like (e.g., a list of invoices), nor the behavior when query is omitted. Given the low complexity, this is adequate but could be more informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage for the single 'query' parameter with a description ('Search query to filter invoices'), so the schema carries the semantic burden. The description itself adds no parameter information, which is acceptable given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the verb 'search' and the resource 'payable invoices' in the Moxie workspace, distinguishing it from sibling tools like search_clients and search_projects. However, it does not explain what distinguishes 'payable invoices' from other invoice-related concepts, leaving slight ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 other search tools, nor any mention of exclusions or alternative approaches. The description simply states the action without contextualizing it within the broader toolset.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_projectsA

Search for projects in your Moxie workspace, optionally filtered by client name

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch query to filter projects by client name

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It discloses that the search is scoped to the workspace and that the query is an optional client-name filter, but does not specify default behavior (e.g., empty query returns all projects), return format, or any side effects (though search implies read-only). The disclosed filter behavior adds some transparency but significant behavioral details remain implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 10 words, front-loads the core action and scopes the search. No wasted words or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with one optional parameter and no output schema, the description provides adequate context about what it searches and its filter capability. However, it could optionally state that no query returns all projects or hint at the response format, but these omissions are not critical given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with the description of 'query' explicitly stating it filters by client name. The tool description adds the 'optionally' nuance and workspace context, but does not introduce new parameter semantics beyond the schema. Baseline 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Search') and resource ('projects'), and clarifies the workspace scope ('Moxie workspace') and the optional filter by client name. This distinguishes it from sibling search tools like search_clients and search_contacts, which target different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool's role (find projects, optionally narrowed by client name) but does not explicitly mention when to prefer it over alternatives or when not to use it. It provides clear context for a typical search use case, but lacks explicit exclusions or comparisons to sibling tools like list_clients.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_projectC

Update an existing project in Moxie CRM

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew project name
activeNoWhether the project is active
amountNoFee amount
dueDateNoNew due date (YYYY-MM-DD format)
feeTypeNoFee schedule type
hexColorNoNew project display color
projectIdNoID of the project to update
startDateNoNew start date (YYYY-MM-DD format)
clientNameNoClient name (required if using projectName)
descriptionNoNew project description
projectNameNoName of the project to update (alternative to projectId)
portalAccessNoNew client portal access level

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description carries full responsibility. It only states 'Update an existing project', implying mutation, but does not disclose partial vs full update behavior, required fields, side effects, or permissions. This is insufficient for a mutation tool with 12 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no extraneous information, but it is too minimal for a tool with 12 parameters. It sacrifices completeness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the large number of parameters (12) and lack of output schema or annotations, the description is far too brief. It does not explain how the update works (e.g., partial vs full, required relationships between parameters) or what the response looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter having a description in the JSON schema. The tool description adds no additional parameter-level meaning beyond what the schema already provides, warranting the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Update' and the resource 'existing project in Moxie CRM', distinguishing it from sibling tools like create_project and search_projects. However, it is very brief and could be more specific about which fields are updatable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as create_project, search_projects, or other update tools. The description does not mention any prerequisites or context for using the update functionality.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 30 tool updatesv2.0.0
    • First observedapply_payment
    • First observedapprove_deliverable
    • First observedattach_file_from_url
    • First observedcreate_client
    • First observedcreate_contact
    • First observedcreate_expense
    • First observedcreate_form_submission
    • First observedcreate_invoice
    • First observedcreate_opportunity
    • First observedcreate_or_update_calendar_event
    • First observedcreate_project
    • First observedcreate_task
    • First observedcreate_ticket
    • First observedcreate_ticket_comment
    • First observedcreate_time_entry
    • First observeddelete_calendar_event
    • First observedlist_clients
    • First observedlist_email_templates
    • First observedlist_form_names
    • First observedlist_invoice_templates
    • First observedlist_pipeline_stages
    • First observedlist_project_task_stages
    • First observedlist_vendor_names
    • First observedlist_workspace_users
    • First observedmoxie_health_check
    • First observedsearch_clients
    • First observedsearch_contacts
    • First observedsearch_payable_invoices
    • First observedsearch_projects
    • First observedupdate_project

TDQS

B3.4/5.0

Scored across 30 tools

Disambiguation5/5

Each tool targets a distinct action on a specific entity (e.g., clients vs. contacts, creation vs. listing). Even related tools like list_clients and search_clients have clear differences in scope.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, with occasional compound verbs (e.g., create_or_update_calendar_event) but no mixing of conventions.

Tool Count4/5

30 tools cover a broad domain (CRM, projects, invoicing, support, calendar, forms) and mostly justify their count, though some could be consolidated (e.g., list_clients and search_clients).

Completeness2/5

Many entities lack update/delete operations (e.g., clients, contacts, tasks). Read operations are limited (no get single client or task). Gaps may cause agent failures for typical workflows.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for the Nimble CRM API, enabling management of contacts, deals, notes, tasks, and tags through natural language.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for time tracking and billing that allows freelancers to control timers, manage projects, and export invoices via natural language in any MCP-compatible AI assistant.
    4
    MIT