Skip to main content
Glama

@botdigit/mcp-server

Official Model Context Protocol (MCP) server for BotDigit Work OS.

Safely connect your local AI development environment (Cursor, Claude Desktop, Windsurf, ChatGPT Custom Actions) to BotDigit projects, milestones, tasks, Git delivery workflows, and escrow safety controls.


Quickstart

1. Cursor IDE Configuration

Add the following to your ~/.cursor/mcp.json:

{
  "mcpServers": {
    "botdigit": {
      "command": "npx",
      "args": ["-y", "@botdigit/mcp-server"],
      "env": {
        "BOTDIGIT_PAT": "bdt_pat_your_token_here",
        "BOTDIGIT_API_URL": "https://api.botdigit.com/api/v1/mcp"
      }
    }
  }
}

2. Claude Desktop Configuration

Add the following to your Claude Desktop config:

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

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

{
  "mcpServers": {
    "botdigit": {
      "command": "npx",
      "args": ["-y", "@botdigit/mcp-server"],
      "env": {
        "BOTDIGIT_PAT": "bdt_pat_your_token_here"
      }
    }
  }
}

3. Claude Code & Cowork Plugin

This repository includes a native Claude Code / Cowork plugin bundle.

Slash Commands

  • /find-projects — Search open freelance projects, client RFPs, and development gigs.

  • /draft-proposal — Analyze client requirements and stage proposal drafts for human review.

  • /check-contracts — Monitor active milestones, deliverables, and funded escrow.

Set your token:

export BOTDIGIT_API_TOKEN="bdt_pat_your_token_here"

Related MCP server: upwork-mcp

The 17 Native MCP Tools

Phase

Tool Name

Description

Phase 1: Discovery

search_projects

Search open marketplace projects, RFPs, and freelance gigs

get_project

Complete project specifications, milestones, and funding status

get_workspace

Workspace collaboration state, members, roles, active tasks

get_milestones

Milestones, acceptance criteria, deadlines, escrow status

get_project_status

One-shot executive rollup (% complete, tasks, escrow)

Phase 2: Management

search_freelancers

Search verified talent with skills, rating, completed projects

get_freelancer

Verified profile, hourly rates, portfolio, GitHub verification

create_project

Create new client project draft with milestone structure

create_task

Create Kanban tasks on project board with priority & assignees

update_task

Update task status (todo, in_progress, done) and notes

Phase 3: Delivery

get_git_activity

Query linked Git commits, pull requests, issues, repo status

link_commit_to_milestone

Associate a commit SHA or PR to milestone evidence

submit_deliverable

Stage deliverable with work summary, URLs, and AI notes

get_deliverables

List staged deliverables, review status, and freelancer info

verify_milestone_completion

4-point verification readiness check (tasks, Git, artifacts)

Phase 4: Financial Safety

prepare_milestone_payment

Stage payment with cryptographic token & 1-click client approval

get_payment_approval_status

Check if client authorized or executed milestone payment


Architectural Principle: Financial Safety

"AI prepares, BotDigit verifies, Humans authorize."

Autonomous AI agents cannot execute payment transfers or escrow releases autonomously. The prepare_milestone_payment tool generates a cryptographic approval token and a 1-click web approval link (https://botdigit.com/approvals/payment/:token) for the verified client to review and authorize.


Testing Your Connection

npx @botdigit/mcp-server --test-connection

License

MIT © BotDigit Inc.

Available Tools

13 tools
botdigit_approve_proposal_draftA

Approve and dispatch a staged proposal draft, officially submitting it to the client.

ParametersJSON Schema
NameRequiredDescriptionDefault
draft_idYesUUID of the proposal draft to approve

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It signals an external-facing mutation ('dispatch... submitting to the client') but does not state whether the action is reversible, what permissions are required, or what happens on failure. For a finalizing write operation, this leaves significant gaps.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the action and its consequence without any redundant or filler text.

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 low complexity, one parameter, and no output schema, the description covers the essential purpose but omits key behavioral details (reversibility, permissions, side effects). An agent would still need to infer whether this is a final, irreversible action.

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?

There is only one required parameter and the schema description coverage is 100%, so the schema already defines 'draft_id' as a UUID. The tool description adds no additional meaning about the parameter beyond what the schema provides, which meets the baseline 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?

The description states a specific verb ('Approve and dispatch') and resource ('staged proposal draft'), and clarifies the outcome ('officially submitting it to the client'). It clearly distinguishes itself from the sibling staging tool by referring to a 'staged' draft.

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 'a staged proposal draft' implies the prerequisite that a draft must exist first, but there is no explicit guidance on when to use this tool versus alternatives like re-staging or reviewing. The usage context is implied rather than stated.

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

botdigit_get_contractA

Get detailed contract data including escrow status, terms, and parties.

ParametersJSON Schema
NameRequiredDescriptionDefault
contract_idYesUUID of the contract

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 burden. 'Get' implies a read operation and it discloses what data is returned (escrow status, terms, parties), but it says nothing about permissions, error behavior for an invalid contract_id, or response shape.

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 zero waste that states the resource and the salient returned fields. It is appropriately sized, though minimal.

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 read tool with full schema coverage and no output schema, the description adequately signals the returned content. Only minor gaps remain around failure modes and auth requirements.

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 a single well-documented contract_id (UUID), so the schema already supplies parameter meaning. The description adds no syntax or format detail beyond it, making the baseline 3 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?

States a specific verb (Get) and resource (contract) and enumerates the returned content (escrow status, terms, parties). It implicitly distinguishes itself from sibling list_contracts via 'detailed', but does not name the alternative explicitly.

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 rather than stated: an agent can infer this fetches a single contract by id versus the list tools. There is no explicit when-to-use/when-not guidance or prerequisite mention.

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

botdigit_get_projectA

Fetch complete details and specifications for a single BotDigit project by UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe UUID of the project

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the full behavioral burden. 'Fetch' reasonably conveys a read-only, non-destructive lookup, and 'complete details and specifications' hints at the return breadth, but it says nothing about permissions, not-found behavior, or rate limits.

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 carrying verb, resource, scope, and identifier key with zero filler. Nothing is wasted and the most important information leads.

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 read with no output schema, the description covers the essentials but 'complete details and specifications' remains vague about what fields actually come back, and it omits error behavior for an invalid or missing UUID.

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 parameter is fully described there, so the baseline is 3. The description only reinforces the identifier type ('by UUID') without adding format, sourcing, or lookup-semantics detail 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 ('Fetch'), resource ('BotDigit project'), scope ('single', 'by UUID'), and the return breadth ('complete details and specifications'). It implicitly distinguishes itself from the sibling botdigit_list_projects by being singular, though it never names that alternative explicitly.

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 lookup-by-id complement to botdigit_list_projects, but the description neither states when to reach for it nor excludes list-style scenarios or names the alternative. No prerequisites or conditions are given.

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

botdigit_get_threadB

Get full message history for a specific conversation thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYesUUID of the thread

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 the full burden. 'Get' implies a read, but it doesn't state whether the history is paginated, ordered, truncated, or requires thread membership/permissions. For a history-retrieval tool with zero annotation coverage, this is a notable gap.

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, front-loaded with the verb and the scope of the return ('full message history'). No filler or 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?

A simple one-parameter read tool with no output schema, so the description needn't explain return values. Still, it omits ordering, completeness guarantees, and how it relates to the sibling list tool, which an agent would need to call it confidently.

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 there is a single required parameter (thread_id, documented as 'UUID of the thread'), so the schema does the heavy lifting. The description adds nothing about the identifier format or where to obtain a thread_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?

Specific verb ('Get') and resource ('full message history for a specific conversation thread'), which is more than a restatement of the name. However, it does not distinguish itself from the sibling botdigit_list_messages, leaving ambiguity about which one to pick for message retrieval.

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 when-to-use guidance, no prerequisites, and no mention of the sibling botdigit_list_messages as an alternative. The agent must infer the selection criteria 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.

botdigit_list_contract_milestonesB

List milestones and escrow funding for a specific contract.

ParametersJSON Schema
NameRequiredDescriptionDefault
contract_idYesUUID of the contract

TDQS

B3.4/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 alone. The verb "List" signals a non-mutating read and the phrase "escrow funding" discloses an extra data dimension beyond the title, but nothing is said about permissions, pagination, ordering, or empty-result behavior.

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 short sentence with the action verb and scope front-loaded and no filler. It is efficient, though the extreme brevity leaves no room for the qualifying details an agent would otherwise benefit from.

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 one-parameter, read-only list tool with no output schema this is minimally adequate: purpose and scope are clear. It stops short of being complete because return content, ordering, and pagination are beyond a no-annotation description's scope here.

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% for the single contract_id parameter, so the schema already documents the UUID requirement. The description only restates the scoping ("a specific contract") and adds no format or constraint detail beyond it, matching the baseline 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?

States a specific verb (List) and resource (milestones and escrow funding) scoped to a specific contract, so the agent knows exactly what it returns. It does not explicitly contrast itself with related siblings such as botdigit_get_contract or botdigit_list_contracts, which keeps it short of a 5.

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

Usage Guidelines3/5

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

"For a specific contract" implies the tool is used once a contract is already known and that an identifier is required, but it never states when to prefer this over get_contract or how it relates to the contract-level listing. Usage is only implied, not spelled out.

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

botdigit_list_contractsB

List your active and completed contracts, escrows, and project orders.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by contract status (e.g. active, completed, dispute)

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 the full behavioral burden, yet it says nothing about read-only safety, pagination, ordering, or the shape of results. It does disclose the ownership scope ('your') and that both active and completed items are returned by default, which is useful but well short of what an unannotated tool needs.

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 front-loaded sentence covering verb, scope, and covered resources with zero filler. Nothing could be trimmed without losing information.

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 zero-required-parameter list tool this is minimally adequate: the purpose and default scope are clear. But with no annotations and no output schema, the description leaves the agent without any behavioral or result-shape expectations.

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 single optional 'status' parameter is already documented with examples in the schema. The description's mention of 'active and completed' loosely hints at status values but adds no new semantics, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb (list) and resource (contracts/escrows/project orders) scoped to the caller's own records, which separates it from botdigit_get_contract. However it does not explicitly distinguish itself from botdigit_list_projects or botdigit_list_contract_milestones, so an agent must infer the boundary from the resource names alone.

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 contains no when-to-use guidance, no indication of when to prefer a sibling like botdigit_list_projects, and no mention of prerequisites. Usage is only implied by the word 'List'.

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

botdigit_list_messagesC

List active client/freelancer messaging threads.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo

TDQS

C2.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 carries the full disclosure burden. It reveals only that results are limited to 'active' threads; nothing about pagination defaults, ordering, max limit, auth requirements, or what the read is safe against.

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 tight sentence with the resource front-loaded and zero filler. Brevity here edges toward under-specification rather than padding, so it earns credit without being maximal.

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 two undocumented parameters, no annotations, and no output schema, the description leaves too much unspecified: whether results are paginated, how 'active' is determined, and what a thread record contains. It is not adequate for an agent to call this correctly with confidence.

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 coverage is 0% for both page and limit — no types, defaults, or bounds documented anywhere. The description says nothing about paging or result caps, so it fails to compensate for the coverage gap, though the parameter names are conventional enough to be guessable.

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?

Specific verb (List) plus a clearly scoped resource ('active client/freelancer messaging threads'), which separates it from siblings like list_contracts, list_projects, and list_proposal_drafts. The only ambiguity is what 'active' means, but the core purpose is unmistakable.

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 statement of when to use this tool versus alternatives such as get_thread (single thread) or stage_message_draft. The 'active' qualifier hints at a default filter but never says when to prefer this call over a sibling.

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

botdigit_list_my_bidsA

Retrieve your active and historical bids across BotDigit marketplace projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
limitNoNumber of bids to return

TDQS

A3.6/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. It discloses scope ('active and historical') and personalization ('your'), implying read-only access. However, it does not mention pagination behavior, default limits, sorting, or authentication requirements. Adequate but with clear gaps for a read-only list tool.

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 sentence, front-loaded with the verb and resource, with zero wasted words. Perfectly concise for a simple list tool.

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 two-parameter list tool with no output schema and no annotations, the description covers what is returned and to whom it is scoped. It omits pagination defaults and return format, but the schema covers parameters. Mostly complete, with minor gaps.

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 (page, limit) are already documented in the schema. The description adds no additional meaning about these parameters. 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 states a specific verb ('Retrieve') and resource ('your active and historical bids') with clear scope ('across BotDigit marketplace projects'). It distinguishes itself from siblings by focusing on bids, but does not explicitly name alternatives like list_proposal_drafts. Clear but no sibling differentiation.

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: retrieve your bids when you need them. There is no explicit when-to-use, when-not-to-use, or comparison to sibling tools such as list_proposal_drafts or list_projects. Adequate but minimal guidance.

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

botdigit_list_projectsB

Search and browse live marketplace projects on BotDigit. Supports category filters, text search, and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
limitNoMaximum number of projects to return (1-100, default: 20)
searchNoKeywords to search in project titles and descriptions
categoryNoCategory filter (e.g. "Web Development", "AI & Machine Learning", "Design & Creative")

TDQS

B3.2/5.0
Behavior3/5

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

No annotations provided, so the description carries the behavioral burden. It discloses key traits: 'live marketplace projects' (scoping to active listings), and support for filters, text search, and pagination. However, it doesn't mention authentication requirements, rate limits, default page size, or whether results include full project details or summaries. For a read-only listing tool, this is adequate but incomplete.

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?

Two concise sentences, front-loaded with the primary action. No waste, but the second sentence is a bit generic ('Supports category filters, text search, and pagination') and could be more specific, though it's still informative.

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?

With 4 optional parameters, full schema coverage, no output schema, and no annotations, the description is minimally adequate. It covers core functionality but omits return format, pagination behavior, and any usage context relative to siblings. An agent could call it correctly, but would lack confidence about result structure and when to prefer it over other listing tools.

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 in the schema with descriptions and defaults. The description adds no parameter-level meaning beyond what the schema provides; it merely summarizes capabilities. Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose4/5

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

States specific verb+resource: 'Search and browse live marketplace projects on BotDigit.' Clear what it does, but no sibling differentiation—doesn't contrast with botdigit_get_project or botdigit_list_my_bids. An agent can infer it's a list/search tool from the name and description, but the description doesn't help distinguish it.

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 when-to-use guidance, no conditions for selecting this over alternatives like botdigit_get_project or botdigit_list_my_bids. The description mentions supported features (filters, search, pagination) but not when to choose this tool versus a single-project fetch or a bid list.

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

botdigit_list_proposal_draftsA

List all staged proposal drafts currently waiting for human approval or rejection 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 behavioral burden. It usefully discloses that results are limited to drafts in a pending-approval state within the caller's workspace, but says nothing about pagination, result limits, or permission requirements for a listing operation.

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; the state constraint ('waiting for human approval or rejection') arrives before the workspace scope, so nothing needs trimming.

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?

The tool is simple (no params, read-only list) and the description conveys what is listed and under what state filter. Since no output schema exists, it could say more about what a draft record contains or whether results are paginated, but the gap is minor for this 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 takes zero parameters, so there is nothing for the description to clarify beyond the implicit workspace scoping. Baseline 4 applies for a parameterless tool.

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 (List), resource (proposal drafts), and a state qualifier (staged, waiting for human approval or rejection) plus workspace scoping. It implicitly distinguishes itself from sibling write tools like botdigit_stage_proposal_draft and botdigit_approve_proposal_draft, but never names them explicitly.

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 read step that precedes botdigit_approve_proposal_draft or rejection, but there is no explicit when-to-use statement, no mention of the approve/stage siblings, and no exclusions.

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

botdigit_stage_delivery_draftC

Stage a milestone deliverable submission for client review and escrow release.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesYesDescription of deliverables and instructions for testing
milestone_idYesUUID of the milestone
attachment_urlsNoList of deliverable URLs, pull requests, or artifact links

TDQS

C2.9/5.0
Behavior2/5

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

No annotations, so the description carries full burden. It implies a workflow outcome (client review and escrow release) but omits side effects, permissions, reversibility, idempotency, and whether staging triggers notifications or escrow changes. This is insufficient for a mutation-style tool.

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; it states the operation and intended downstream use efficiently.

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 no annotations and no output schema, the description should compensate by covering behavioral and usage context. It does not address prerequisites, side effects, or how staging relates to approval/escrow steps, leaving the agent with an incomplete operational picture.

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 documents all three parameters. The description adds no syntax, format, or selection guidance beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb 'Stage' and resource 'milestone deliverable submission', plus the downstream purpose (client review and escrow release). It distinguishes itself from siblings by resource type (delivery vs proposal/message), though it does not name 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?

No explicit when-to-use, prerequisites, or alternatives. An agent must infer from the purpose alone that it should be called when a deliverable is ready; the description does not mention sibling tools like list_contract_milestones or approve_proposal_draft.

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

botdigit_stage_message_draftA

Stage a message draft reply to a client thread for human review.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesMessage body
thread_idYesUUID of the conversation thread

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 carries the full behavioral burden. It usefully discloses that the result is a staged draft awaiting human review rather than a sent reply, but says nothing about permissions, whether repeated calls create duplicate drafts, what identifies the created draft, or failure behavior for a bad thread_id.

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 stating action, target, and outcome with zero filler. Nothing to trim.

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 two-required-parameter staging tool with a fully documented schema and no output schema, the description covers the action and the review semantics adequately. It falls short only on what the staged draft looks like after creation and whether the call is repeatable, which are minor for 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% for both required parameters (thread_id and content), so the schema already documents them. The description adds no additional meaning about format, length limits, or body expectations, which is the expected baseline when the schema does the work.

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 pairs a specific verb ('Stage') with a specific resource ('a message draft reply to a client thread'), which is enough to separate it from the similarly-named botdigit_stage_proposal_draft and botdigit_stage_delivery_draft. It never names those siblings explicitly, so the differentiation rests on the resource noun alone.

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?

'for human review' implies the staging workflow (draft is queued for approval, not sent), which gives some usage context. But there is no explicit when-to-use, no prerequisites, and no mention of the alternative tools for messaging (e.g., list_messages, get_thread) or approval flow, so the guidance stays implied.

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

botdigit_stage_proposal_draftA

Stage a proposal draft for a client project on BotDigit. Safe autonomous workflow: creates a draft in your dashboard for your review before live submission.

ParametersJSON Schema
NameRequiredDescriptionDefault
bid_amountYesProposed bid amount in USD/project currency
milestonesNoOptional breakdown of milestones
project_idYesThe UUID of the target project
cover_letterYesDetailed proposal cover letter explaining your solution
estimated_durationYesEstimated delivery time (e.g. "7 Days", "2 Weeks")

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 a genuinely useful behavioral trait — the draft lands in the dashboard for review and is not a live submission, so it is side-effect-free until approval. It omits auth/permission requirements, whether drafts can be edited or deleted, and idempotency behavior for repeated calls with the same project_id.

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 tight sentences: the action ('stage a proposal draft') is front-loaded and the safety/review semantics follow immediately. No wasted words.

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?

A mutation tool with no annotations and no output schema, so the description must cover behavior. It conveys the key safety story but says nothing about what a staged draft returns (e.g. a draft ID needed for later approval) or whether successive stages overwrite each other — information an agent calling this in a workflow needs.

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 documents all five parameters (bid_amount, milestones, project_id, cover_letter, estimated_duration). The description adds no format, constraint, or validation detail 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?

Specific verb+resource: 'stage a proposal draft for a client project'. The word 'stage' plus 'draft' distinguishes it implicitly from botdigit_approve_proposal_draft, but the description never names that sibling or the staging-vs-approval distinction explicitly.

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 'before live submission' implies this is the pre-submission step and hints at a follow-up action, but no alternative tool (e.g. botdigit_approve_proposal_draft) or explicit when-not-to-use condition is stated. Usage is inferable, not spelled out.

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. 13 tool updatesv1.0.1
    • First observedbotdigit_approve_proposal_draft
    • First observedbotdigit_get_contract
    • First observedbotdigit_get_project
    • First observedbotdigit_get_thread
    • First observedbotdigit_list_contract_milestones
    • First observedbotdigit_list_contracts
    • First observedbotdigit_list_messages
    • First observedbotdigit_list_my_bids
    • First observedbotdigit_list_projects
    • First observedbotdigit_list_proposal_drafts
    • First observedbotdigit_stage_delivery_draft
    • First observedbotdigit_stage_message_draft
    • First observedbotdigit_stage_proposal_draft

TDQS

A3.5/5.0

Scored across 13 tools

Disambiguation4/5

Each tool targets a fairly distinct resource and action (projects, proposal drafts, bids, messages, contracts, milestones). The main overlap risk is between proposal drafts, bids, and projects, but the descriptions clarify that projects are marketplace listings, drafts are staged, and bids are submitted. Minor boundary blur between a staged proposal draft and a submitted bid.

Naming Consistency5/5

Every tool uses the botdigit_ prefix followed by a clean verb_noun pattern (list_projects, get_project, stage_proposal_draft, approve_proposal_draft, get_thread, etc.). The 'stage' action verb is applied uniformly across drafts. No mixing of conventions.

Tool Count5/5

13 tools sit comfortably in the well-scoped 3-15 range. Each tool maps to a distinct operation across the browse/stage/approve/list workflow, with no obviously redundant tools.

Completeness3/5

Core flows (browse projects, stage/approve proposals, read messages, view contracts/milestones) are covered, but the lifecycle is asymmetric: proposals have both stage and approve tools, while messages and delivery drafts can only be staged with no matching approve tool. There is also no get for proposal drafts and no way to reject/decline a draft or bid, creating potential dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers