Skip to main content
Glama
officialdropspot

@dropspot/mcp

Official

@dropspot/mcp — Drop Spot MCP Server

npm version License: MIT MCP Standard

Official Model Context Protocol (MCP) server for Drop Spot — the passwordless client document intake and automated follow-up platform for accountants, law firms, and service professionals.

Connect Drop Spot directly to Claude Desktop, Cursor AI, or Google Antigravity. Instruct your AI in plain English to prepare client checklists, dispatch secure zero-password upload links, monitor completion status, and review incoming paperwork—with zero coding required.


⚡ Quickstart

1. Get your Drop Spot API Key

  1. Sign in to your Drop Spot workspace at godropspot.com.

  2. Go to Settings → Developer API & MCP.

  3. Click Generate New API Key, select your desired scopes (or Full Access), and copy your token (ds_live_...).


2. Configure Your AI Client

Option A: Claude Desktop

Add the following to your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "dropspot": {
      "command": "npx",
      "args": ["-y", "@dropspot/mcp"],
      "env": {
        "DROPSPOT_API_KEY": "ds_live_YOUR_ACTUAL_KEY_HERE",
        "DROPSPOT_API_BASE_URL": "https://godropspot.com/api/v1"
      }
    }
  }
}

Option B: Cursor AI

Add to .cursor/mcp.json in your project or global settings:

{
  "mcpServers": {
    "dropspot": {
      "command": "npx",
      "args": ["-y", "@dropspot/mcp"],
      "env": {
        "DROPSPOT_API_KEY": "ds_live_YOUR_ACTUAL_KEY_HERE",
        "DROPSPOT_API_BASE_URL": "https://godropspot.com/api/v1"
      }
    }
  }
}

Option C: Claude Code (CLI)

Add Drop Spot to Claude Code:

claude mcp add dropspot npx -y @dropspot/mcp --env DROPSPOT_API_KEY=ds_live_YOUR_ACTUAL_KEY_HERE DROPSPOT_API_BASE_URL=https://godropspot.com/api/v1

Option D: Windsurf / VS Code / Antigravity

Add to your client's MCP configuration (mcpServers):

{
  "mcpServers": {
    "dropspot": {
      "command": "npx",
      "args": ["-y", "@dropspot/mcp"],
      "env": {
        "DROPSPOT_API_KEY": "ds_live_YOUR_ACTUAL_KEY_HERE",
        "DROPSPOT_API_BASE_URL": "https://godropspot.com/api/v1"
      }
    }
  }
}

Related MCP server: dokutrak-mcp

🌐 Public Registries & Discovery

Drop Spot is an open, unproxied MCP server available across major AI registries:

  • Smithery.ai: Direct registry listing indexed via smithery.yaml (Arcade.dev-powered, zero proxy latency).

  • Glama.ai: Verified MCP listing claimed via glama.json (glama.ai/mcp/servers).

  • PulseMCP: Listed in the community catalog (pulsemcp.com).

  • Official Model Context Protocol: Cataloged on modelcontextprotocol/servers.

  • npm: Zero-install direct execution via npx -y @dropspot/mcp.


💬 Prompts Your AI Understands

Once connected, your AI gains native understanding of your Drop Spot workspace:

  • "Create an intake request for Sarah Jenkins using our 2026 Tax Return template."

  • "Show me our client list and search for Acme Corp."

  • "Update Sarah's phone number to (555) 234-5678 and add a note that she is a VIP client."

  • "Check if Sarah uploaded her W-2 form yet."

  • "Review Sarah's uploaded W-2 and approve it."

  • "Reject item #2 with the note: 'Page 2 is blurry. Please re-upload a clear scan.' "

  • "List all our active document requests with pending items."

  • "Create a reusable checklist template called 'Quarterly Bookkeeping Close'."


🛠️ Available MCP Tools (12 Tools)

Tool Name

Description

create_intake_request

Create a new document intake dossier with an itemized checklist. Generates a passwordless magic upload link and optionally emails the client.

list_intake_requests

List and filter active document requests in the workspace by status or client email.

get_intake_request

Retrieve complete details of a specific request, including each checklist item, upload statuses, and file metadata.

review_item

Review an uploaded file: approve it or reject it with custom feedback to prompt the client for a re-upload.

get_file_download_link

Generate a short-lived (5-minute) secure presigned URL to inspect or download an uploaded client file.

list_clients

Search and browse your firm's client directory by name, email, or company.

get_client

Fetch a client record with their full intake history and metadata.

create_or_update_client

Add a new client or update existing contact details (phone, company, notes).

list_templates

View your reusable checklist templates (e.g. 1040 Tax Return, KYC, Mortgage Intake).

get_template

Inspect a specific checklist template and its default items.

create_template

Create a new reusable checklist template with predefined items and categories.

update_template

Edit an existing template's name, description, or checklist items.


🔒 Security, Privacy & Compliance

  • Zero AI Training: Client documents and personal data are never used to train public or proprietary AI models.

  • Short-Lived Signed URLs: File downloads use ephemeral 5-minute pre-signed URLs; file binaries are never permanently exposed over the wire.

  • Scoped API Tokens: Generate API keys restricted strictly to specific operations (requests:read, requests:write, items:review, clients:write, etc.).

  • Human-in-the-Loop: AI tools execute actions on your behalf with complete audit trails. You retain full oversight with real-time logs and 1-click token revocation.


📄 License

MIT © Drop Spot Technologies

Available Tools

12 tools
create_intake_requestA

Create a new Drop Spot client document intake request (dossier). Generates a zero-password magic upload link and optionally emails the client.

NameRequiredDescriptionDefault
dueAtNoISO 8601 deadline date (optional, defaults to 14 days from now)
itemsYesChecklist of items and documents required from the client
titleYesTitle of the intake request (e.g. "2026 Tax Return Documentation")
clientNameYesFull name of the client (e.g. "Jane Doe")
clientEmailYesEmail address of the client where the magic link will be sent
clientPhoneNoOptional phone number for SMS reminders
sendInvitationEmailNoWhether to automatically email the client the invitation link (defaults to true)

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 full burden, and it does disclose the two most consequential behaviors: generating a passwordless upload link and optionally emailing the client. It does not say whether the link is returned in the response, how long it stays valid, or what happens if the client already exists — gaps that matter for a mutation with an external side effect.

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 short sentences, front-loaded with the core action and followed by the side effects. Nothing redundant and nothing buried.

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 7-parameter creation tool with a fully documented schema and no output schema, the description covers purpose and the key outbound side effect. It could still note what the call returns (presumably the magic link/request id) since no output schema exists to convey that.

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 coverage is 100%, so the schema already documents all 7 parameters in detail, setting the baseline at 3. The description adds a small amount beyond it by calling out the 'optionally emails' behavior, which clarifies the sendInvitationEmail default, and by framing the request as a dossier/checklist.

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?

States a specific verb and resource (create a client document intake request / dossier) and immediately adds the notable side effects: a zero-password magic upload link and optional client email. This separates it cleanly from siblings like create_template or create_or_update_client.

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 only implied by the verb and resource — an agent can infer this is the tool for opening a new intake request. There is no explicit when-to-use guidance relative to siblings (e.g. request-from-template vs ad-hoc), and no stated prerequisites such as the client existing beforehand.

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

create_or_update_clientC

Add a new client to the directory or update an existing client’s contact details, phone, company, or notes.

NameRequiredDescriptionDefault
nameYesFull name of the client
emailYesEmail address of the client
notesNoInternal notes about this client
phoneNoOptional phone number
companyNoCompany or business name

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden for a mutation tool. It discloses nothing about permissions, whether omitted fields are preserved or cleared on update, duplicate handling, or what the call returns on create vs update.

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?

A single front-loaded sentence with no filler; the create case is stated before the update case. Minor looseness in 'contact details', which is vaguer than the schema's name/email.

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 five-parameter mutation tool with no annotations and no output schema, the description omits the identity/matching logic, partial-vs-full update semantics, and failure behavior — the exact things an agent needs to call it safely.

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 every parameter is already documented, and the description's field list (phone, company, notes) matches the schema rather than extending it. It adds nothing about which fields act as the match key for the update path, leaving the most consequential parameter semantics unexplained.

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?

States a concrete verb pair (add/update) on a concrete resource (client) and enumerates the mutable fields (contact details, phone, company, notes). It is clearly the write-side counterpart to list_clients/get_client, though it never says how an existing client is identified, which blurs the create-vs-update boundary.

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 versus list_clients/get_client or the template/intake siblings, and no explanation of the upsert decision rule. An agent calling this with an existing name/email has no way to predict whether it updates, duplicates, or errors.

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

create_templateC

Create a new reusable document checklist template with predefined items and categories.

NameRequiredDescriptionDefault
nameYesTemplate title (e.g. "Q1 Bookkeeping Review")
itemsYesThe list of checklist items
isSharedNoWhether this template is visible to the entire workspace team (default: true)
descriptionNoDescription of when to use this checklist

TDQS

C2.9/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 for a mutation tool. It does not say whether the new template is workspace-scoped, whether creation fails on duplicate names, what permissions are required, or what identifier comes back — gaps an agent calling a create operation needs filled.

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?

A single front-loaded sentence with no filler. It is appropriately sized, though its brevity is part of why behavioral and usage gaps exist rather than a sign of completeness.

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?

No output schema and no annotations, so the description should say more about the result (e.g., a new template ID) and about sharing/visibility behavior implied by isShared. Parameter documentation is fully covered by the schema, leaving the description adequate but not complete for a creation 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?

Schema description coverage is 100%, so all four parameters (including nested item fields, defaults, and the isShared flag) are already documented. The description's mention of 'items and categories' adds nothing beyond the schema, so the baseline 3 applies.

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?

States a specific verb and resource: 'Create a new reusable document checklist template,' and adds the shape of the payload ('with predefined items and categories'). The 'template' noun does distinguish it from create_intake_request, but the description never explicitly contrasts with update_template or the sibling template tools.

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 statement of when to use this versus update_template (for existing templates) or create_intake_request (for one-off requests). The word 'reusable' hints at the intent, but no condition or alternative is named.

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

get_clientA

Retrieve detailed profile information for a specific client, including their active and historical document requests.

NameRequiredDescriptionDefault
clientIdYesThe UUID of the client

TDQS

A3.5/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 does disclose the response contents (active plus historical document requests), which is useful read-only context. It says nothing about authorization requirements, behavior when the clientId is unknown, or whether the document-request list is paginated or truncated.

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?

One clean, front-loaded sentence with no filler, and the most useful detail (what comes back) is appended rather than buried. It is minimal but not structurally rich.

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 one-parameter read tool with no output schema, the description covers the essential return content, which is what the agent most needs. Error/not-found behavior and any caller permissions remain unstated, a minor gap at this complexity level.

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% and the single clientId parameter is documented as a UUID in the schema, so the baseline is 3. The description adds no format, sourcing, or lookup guidance beyond what the schema already states.

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?

Names a specific verb (Retrieve) and resource (detailed profile information for a specific client), and clarifies the payload includes active and historical document requests. It's clearly distinct from create/update siblings, though it never names list_clients as the alternative for enumerating clients.

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 only implied by the required clientId parameter – an agent can infer 'use when you have one client's ID and need their full profile.' There's no explicit when-to-use/when-not guidance and no reference to siblings like list_clients or get_intake_request.

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

get_intake_requestB

Retrieve full details for an intake request by ID, including checklist items, upload progress, and file metadata.

NameRequiredDescriptionDefault
requestIdYesThe UUID of the intake request

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 behavioral burden. 'Retrieve' implies a read, but nothing states access or permission requirements, whether a missing/unauthorized requestId errors or returns empty, or how large the checklist/upload payload might be. It only lists what fields come back, which is the minimum.

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?

One sentence, zero waste, with the resource and lookup key front-loaded and the returned contents appended. Nothing is padded or repeated from the schema.

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 single-parameter lookup with no output schema, the description does well by enumerating the salient returned sections so the agent knows the record is detailed rather than a stub. The remaining gap is error/not-found behavior, which is minor but real given the absence of annotations.

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% and the single requestId parameter is documented as a UUID in the schema itself. The description adds no format or provenance detail beyond 'by ID', so baseline 3 applies.

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 states a specific verb and resource ('Retrieve full details for an intake request by ID') and enumerates the payload (checklist items, upload progress, file metadata), which distinguishes it from list_intake_requests. It stops short of explicitly naming that sibling, but the 'by ID' framing makes the single-record scope unambiguous.

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 only implied: an agent can infer this is the call to make once it has a requestId from list_intake_requests. There is no explicit 'use this when…' guidance and no mention of what to do when the ID is unknown or invalid.

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

get_templateB

Get full details and checklist items for a specific reusable template.

NameRequiredDescriptionDefault
templateIdYesThe UUID or starter identifier of the template

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 behavioral disclosure burden. It usefully says the response includes full details and checklist items, but it does not clarify read-only behavior, permissions, not-found behavior, or other operational traits.

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 efficient sentence with no wasted words. The core purpose and return scope are front-loaded.

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 one-parameter retrieval tool, the description is adequate: it names the resource and the main return content. However, without an output schema, it leaves the exact returned details and error behavior vague.

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 single templateId parameter has 100% schema description coverage, including UUID or starter identifier semantics. The description adds no parameter-level 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.

Purpose4/5

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

The description states a specific verb and resource: get a specific reusable template, including full details and checklist items. It implicitly distinguishes itself from list_templates by requiring a specific template, though it does not explicitly name sibling alternatives.

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 gives no explicit guidance on when to use this tool versus list_templates or update_template. Usage is only implied by the singular template reference and required templateId.

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

list_clientsA

List and search clients in the Drop Spot directory. Filter by name, email, or company.

NameRequiredDescriptionDefault
limitNoMax number of clients to return (default: 50, max: 100)
searchNoSearch string to filter clients by name, email, or company name

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 full behavioral burden. 'List and search' implies a read-only operation, but the description does not explicitly confirm read-only behavior, authentication needs, rate limits, pagination, or result structure.

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 short sentences and is front-loaded with the primary action and resource. Every sentence contributes directly to understanding what the tool does.

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 list/search tool with full schema parameter coverage, the description covers the core action and filter dimensions. However, with no annotations and no output schema, it stops short of explaining return shape, pagination behavior, or default result handling.

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 both parameters are already documented in the input schema. The description repeats the searchable fields ('name, email, or company') but does not add syntax, matching rules, or limit semantics beyond what the schema provides.

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 states a specific verb and resource: 'List and search clients in the Drop Spot directory.' It is clear what the tool does, but it does not explicitly distinguish itself from the sibling get_client tool, which is the main criterion for a 5.

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 'Filter by name, email, or company' implies the tool is used for directory search, but there is no explicit guidance on when to choose list_clients over get_client or create_or_update_client. Usage is implied rather than directed.

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

list_intake_requestsB

List client intake requests in the Drop Spot workspace. Filter by status or client email.

NameRequiredDescriptionDefault
limitNoNumber of requests to return (default: 20, max: 100)
statusNoFilter by dossier status
clientEmailNoFilter by specific client email

TDQS

B3.3/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 behavioral disclosure burden. It does not state that this is a read-only operation, how results are ordered, that it is paginated, or what permissions are required, leaving significant behavioral gaps for an agent.

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

Conciseness5/5

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

The description is two short sentences with no waste, and the primary action and scoping are front-loaded. Every sentence contributes useful information about the resource and supported filters.

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 three-parameter list tool with full schema coverage, the description is mostly adequate. However, because there is no output schema, it could do more to indicate what the returned intake requests contain or how pagination behaves, leaving some context incomplete.

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 schema already documents limit, status, and clientEmail with defaults, ranges, and enum values. The description repeats the status and clientEmail filtering but does not add format or behavioral detail beyond the schema, so a baseline 3 is appropriate.

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 names a specific verb ('List') and resource ('client intake requests') scoped to the Drop Spot workspace. It is clearly distinguishable from get_intake_request and create_intake_request, though it does not explicitly mention those siblings.

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 stating that results can be filtered by status or client email, which gives the agent a reason to call it. However, it does not explicitly say when to prefer this tool over alternatives or any conditions under which it should not be used.

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

list_templatesC

List available checklist templates (including starter packages for tax returns, KYC, and mortgage underwriting).

NameRequiredDescriptionDefault
includeStartersNoWhether to include built-in starter templates (default: true)

TDQS

C2.9/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 the full behavioral burden. It does not state that this is read-only, whether permissions are required, how results are ordered, or whether pagination applies.

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?

A single efficient sentence with the main purpose front-loaded. The parenthetical examples are useful rather than wasteful, though the sentence could also state the read-only nature compactly.

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?

There is no output schema and no annotations, so the description should clarify return shape, ordering, and pagination behavior. It says what is listed but not enough for an agent to know what to expect from the result.

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 single includeStarters parameter is already documented. The description's mention of starter packages adds mild semantic context but no format or default details beyond the schema.

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?

States a specific verb and resource: "List available checklist templates," and the parenthetical names starter-package examples. It is distinguishable from get_template/create_template, though it does not explicitly contrast with get_template.

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 get_template or when to omit starter templates. The listing purpose is implied, but there are no explicit conditions or alternatives.

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

review_itemA

Approve or reject a document uploaded by a client. If rejected, sends automated feedback asking the client to re-upload.

NameRequiredDescriptionDefault
itemIdYesThe UUID of the checklist item to review
decisionYesApproval decision
rejectionNoteNoReason for rejection to help client correct the issue (e.g. "Photo is blurry, please retake")

TDQS

A3.5/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 does disclose the key outbound side effect that a rejection sends automated feedback to the client, which is valuable context not in the schema. It omits irreversibility, required permissions, and whether the client-facing message is immediate or queued, all of which matter for a mutation with an external side effect.

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 short sentences, action stated first and the consequential side effect second. Every sentence earns its place with no filler.

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 3-parameter mutation with an outward-facing side effect, no annotations, and no output schema, the description covers the headline behavior but leaves gaps: no return value or result indication, no state preconditions, and no guidance on what the automated feedback contains or whether a rejectionNote is required when rejecting.

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 itemId, decision, and rejectionNote are already fully documented, and the enum on decision is explicit. The description adds no parameter-level meaning beyond what the schema states, which is acceptable at this coverage level.

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?

States a specific verb pair (approve/reject) and resource (a document uploaded by a client), which is clear at a glance. It doesn't note that the item is a checklist item (only the schema does) and no sibling tool overlaps, so no explicit differentiation is needed, but the description stays at a somewhat generic level.

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: call it to act on a client-uploaded document, and the note that rejection triggers automated feedback hints at when to prefer which decision. It never says the item must be in a pending-review state, whether approval is reversible, or when to use rejectionNote versus a plain rejection.

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

update_templateB

Edit an existing custom checklist template (update name, description, or checklist items).

NameRequiredDescriptionDefault
nameNoUpdated template name
itemsNoUpdated list of items
templateIdYesThe UUID of the template to edit
descriptionNoUpdated description

TDQS

B3.1/5.0
Behavior2/5

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

No annotations, so the description carries the full burden: it doesn't say whether omitted fields are left unchanged, whether 'items' replaces the entire item list or merges, or what permissions are needed. For a mutation tool with zero annotation coverage these are material gaps.

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?

One front-loaded sentence with the verb and resource first and the field list as a compact parenthetical. No waste, though it could have used the space for behavioral detail instead of repeating field names.

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?

A mutation tool with no annotations and no output schema needs to explain replace-vs-merge behavior for 'items', partial-update semantics, and side effects or return. None of that is present, so an agent cannot call it with confidence on the riskiest parameter.

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 all four parameters are already documented, and the parenthetical merely restates the same three updatable fields. Baseline 3 applies since the description adds no semantics beyond the schema.

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?

States a specific verb (edit) and resource (existing custom checklist template), plus the fields that can change, which separates it from create_template and get_template. Sibling differentiation is implicit rather than stated.

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?

'Edit an existing ... template' implies a template must already exist (templateId required), so usage is inferable. It never explicitly says when to use this versus create_template, or what preconditions (ownership, template type) apply.

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. 12 tool updatesv1.0.0
    • First observedcreate_intake_request
    • First observedcreate_or_update_client
    • First observedcreate_template
    • First observedget_client
    • First observedget_file_download_link
    • First observedget_intake_request
    • First observedget_template
    • First observedlist_clients
    • First observedlist_intake_requests
    • First observedlist_templates
    • First observedreview_item
    • First observedupdate_template

TDQS

B3.4/5.0

Scored across 12 tools

Disambiguation4/5

The set splits cleanly into three resource families (intake requests, clients, templates) with one-off actions (review_item, get_file_download_link) that have clearly stated purposes. Minor friction: review_item's name doesn't say what it reviews (a document), and get_file_download_link slightly overlaps with get_intake_request, which also returns file metadata, but descriptions disambiguate.

Naming Consistency4/5

Nearly all tools follow a verb_noun snake_case pattern (create_intake_request, list_clients, get_template, update_template). Deviations are minor: review_item drops the noun subject, and create_or_update_client uses a compound verb, but neither breaks readability or predictability.

Tool Count5/5

Twelve tools is well within a healthy range and each maps to a concrete operation across the three resources. No redundant or filler tools are present.

Completeness3/5

Intake requests only support create/list/get — there is no update, cancel/archive, delete, or resend-magic-link operation, which are natural lifecycle steps for a dossier. Templates and clients similarly lack delete, so the surface covers the happy path but leaves dead ends for cleanup and correction workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers