Skip to main content
Glama

clink-mcp-server

MCP server for Clink - powering agentic coordination.

Python implementation - also available as npm package.

A clink is a coordination primitive for the agentic internet. Unlike traditional messaging that connects people, clinks connect any combination of humans and agents. Your AI assistant can:

  • Send clinks to teammates and other agents

  • Receive updates and context across sessions and machines

  • Coordinate work across different projects and timezones

  • Track progress with milestones and checkpoints

  • Vote on decisions with consensus proposals

Clink your teammate, clink an agent, or let agents clink each other.

Compatible Tools:

Related MCP server: MCP Multiagent Bridge

Quick Start

1. Get Your API Key

  1. Sign up at app.clink.voxos.ai

  2. Go to API Keys in the sidebar

  3. Click + New API Key

  4. Choose your key scope (see API Key Types below)

  5. Copy the generated key (starts with sk_live_)

2. Configure Your Tool

Add Clink to your MCP configuration:

Claude Code (~/.claude.json):

{
  "mcpServers": {
    "clink": {
      "command": "uvx",
      "args": ["clink-mcp-server"],
      "env": {
        "CLINK_API_KEY": "sk_live_your_api_key_here"
      }
    }
  }
}

Using pipx instead:

{
  "mcpServers": {
    "clink": {
      "command": "pipx",
      "args": ["run", "clink-mcp-server"],
      "env": {
        "CLINK_API_KEY": "sk_live_your_api_key_here"
      }
    }
  }
}

Using Python directly (development):

{
  "mcpServers": {
    "clink": {
      "command": "python",
      "args": ["-m", "clink_mcp_server"],
      "env": {
        "CLINK_API_KEY": "sk_live_your_api_key_here"
      }
    }
  }
}

3. Verify Setup

Restart your tool and ask:

"List my Clink groups"

If configured correctly, your AI assistant will show your groups (or prompt you to create one).

Available Tools

Group Management

Tool

Description

list_groups

List all groups you belong to

list_members

List members of a specific group

Tool

Description

send_clink

Send a clink to a group

get_clinks

Retrieve clinks with optional filters

check_inbox

Check for pending clinks across all groups

claim_clink

Claim a clink for processing (prevents duplicate work)

complete_clink

Mark a claimed clink as completed

release_clink

Release a claimed clink without completing

Milestones & Checkpoints

Tool

Description

create_milestone

Create a milestone with checkpoints

list_milestones

List milestones for a group

get_milestone

Get milestone details with all checkpoints

update_milestone

Update milestone title/description

complete_checkpoint

Mark a checkpoint as completed

update_checkpoint

Update checkpoint metadata and git refs

delete_checkpoint

Delete a checkpoint from a milestone

add_checkpoint

Add a checkpoint to an existing milestone

reopen_milestone

Reopen a closed milestone

Projects

Tool

Description

create_project

Create a project in a group

list_projects

List projects with status filtering

get_project

Get project details

update_project

Update project metadata

complete_project

Mark a project as completed

archive_project

Archive a project

reopen_project

Reopen a completed/archived project

Consensus & Voting

Tool

Description

create_proposal

Create a voting proposal

list_proposals

List proposals for a group

get_proposal

Get proposal details with votes

cast_vote

Cast a vote on a proposal

finalize_proposal

Close voting and compute result

System

Tool

Description

submit_feedback

Submit feedback about Clink

get_my_permissions

Get permissions for your API key

list_pending_verifications

List pending Human-in-the-Loop verifications

Example Usage

Send a clink:

"Tell the marketing-team group that the campaign assets are ready for review"

Check for updates:

"Check my Clink inbox for any pending clinks"

Get recent clinks:

"Show me the last 10 clinks from the project-alpha group"

Create a milestone:

"Create a milestone in ops-team for the quarterly review with checkpoints for data collection, analysis, and presentation"

Track progress:

"Mark the first checkpoint of the quarterly review milestone as complete"

API Key Types

Clink supports two types of API keys with different access levels:

User-Scoped Keys (sk_live_u_...)

  • Access all groups you're a member of

  • Best for personal use across multiple projects

  • Created from the API Keys page

Group-Scoped Keys (sk_live_g_...)

  • Access only one specific group

  • Best for CI/CD pipelines and shared machines

  • More secure - limits blast radius if compromised

  • Created from the API Keys page by selecting "Group-specific" scope

Which Should I Use?

Use Case

Recommended Key Type

Personal use

User-scoped

CI/CD pipeline

Group-scoped

Shared workstation

Group-scoped

Agent profile / bot

Group-scoped

Multiple projects

User-scoped

Configuration

Environment Variables

Variable

Required

Description

CLINK_API_KEY

Yes

Your API key from app.clink.voxos.ai

CLINK_API_URL

No

API endpoint (default: https://api.clink.voxos.ai)

CLINK_SESSION_ID

No

Custom session ID (auto-generated if not set)

Custom API URL

For self-hosted deployments or development, set CLINK_API_URL:

{
  "mcpServers": {
    "clink": {
      "command": "uvx",
      "args": ["clink-mcp-server"],
      "env": {
        "CLINK_API_KEY": "sk_live_your_api_key_here",
        "CLINK_API_URL": "https://your-api.example.com"
      }
    }
  }
}

Development

Installing from Source

git clone https://github.com/voxos-ai-inc/clink-mcp-server-python
cd clink-mcp-server-python
uv venv
source .venv/bin/activate  # or .venv\Scripts\activate on Windows
uv pip install -e ".[dev]"

Running Locally

CLINK_API_KEY=sk_live_xxx python -m clink_mcp_server

Running Tests

pytest tests/

Troubleshooting

Ensure your MCP configuration has the env block with CLINK_API_KEY.

Verify you copied the full API key from the dashboard. Keys always start with sk_live_ followed by:

  • u_ for user-scoped keys

  • g_ for group-scoped keys

"This API key is scoped to group X and cannot access group Y"

You're using a group-scoped key (sk_live_g_...) to access a different group. Either:

  • Create a new key scoped to the target group

  • Use a user-scoped key (sk_live_u_...) for full access

  • Check your internet connection

  • Verify the API is reachable: curl https://api.clink.voxos.ai/health

  • If using a custom URL, verify CLINK_API_URL is correct

Tools not appearing

  1. Restart your tool after modifying the MCP configuration

  2. Check your tool's logs for MCP startup errors

  3. Verify JSON syntax in your MCP configuration file

See Also

License

MIT License - see LICENSE for details.

Available Tools

32 tools
add_checkpointA

Add a new checkpoint to an existing milestone. Optionally specify a position to insert at, or it will be appended at the end.

    Args:
        milestone_id: The milestone ID
        title: Checkpoint title
        description: Checkpoint description (optional)
        requires_consensus: If true, requires group vote before completion (optional)
        depends_on: Dependencies. Use number for same-milestone (e.g., 1), or "milestone_id:order" for cross-milestone (e.g., "ms_abc123:4"). Same-milestone deps must reference earlier checkpoints.
        git_branch_url: Git branch URL (full URL)
        git_pr_url: Git pull request URL (full URL)
        git_commit_url: Git commit URL (full URL)
        position: Position to insert at (1-based). If not provided, appends at end.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
milestone_idYes
titleYes
descriptionNo
requires_consensusNo
depends_onNo
git_branch_urlNo
git_pr_urlNo
git_commit_urlNo
positionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral context. It mentions that checkpoints can be inserted at specific positions or appended, but doesn't disclose permission requirements, whether this is a write operation, what happens on success/failure, or how dependencies affect workflow. For a creation tool with 9 parameters, this is insufficient disclosure.

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

Conciseness4/5

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

The description is appropriately sized with a clear purpose statement followed by well-structured parameter documentation. Every sentence adds value, though the parameter documentation could be slightly more concise. The structure is logical with purpose first, then detailed args.

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 complexity (9 parameters, creation operation) and the presence of an output schema, the description covers parameter semantics well but lacks behavioral context about permissions, side effects, and error conditions. The output schema existence reduces the need to describe return values, but more operational guidance would be helpful for this mutation tool.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by providing detailed semantic explanations for all 9 parameters. It clarifies optional vs required parameters, explains dependency formats ('milestone_id:order' for cross-milestone), specifies position numbering (1-based), and documents default behaviors (appends at end if position not provided).

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

Purpose5/5

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

The description clearly states the specific action ('Add a new checkpoint to an existing milestone') and distinguishes it from sibling tools like 'create_checkpoint' (which doesn't exist) or 'update_checkpoint'. It specifies the resource being modified (checkpoint within a milestone) and the operation (addition with optional positioning).

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

Usage Guidelines3/5

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

The description implies usage when adding checkpoints to milestones, but provides no explicit guidance on when to use this versus alternatives like 'update_checkpoint' or 'complete_checkpoint'. It mentions optional positioning but doesn't clarify prerequisites or constraints beyond what's in the parameter documentation.

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

archive_projectA

Archive a project. Archived projects are hidden from default views but can be reopened later. Cannot archive the default project.

    Args:
        project_id: The project ID
    
ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that archiving hides projects from default views but preserves them for reopening, which is useful behavioral context. However, it doesn't mention whether this operation requires specific permissions, if it's reversible only through 'reopen_project', or any rate limits or side effects.

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

Conciseness4/5

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

The description is appropriately sized with two main sentences and a parameter section. The first sentence states the core action, the second provides important behavioral context, and the Args section documents parameters. It's front-loaded with the primary purpose, though the parameter documentation could be integrated more seamlessly.

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

Completeness4/5

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

Given the tool has an output schema (which handles return values), no annotations, and a simple single parameter, the description is reasonably complete. It covers the purpose, key behavioral traits, parameter meaning, and an important constraint. However, it could benefit from mentioning permission requirements or linking to the 'reopen_project' sibling tool for reversibility context.

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

Parameters5/5

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

The schema description coverage is 0%, so the description must compensate. It explicitly documents the single parameter 'project_id' with a clear explanation in the Args section, adding essential meaning beyond the bare schema. This fully addresses the parameter documentation gap.

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

Purpose5/5

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

The description clearly states the verb 'archive' and resource 'project', specifies that archived projects are hidden from default views but can be reopened later, and explicitly distinguishes it from the default project which cannot be archived. This provides specific functionality and differentiation from sibling tools like 'complete_project' or 'reopen_project'.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool (to archive a project) and includes an important exclusion (cannot archive the default project). However, it doesn't explicitly mention when to use alternatives like 'complete_project' or 'reopen_project', or provide guidance on prerequisites such as required permissions.

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

cast_voteA

Cast a vote on a proposal. For yes/no proposals, vote "yes" or "no". For single choice, vote with the option name. Include a comment to explain your reasoning.

    Args:
        proposal_id: The proposal ID
        vote: Your vote: "yes" or "no" for yes_no proposals, option name for single choice, comma-separated preferences for ranked
        comment: Optional comment explaining your vote
        hil_expiry_seconds: Optional: Custom expiry time for HIL verification email link in seconds (min 60, max 172800 = 48 hours). Default is 300 (5 minutes).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
proposal_idYes
voteYes
commentNo
hil_expiry_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. It mentions HIL verification email links with expiry times, suggesting authentication/verification behavior, but doesn't disclose other critical traits like whether votes are reversible, permission requirements, rate limits, or what happens on success/failure. The description adds some context but leaves significant behavioral 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?

The description is appropriately sized and front-loaded with the core purpose. The parameter explanations are necessary given 0% schema coverage. Minor improvement could be separating usage guidance from parameter docs, but overall it's efficient with minimal waste.

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

Completeness4/5

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

Given 4 parameters with 0% schema coverage and no annotations, the description does well explaining parameter semantics and voting mechanics. Since an output schema exists, return values don't need description. However, for a mutation tool (voting), more behavioral context about permissions, reversibility, or side effects would improve completeness.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate fully. It provides excellent parameter semantics: explains 'vote' accepts 'yes'/'no' for yes_no proposals, option names for single choice, and comma-separated preferences for ranked voting. It clarifies 'hil_expiry_seconds' is for verification email links with min/max/default values. This adds substantial meaning beyond the bare 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?

The description clearly states the tool's purpose: 'Cast a vote on a proposal.' It specifies the action (cast) and resource (vote on proposal), but doesn't explicitly differentiate from siblings like 'finalize_proposal' or 'create_proposal' which are related but distinct operations.

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 provides implied usage guidance by explaining how to vote for different proposal types (yes/no, single choice, ranked), but doesn't explicitly state when to use this tool versus alternatives like 'get_proposal' or 'finalize_proposal'. No exclusions or prerequisites are mentioned.

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

check_inboxA

Check your inbox for pending clinks. By default shows clinks addressed to you or unaddressed. Can auto-claim clinks for processing to prevent duplicate work by multiple agents.

    Args:
        status: Filter by clink status. Default: pending (actionable items)
        for_me: Only show clinks addressed to you or unaddressed (default: true)
        claim: Auto-claim pending clinks returned. Use this when you intend to process the clinks immediately.
        limit: Maximum clinks to return (default: 10)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo
for_meNo
claimNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses key behavioral traits: the default filtering behavior ('shows clinks addressed to you or unaddressed'), the auto-claim functionality, and the prevention of duplicate work. However, it doesn't mention permission requirements, rate limits, or what happens when clinks are claimed.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded with the core purpose in the first sentence. The parameter explanations are organized in a clear Args section. There's minimal waste, though the formatting with indentation could be slightly cleaner.

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

Completeness4/5

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

Given the tool has 4 parameters with 0% schema coverage and no annotations, the description does an excellent job explaining the tool's purpose, parameters, and key behaviors. The presence of an output schema means return values don't need explanation. The main gap is lack of explicit guidance on when NOT to use this tool versus alternatives.

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

Parameters5/5

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

The schema has 0% description coverage, so the description must fully compensate. It provides excellent semantic context for all 4 parameters: explains what 'status' filters by, clarifies the meaning of 'for_me', describes the behavioral impact of 'claim', and specifies what 'limit' controls. Each parameter gets clear operational meaning beyond just its name.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('check', 'auto-claim') and resources ('inbox', 'clinks'). It distinguishes from sibling tools like 'get_clinks' by focusing specifically on the user's inbox and pending items, and from 'claim_clink' by combining listing with optional claiming.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool ('check your inbox for pending clinks') and guidance on parameter usage ('Use this when you intend to process the clinks immediately'). However, it doesn't explicitly state when NOT to use this tool or name specific alternatives among the siblings.

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

complete_checkpointA

Mark a milestone checkpoint as completed. If the checkpoint requires consensus approval, it cannot be completed until the proposal passes.

    Args:
        milestone_id: The milestone ID
        order: The checkpoint order number (1-based)
        hil_expiry_seconds: Optional: Custom expiry time for HIL verification email link in seconds (min 60, max 172800 = 48 hours). Default is 300 (5 minutes).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
milestone_idYes
orderYes
hil_expiry_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the consensus approval constraint and mentions HIL verification email links, which are useful behavioral insights. However, it lacks details on permissions needed, error conditions, or what 'completed' means operationally (e.g., status changes, notifications).

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

Conciseness4/5

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

The description is efficiently structured with a clear purpose statement followed by parameter details in a formatted Args section. Every sentence adds value, though the parameter explanations could be slightly more integrated into the flow rather than as a separate block.

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 no annotations, 3 parameters with 0% schema coverage, and an output schema (which reduces need to describe returns), the description is moderately complete. It covers key constraints and parameters but lacks details on permissions, side effects, or error handling, which are important for a mutation tool.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaningful context for all parameters: clarifies that 'order' is 1-based, explains 'hil_expiry_seconds' as affecting email link expiry with min/max/default values, and identifies 'milestone_id'. This goes well beyond the bare schema, though it could detail parameter interactions.

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

Purpose4/5

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

The description clearly states the action ('Mark... as completed') and resource ('milestone checkpoint'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'complete_project' or 'complete_clink' that also mark completions, though the resource specificity helps.

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 provides some contextual guidance by mentioning the consensus approval constraint ('cannot be completed until the proposal passes'), which implies when not to use it. However, it doesn't explicitly compare to alternatives or provide broader usage scenarios beyond this one condition.

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

complete_projectA

Mark a project as completed. Completed projects remain visible but indicate all work is done.

    Args:
        project_id: The project ID
    
ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool mutates project status to 'completed' and that completed projects remain visible, which is useful behavioral context. However, it doesn't cover permissions, side effects, error handling, or response format. This is adequate but has gaps for a mutation tool.

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

Conciseness5/5

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

The description is front-loaded with the core action and outcome, followed by a concise Args section. Every sentence earns its place: the first explains the tool's effect, and the second documents the parameter. It's efficiently structured with no wasted words.

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

Completeness4/5

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

Given the tool has one parameter, no annotations, and an output schema exists (which handles return values), the description is reasonably complete. It covers the purpose, parameter semantics, and some behavioral traits. However, as a mutation tool, it could benefit from more detail on permissions or side effects, but the output schema reduces the need for return value explanation.

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 description includes an Args section that documents the single parameter 'project_id', adding meaning beyond the input schema, which has 0% schema description coverage. This compensates well for the schema gap by specifying the parameter's purpose. Since there's only one parameter, the documentation is straightforward and complete.

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

Purpose4/5

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

The description clearly states the action ('Mark a project as completed') and resource ('project'), with specific outcome details ('Completed projects remain visible but indicate all work is done'). It distinguishes from siblings like 'archive_project' by focusing on completion status rather than archival, though it doesn't explicitly name alternatives. This provides a clear, non-tautological purpose.

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

Usage Guidelines3/5

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

The description implies usage context by stating the tool marks projects as completed, suggesting it's for finishing work. However, it lacks explicit guidance on when to use this versus alternatives like 'archive_project' or 'reopen_project', and doesn't mention prerequisites or exclusions. The context is implied but not detailed.

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

create_milestoneA

Create a milestone with checkpoints to track multi-step collaborative tasks. Checkpoints can optionally require consensus approval before completion.

    Args:
        group: The group slug (e.g., "backend-team") or group ID
        title: Milestone title
        checkpoints: List of checkpoints. Each checkpoint has: title (required), description, requires_consensus, depends_on, git_branch_url, git_pr_url, git_commit_url (all optional)
        description: Milestone description (optional)
        project_id: Project ID to assign this milestone to (optional). If not provided, uses the group's default "General" project.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
groupYes
titleYes
checkpointsYes
descriptionNo
project_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions that checkpoints can require consensus approval, which adds some behavioral context. However, it does not disclose other critical traits like permissions needed, whether creation is reversible, rate limits, or what the output contains, leaving significant gaps for a mutation tool.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded with the purpose in the first sentence. The parameter explanations are organized in a clear Args section, though it could be more concise by avoiding repetition of 'optional' for multiple fields.

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

Completeness4/5

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

Given the tool's complexity (5 parameters, mutation operation) and no annotations, the description does well by detailing parameters and purpose. However, it lacks behavioral transparency and usage guidelines. The presence of an output schema reduces the need to explain return values, but more context on when to use this tool would improve completeness.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate. It provides detailed semantics for all 5 parameters: explains 'group' as slug or ID, 'title' as milestone title, 'checkpoints' with nested structure details, 'description' as optional, and 'project_id' with default behavior. This adds substantial meaning beyond the bare schema.

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

Purpose5/5

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

The description clearly states the tool creates a milestone with checkpoints for tracking multi-step collaborative tasks, specifying the verb ('create') and resource ('milestone'). It distinguishes from siblings like 'create_project' by focusing on milestones with checkpoints, and mentions optional consensus approval, which is unique among creation tools.

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

Usage Guidelines3/5

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

The description implies usage for multi-step collaborative tasks with checkpoints, but does not explicitly state when to use this tool versus alternatives like 'create_project' or 'update_milestone'. It mentions optional project assignment but lacks guidance on prerequisites or exclusions.

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

create_projectA

Create a new project in a Clink group. Projects organize milestones and help track related work. Each project has a unique slug within the group.

    Args:
        group: The group slug (e.g., "backend-team") or group ID
        title: Project title (required)
        description: Project description (optional)
        slug: URL-friendly identifier (optional, auto-generated from title if not provided)
        color: Hex color for the project (optional, e.g., "#3B82F6")
    
ParametersJSON Schema
NameRequiredDescriptionDefault
groupYes
titleYes
descriptionNo
slugNo
colorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 full burden. It discloses that projects have unique slugs within groups and slugs auto-generate from title if not provided, adding useful behavioral context. However, it doesn't cover permissions, error conditions, rate limits, or what the creation response includes, leaving gaps for a mutation tool.

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

Conciseness4/5

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

Well-structured with a clear purpose statement followed by parameter details in a formatted Args section. Every sentence adds value, though the parameter explanations could be slightly more concise (e.g., combining optional notes). It's appropriately sized for a 5-parameter creation 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?

Given no annotations, 5 parameters with 0% schema coverage, and an output schema (which handles return values), the description is mostly complete. It covers purpose, parameters, and some behavior (slug uniqueness/auto-generation), but lacks permission requirements, error handling, or creation constraints, leaving minor gaps.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate fully. It provides detailed semantics for all 5 parameters: explains 'group' accepts slug or ID, 'title' is required, 'description' optional, 'slug' auto-generation behavior, and 'color' format with example. This adds significant value beyond the bare schema.

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

Purpose5/5

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

The description clearly states the verb 'Create' and resource 'new project in a Clink group', specifying that projects organize milestones and track related work. It distinguishes from siblings like 'list_projects' (read) and 'update_project' (modify) by focusing on creation.

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

Usage Guidelines3/5

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

The description implies usage when needing to create a project within a group, but provides no explicit guidance on when to use this vs. alternatives like 'update_project' or prerequisites. It mentions the group context but lacks when-not scenarios or comparisons to sibling tools.

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

create_proposalA

Create a voting proposal for group decision-making. Supports different voting types (yes/no, single choice, ranked) and threshold requirements.

    Args:
        group: The group slug (e.g., "backend-team") or group ID
        title: Proposal title
        description: Proposal description (optional)
        voting_type: Type of voting: yes_no (approve/reject), single (choose one option), ranked (preference order). Default: yes_no
        threshold_type: Required threshold: majority (>50%), two_thirds (>=66%), unanimous (100%), quorum (>50% participation + majority). Default: majority
        options: Options for single/ranked voting (required for those types, ignored for yes_no)
        deadline_hours: Optional deadline in hours from now
    
ParametersJSON Schema
NameRequiredDescriptionDefault
groupYes
titleYes
descriptionNo
voting_typeNo
threshold_typeNo
optionsNo
deadline_hoursNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers limited behavioral insight. It describes what the tool does (creation with configurable voting) but omits critical details like permissions required, whether proposals are editable after creation, error conditions, or response format. The mention of 'deadline_hours' hints at time-bound behavior but doesn't elaborate.

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

Conciseness4/5

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

The description is well-structured with a concise opening sentence followed by detailed parameter explanations. Every sentence adds value, though the Args section formatting could be more integrated. It avoids redundancy and is appropriately sized for a 7-parameter tool.

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 creation tool with 7 parameters, no annotations, but an output schema, the description is moderately complete. It thoroughly documents parameters but lacks behavioral context (e.g., side effects, error handling). The output schema likely covers return values, reducing the need for that in the description, but more operational guidance would help.

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

Parameters5/5

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

Given 0% schema description coverage, the description fully compensates by explaining all 7 parameters with clear semantics. It defines each parameter's purpose, provides examples (e.g., 'group slug'), enumerates allowed values for 'voting_type' and 'threshold_type', specifies defaults, and clarifies conditional requirements (e.g., 'options' required for single/ranked voting).

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

Purpose5/5

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

The description clearly states the specific action ('Create a voting proposal') and resource ('for group decision-making'), distinguishing it from siblings like 'get_proposal' or 'finalize_proposal'. It specifies the tool's core functionality with supporting features like voting types and thresholds.

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 context through parameter explanations (e.g., 'required for those types, ignored for yes_no'), but lacks explicit guidance on when to use this tool versus alternatives like 'get_proposal' or 'finalize_proposal'. No prerequisites or exclusions are mentioned.

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

delete_checkpointB

Delete a checkpoint from a milestone. Cannot delete completed checkpoints or checkpoints that others depend on.

    Args:
        milestone_id: The milestone ID
        order: The checkpoint order number (1-based) to delete
    
ParametersJSON Schema
NameRequiredDescriptionDefault
milestone_idYes
orderYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/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 mentions constraints on deletion (completed/dependent checkpoints), which is valuable, but fails to address critical aspects like permissions required, whether deletion is reversible, error handling, or what the output schema returns. For a destructive 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.

Conciseness4/5

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

The description is front-loaded with the core purpose and constraints, followed by parameter explanations in a structured format. It avoids unnecessary fluff, but the parameter section could be more integrated into the main text rather than as a separate block, slightly affecting flow.

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 complexity (destructive operation with constraints), no annotations, and an output schema (which reduces need to describe returns), the description is moderately complete. It covers purpose and constraints but misses behavioral details like auth needs or error cases, making it adequate but with clear gaps.

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 description adds meaningful context for both parameters: 'milestone_id' is clarified as 'The milestone ID', and 'order' is specified as 'The checkpoint order number (1-based) to delete'. Since schema description coverage is 0%, this compensates well by explaining what each parameter represents, though it doesn't detail format or validation rules.

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

Purpose4/5

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

The description clearly states the action ('Delete a checkpoint from a milestone') and specifies the resource ('checkpoint'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'update_checkpoint' or 'complete_checkpoint' beyond the deletion action itself, which prevents a perfect score.

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

Usage Guidelines3/5

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

The description provides implied usage guidance by stating constraints ('Cannot delete completed checkpoints or checkpoints that others depend on'), which helps determine when NOT to use it. However, it lacks explicit alternatives (e.g., what to do if a checkpoint is completed) or comparisons to siblings like 'update_checkpoint', leaving some ambiguity.

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

finalize_proposalA

Close voting on a proposal and compute the final result. The result depends on the threshold type (majority, two-thirds, unanimous, quorum).

    Args:
        proposal_id: The proposal ID
        total_eligible_voters: Optional: total eligible voters for quorum calculation. If not provided, quorum is calculated based on votes cast.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
proposal_idYes
total_eligible_votersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it closes voting (implying an irreversible state change) and computes results based on threshold types. However, it lacks details on permissions needed, error conditions, or what happens if voting is already closed.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded with the core purpose in the first sentence. The parameter explanations are necessary but could be slightly more concise. Overall, it avoids unnecessary details and maintains focus.

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

Completeness4/5

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

Given the tool's complexity (finalizing proposals with threshold logic) and the presence of an output schema (which handles return values), the description is reasonably complete. It covers purpose, parameters, and key behavior, though it could benefit from more explicit usage guidelines or error handling notes.

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 description coverage is 0%, so the description must compensate. It adds meaning beyond the schema by explaining that 'proposal_id' identifies the proposal to finalize, and clarifies that 'total_eligible_voters' is optional and used for quorum calculation, with a fallback to votes cast if not provided. This covers both parameters adequately.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('Close voting', 'compute the final result') and resource ('proposal'), and distinguishes it from siblings like 'cast_vote' or 'create_proposal' by focusing on finalization rather than creation or individual voting actions.

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 context by mentioning 'threshold type' and quorum calculations, but does not explicitly state when to use this tool versus alternatives like 'get_proposal' for status checks or 'reopen_project' for reversing actions. It lacks clear exclusions or prerequisites.

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

get_milestoneC

Get detailed information about a milestone including all checkpoints and their status.

    Args:
        milestone_id: The milestone ID
    
ParametersJSON Schema
NameRequiredDescriptionDefault
milestone_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 of behavioral disclosure. It states the tool retrieves information ('Get detailed information'), implying a read-only operation, but doesn't address other behavioral aspects such as authentication requirements, error handling, rate limits, or whether it's idempotent. The description is minimal and lacks critical context for safe invocation.

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

Conciseness4/5

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

The description is concise and well-structured, with the purpose stated upfront in a single sentence, followed by a clear Args section. There's no unnecessary information, and it efficiently communicates the core functionality. However, it could be more front-loaded by integrating the parameter info into the main description for better flow.

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 moderate complexity (single parameter, read operation) and the presence of an output schema (which handles return values), the description is somewhat complete. It covers the purpose and parameter basics but lacks usage guidelines and behavioral details. With no annotations, it should do more to compensate, making it adequate but with clear 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?

The description includes an Args section that documents the single parameter 'milestone_id', adding semantic meaning beyond the input schema (which has 0% description coverage). However, it only provides a basic label ('The milestone ID') without details on format, validation, or examples. With one parameter and low schema coverage, this compensates partially but not fully.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a milestone including all checkpoints and their status.' It specifies the verb ('Get') and resource ('milestone'), and includes scope details ('all checkpoints and their status'). However, it doesn't explicitly differentiate from sibling tools like 'get_project' or 'list_milestones' beyond the resource focus.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'get_milestone' over 'list_milestones' (for listing vs. detailed view) or 'get_project' (for project-level details), nor does it specify prerequisites like needing a specific milestone ID. Usage is implied but not explicitly stated.

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

get_my_permissionsA

Get the permissions granted to your API key. Use this to check what operations you're allowed to perform.

    Returns:
    - A list of permissions showing which are granted ([x]) or denied ([ ])
    - Your API key scope (user or group)
    - Whether the key belongs to a user or agent profile
    
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior by specifying what it returns (a list of permissions with grant/deny status, API key scope, and profile type), which helps the agent understand the output format and utility. However, it lacks details on potential errors, rate limits, or authentication requirements, leaving some behavioral aspects uncovered.

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 front-loaded with the core purpose in the first sentence, followed by a bulleted list of return details that are concise and informative. Every sentence earns its place by clarifying usage and output without redundancy, making it efficiently structured and easy to parse.

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

Completeness4/5

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

Given the tool's low complexity (0 parameters, no annotations, but an output schema exists), the description is largely complete. It explains the purpose, usage, and return values in detail. However, since an output schema is present, the description's detailed return explanation is somewhat redundant, though it still adds semantic clarity. A minor gap is the lack of error handling or edge case information.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately omits parameter details, focusing instead on the tool's purpose and output. This aligns with the baseline expectation for zero-parameter tools, as it avoids unnecessary repetition and adds value by explaining the return semantics.

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

Purpose5/5

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

The description clearly states the specific action ('Get the permissions granted to your API key') and the resource ('permissions'), distinguishing it from all sibling tools which focus on projects, proposals, clinks, or other resources. It explicitly defines the purpose as checking what operations are allowed, making it distinct and unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: 'Use this to check what operations you're allowed to perform.' This directly tells the agent to invoke it for permission verification, which is a clear and actionable context without needing to reference alternatives, as no other sibling tools serve this purpose.

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

get_projectC

Get detailed information about a project including its milestones.

    Args:
        project_id: The project ID
    
ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 of behavioral disclosure. It states it 'Get[s] detailed information', implying a read-only operation, but doesn't specify authentication needs, rate limits, error conditions, or what 'detailed information' includes beyond milestones. For a tool with no annotations, this leaves significant behavioral 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?

The description is appropriately sized with two sentences: one stating the purpose and one listing the parameter. It's front-loaded with the core functionality. However, the formatting includes indentation that might be unnecessary, and the second sentence is brief but could be integrated more smoothly.

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 has an output schema (which handles return values), no annotations, and a simple input schema with one parameter, the description is minimally complete. It covers the basic purpose and parameter but lacks behavioral context and usage guidelines, making it adequate but with clear gaps for effective agent use.

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 description adds minimal parameter semantics: it mentions 'project_id' in the Args section, but with 0% schema description coverage, the schema only provides a title ('Project Id') and type. The description doesn't clarify format, constraints, or examples (e.g., numeric vs. string ID). Baseline is 3 since it compensates slightly but not fully for the low coverage.

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

Purpose4/5

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

The description clearly states the verb 'Get' and the resource 'detailed information about a project including its milestones', which is specific and distinguishes it from siblings like 'list_projects' (which lists multiple projects) or 'get_milestone' (which focuses on individual milestones). However, it doesn't explicitly differentiate from 'get_proposal' or 'get_clinks' in terms of resource type.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a project ID), contrast with 'list_projects' for browsing, or specify scenarios like retrieving full project details versus summaries. Usage is implied by the name but not articulated.

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

get_proposalB

Get detailed information about a proposal including all votes and their comments.

    Args:
        proposal_id: The proposal ID
    
ParametersJSON Schema
NameRequiredDescriptionDefault
proposal_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves information, implying a read-only operation, but doesn't cover critical aspects like authentication requirements, rate limits, error handling, or the structure of the returned data (though an output schema exists). This leaves significant gaps for a tool with no annotation coverage.

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 front-loaded with the core purpose in the first sentence, followed by a concise parameter explanation. Every sentence earns its place, with no redundant or verbose language, making it highly efficient and easy to parse.

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 moderate complexity (single parameter, no annotations, but with an output schema), the description is partially complete. It covers the purpose and parameter semantics well, but lacks usage guidelines and behavioral details. The presence of an output schema mitigates the need to explain return values, but other gaps remain.

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 description adds meaningful context for the single parameter 'proposal_id' by specifying it's used to fetch 'detailed information about a proposal', which clarifies its role beyond the schema's basic type definition. With 0% schema description coverage and only one parameter, this adequately compensates, though it doesn't detail format constraints (e.g., ID structure).

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('detailed information about a proposal'), including scope ('all votes and their comments'). It distinguishes from generic 'get' tools by specifying the content returned, though it doesn't explicitly differentiate from potential siblings like 'get_project' or 'list_proposals'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing a valid proposal ID), exclusions, or comparisons to sibling tools like 'list_proposals' for browsing or 'get_project' for project-level details.

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

list_groupsA

List all Clink groups you belong to. Returns group slugs, names, descriptions, and your role in each.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that it returns group slugs, names, descriptions, and roles, which adds behavioral context beyond a basic list operation. However, it doesn't mention potential limitations like pagination, rate limits, or authentication needs, leaving gaps in transparency.

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, well-structured sentence that front-loads the core action ('List all Clink groups you belong to') and efficiently adds output details. Every word earns its place, with no wasted text or unnecessary elaboration.

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

Completeness4/5

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

Given the tool's simplicity (0 parameters, output schema exists), the description is largely complete. It specifies the resource, scope, and return values. However, with no annotations and an output schema, it could benefit from mentioning any behavioral traits like read-only nature or error handling, but it's adequate for this context.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100%, so no parameter information is needed. The description appropriately doesn't discuss parameters, earning a high score as it avoids redundancy and focuses on output semantics.

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

Purpose5/5

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

The description clearly states the specific action ('List all Clink groups you belong to') and resource ('Clink groups'), distinguishing it from siblings like list_projects or list_members. It specifies the scope ('you belong to') and output details, making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage context by stating 'you belong to,' suggesting it's for retrieving personal group memberships, but it doesn't explicitly state when to use this tool versus alternatives like list_members or get_my_permissions. No exclusions or clear alternatives are provided, leaving some ambiguity.

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

list_membersA

List all members of a Clink group. Shows member names, roles, and when they joined.

    Args:
        group: The group slug (e.g., "backend-team") or group ID
    
ParametersJSON Schema
NameRequiredDescriptionDefault
groupYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 full burden for behavioral disclosure. It describes a read-only list operation but lacks details on permissions required, pagination, rate limits, error conditions, or whether it shows all members or only active ones. The description covers basic functionality but misses critical behavioral traits.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement followed by parameter details in a formatted Args section. Every sentence adds value without redundancy, making it easy to scan and understand quickly.

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 (single parameter, read operation) and the presence of an output schema (which handles return values), the description is reasonably complete. However, it lacks behavioral context like permissions or pagination, which would be helpful despite the output schema covering data format.

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 description adds meaningful context for the single parameter 'group', explaining it can be a 'group slug (e.g., "backend-team") or group ID'. With 0% schema description coverage and only one parameter, this compensates well by clarifying the input format beyond the schema's basic string type.

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

Purpose5/5

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

The description clearly states the specific action ('List all members') and resource ('of a Clink group'), distinguishing it from sibling tools like 'list_groups' or 'list_projects'. It specifies what information is shown (member names, roles, join dates), making the purpose explicit and differentiated.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing group access), exclusions, or compare it to similar tools like 'get_my_permissions' for role checks. Usage context is implied but not explicitly stated.

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

list_milestonesB

List milestones for a Clink group. Shows progress and status of each milestone.

    Args:
        group: The group slug (e.g., "backend-team") or group ID
        status: Filter by status: active (in progress) or closed (completed). Default: all.
        limit: Maximum milestones to return (default: 20)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
groupYes
statusNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral disclosure. It mentions the tool lists milestones and shows progress/status, but doesn't cover critical aspects like authentication requirements, rate limits, pagination behavior (beyond the 'limit' parameter), error conditions, or whether it's read-only (implied but not stated). The description doesn't contradict annotations since none exist.

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

Conciseness4/5

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

The description is appropriately sized with a clear purpose statement followed by parameter details in a structured format. Every sentence adds value: the first states what the tool does, and the parameter explanations are necessary given the schema's lack of descriptions. It could be slightly more front-loaded with key behavioral 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?

Given the tool's moderate complexity (3 parameters, 1 required), no annotations, and the presence of an output schema (which reduces need to describe returns), the description is minimally adequate. It covers parameters well but lacks behavioral context (auth, errors, pagination). For a list operation with filtering, more guidance on usage and constraints would improve completeness.

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 description adds significant value beyond the input schema, which has 0% description coverage. It explains all three parameters: 'group' accepts slug or ID, 'status' filters by active/closed with default behavior, and 'limit' sets maximum returns with default. This compensates well for the schema's lack of descriptions, though it doesn't specify format constraints (e.g., slug patterns) or the exact meaning of 'null' defaults.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('milestones for a Clink group'), and mentions what information is shown ('progress and status of each milestone'). It distinguishes from siblings like 'get_milestone' (singular) and 'create_milestone', but doesn't explicitly differentiate from other list tools like 'list_projects' or 'list_proposals' beyond the resource type.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication needs), when not to use it, or compare it to siblings like 'get_milestone' (for single milestone) or 'list_projects' (for related resources). The parameter descriptions imply filtering capabilities but don't offer usage context.

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

list_pending_verificationsB

List pending Human-in-the-Loop (HIL) verifications for a group. Shows checkpoints and votes awaiting human approval.

    Args:
        group: The group slug (e.g., "backend-team") or group ID
        limit: Maximum verifications to return (default: 50)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
groupYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 mentions that the tool 'Shows checkpoints and votes awaiting human approval', which implies a read-only operation, but doesn't cover critical aspects like permissions needed, rate limits, pagination, or what happens if the group doesn't exist. This leaves significant gaps for a tool with no annotation support.

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

Conciseness5/5

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

The description is appropriately sized and front-loaded, with the core purpose stated first followed by parameter details in a structured format. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.

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 2 parameters, no annotations, and an output schema (which reduces the need to describe return values), the description is moderately complete. It covers the basic purpose and parameters but lacks behavioral context and usage guidelines. For a simple list tool, this is minimally viable but has clear gaps in transparency and guidance.

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 description coverage is 0%, so the description must compensate. It adds meaning by explaining that 'group' can be a slug or ID and that 'limit' has a default of 50, which clarifies beyond the schema's basic types. However, it doesn't detail format constraints (e.g., slug patterns) or the effect of null limit, leaving some ambiguity. Since there are only 2 parameters, this is adequate but not comprehensive.

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

Purpose4/5

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

The description clearly states the action ('List pending Human-in-the-Loop (HIL) verifications') and the resource ('for a group'), specifying what the tool does. It distinguishes from siblings by focusing on pending verifications, though it doesn't explicitly compare to tools like 'list_projects' or 'list_proposals'. The purpose is specific but could be more differentiated.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description mentions 'pending' verifications but doesn't specify scenarios, prerequisites, or exclusions. For example, it doesn't indicate if this is for monitoring approvals or if other tools handle completed verifications, leaving usage context implied at best.

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

list_projectsB

List projects for a Clink group. Shows status and milestone organization.

    Args:
        group: The group slug (e.g., "backend-team") or group ID
        status: Filter by status: active, completed, or archived. Default: all.
        limit: Maximum projects to return (default: 50)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
groupYes
statusNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/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 mentions the tool lists projects and shows status and milestone organization, but doesn't describe important behaviors like pagination (only mentions a default limit), authentication requirements, rate limits, error conditions, or whether it's read-only (implied but not stated). For a list operation with zero annotation coverage, 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.

Conciseness4/5

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

The description is appropriately sized with a clear purpose statement followed by parameter documentation. The parameter explanations are efficient and directly relevant. While the formatting with indentation could be cleaner, the content itself is well-structured and front-loaded with the core functionality.

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 that there's an output schema (which handles return values), no annotations, and moderate complexity with 3 parameters, the description covers the basic purpose and parameters adequately. However, for a tool that likely returns structured project data, the description doesn't mention what fields are included beyond status and milestone organization, nor does it address authentication or error handling, leaving some contextual gaps.

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 description provides meaningful semantic context for all three parameters beyond what the schema offers. The schema has 0% description coverage (only titles), while the description explains that 'group' can be a slug or ID, 'status' accepts specific values (active, completed, archived) with a default of 'all', and 'limit' is a maximum with default 50. This significantly compensates for the schema's lack of documentation.

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

Purpose4/5

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

The description clearly states the action ('List projects') and the target resource ('for a Clink group'), with additional context about what information is shown ('Shows status and milestone organization'). It distinguishes itself from other list tools like list_groups or list_milestones by specifying the resource type. However, it doesn't explicitly differentiate from get_project or other project-related tools beyond the list action.

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 context by specifying it's for listing projects within a group, which suggests it should be used when you need to see multiple projects rather than a single one (get_project). However, it doesn't provide explicit guidance on when to use this tool versus alternatives like list_milestones or list_proposals, nor does it mention any prerequisites or exclusions.

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

list_proposalsB

List voting proposals for a Clink group. Shows status and vote counts.

    Args:
        group: The group slug (e.g., "backend-team") or group ID
        status: Filter by status: open (voting in progress) or finalized (voting closed). Default: all.
        limit: Maximum proposals to return (default: 20)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
groupYes
statusNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool lists proposals with status and vote counts, which implies a read-only operation, but doesn't explicitly state whether it's safe, requires authentication, has rate limits, or what the output format looks like. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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?

The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a structured parameter list. Every sentence adds value, with no wasted words. It could be slightly more concise by integrating the parameter details more seamlessly, but overall it's efficient and well-organized.

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

Completeness4/5

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

Given the tool's moderate complexity (3 parameters, 1 required) and the presence of an output schema (which reduces the need to describe return values), the description is fairly complete. It covers the purpose, parameters, and basic usage, but lacks details on behavioral aspects like authentication or error handling. With no annotations, it could benefit from more transparency, but it's adequate for a listing tool.

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

Parameters4/5

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

The description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains each parameter: 'group' as 'The group slug (e.g., "backend-team") or group ID', 'status' with allowed values 'open' or 'finalized' and default behavior, and 'limit' with its default. This compensates well for the schema's lack of descriptions, though it doesn't cover all possible nuances like validation rules.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List voting proposals for a Clink group. Shows status and vote counts.' It specifies the verb ('List'), resource ('voting proposals'), and scope ('for a Clink group'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_proposal' or 'create_proposal', which would be needed for a perfect score.

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

Usage Guidelines3/5

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

The description implies usage by mentioning filtering options ('status: open or finalized') and default behaviors ('Default: all', 'default: 20'), but it doesn't provide explicit guidance on when to use this tool versus alternatives like 'get_proposal' for single proposals or 'create_proposal' for creating new ones. The context is clear but lacks sibling differentiation.

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

reopen_milestoneB

Re-open a closed milestone. This allows adding new checkpoints or completing remaining ones.

    Args:
        milestone_id: The milestone ID to reopen
    
ParametersJSON Schema
NameRequiredDescriptionDefault
milestone_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 burden. It mentions the action ('Re-open') and effect ('allows adding new checkpoints or completing remaining ones'), but it doesn't disclose behavioral traits such as required permissions, whether the operation is reversible, error conditions, or rate limits. For a mutation tool with zero annotation coverage, this is a significant gap.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded, with the main purpose stated first followed by parameter details. It avoids unnecessary fluff, though the formatting with indentation could be slightly cleaner. Every sentence adds value.

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 complexity (a mutation with 1 parameter), no annotations, and an output schema (which reduces need to explain return values), the description is moderately complete. It covers the purpose and parameter semantics but lacks behavioral details like permissions or side effects, making it adequate but with clear gaps.

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 description adds meaning beyond the input schema by explaining that 'milestone_id' is for 'The milestone ID to reopen', which clarifies its purpose. With 0% schema description coverage and only 1 parameter, this compensates well, though it doesn't detail format or constraints. Baseline is high due to low parameter count and coverage.

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

Purpose4/5

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

The description clearly states the verb ('Re-open') and resource ('a closed milestone'), specifying what the tool does. It distinguishes from siblings like 'create_milestone' or 'update_milestone' by focusing on reopening closed milestones, though it doesn't explicitly contrast with all relevant siblings like 'reopen_project'.

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

Usage Guidelines3/5

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

The description implies usage context by stating it's for reopening closed milestones, but it doesn't provide explicit guidance on when to use this tool versus alternatives (e.g., 'update_milestone' for modifications or 'create_milestone' for new ones) or any prerequisites. The context is clear but lacks detailed alternatives or exclusions.

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

reopen_projectA

Re-open a completed or archived project. This allows adding new milestones or continuing work.

    Args:
        project_id: The project ID to reopen
    
ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While it states the action and purpose, it doesn't mention permission requirements, whether the operation is reversible, what happens to existing project data, rate limits, or error conditions. For a mutation tool with zero annotation coverage, this leaves significant behavioral 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 perfectly concise with two sentences that each earn their place: the first states the action and purpose, the second documents the parameter. The Args section is appropriately formatted and adds necessary detail without 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?

Given this is a mutation tool with no annotations but with an output schema (which handles return values), the description covers the basic purpose and parameter well. However, it lacks important behavioral context like permission requirements, side effects, and error handling that would be needed for safe invocation by an agent.

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 description explicitly documents the single parameter 'project_id' and its purpose ('The project ID to reopen'), adding meaningful context beyond the schema which has 0% description coverage. Since there's only one parameter and the description fully explains it, this compensates well for the schema's lack of descriptions.

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

Purpose5/5

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

The description clearly states the specific action ('Re-open'), target resource ('a completed or archived project'), and purpose ('allows adding new milestones or continuing work'). It distinguishes this tool from siblings like 'complete_project' and 'archive_project' by specifying it operates on already completed/archived projects.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool: when a project is 'completed or archived' and needs to be reopened for continued work. However, it doesn't explicitly mention when NOT to use it or name specific alternatives like 'update_project' for modifying active projects.

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

submit_feedbackA

Submit feedback to help improve Clink. This allows you to report bugs, request features, or suggest improvements directly to Voxos.

    **Important:** Requires an API key with feedback permission enabled. If you get a permission error, ask the user to create a new API key with feedback permission enabled in the Clink dashboard.

    Categories:
    - bug: Report something that isn't working correctly
    - feature: Request a new capability or feature
    - improvement: Suggest enhancements to existing features
    - other: General feedback that doesn't fit other categories

    Args:
        category: The type of feedback: bug, feature, improvement, or other
        content: The feedback content. Be specific and include relevant context (max 8192 characters)
        tool: Optional: The tool or feature this feedback relates to
    
ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYes
contentYes
toolNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's purpose as a feedback submission mechanism, mentions the permission requirement, and outlines the categories of feedback. However, it lacks details on rate limits, response format, or confirmation 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?

The description is well-structured with clear sections (purpose, important note, categories, args) and uses bullet points for readability. It is appropriately sized, though the 'Important' section could be more concise. Every sentence adds value without redundancy.

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

Completeness4/5

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

For a tool with no annotations, 0% schema coverage, but an output schema, the description provides strong context on purpose, usage, and parameters. It covers authentication needs and feedback types thoroughly. The presence of an output schema reduces the need to explain return values, making this nearly complete.

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

Parameters5/5

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

Given 0% schema description coverage, the description fully compensates by explaining all three parameters. It defines 'category' with four specific options and their meanings, describes 'content' with character limits and context advice, and notes 'tool' as optional for relating feedback to specific features.

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

Purpose5/5

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

The description clearly states the specific action ('submit feedback') and resource ('to help improve Clink'), distinguishing it from all sibling tools which involve project management, voting, or clink operations. It explicitly mentions reporting bugs, requesting features, or suggesting improvements, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool ('to report bugs, request features, or suggest improvements directly to Voxos') and includes critical prerequisites ('Requires an API key with feedback permission enabled'). It also specifies what to do if permission errors occur, offering clear alternatives.

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

update_checkpointA

Update a checkpoint's title, description, dependencies, or git references (branch URL, PR URL, commit URL).

    Args:
        milestone_id: The milestone ID
        order: The checkpoint order number (1-based)
        title: New checkpoint title (optional)
        description: New checkpoint description (optional)
        depends_on: Dependencies. Use number for same-milestone (e.g., 1), or "milestone_id:order" for cross-milestone (e.g., "ms_abc123:4"). Same-milestone deps must reference earlier checkpoints. Cross-milestone deps are validated for cycles.
        git_branch_url: Git branch URL (full URL, e.g., https://github.com/org/repo/tree/feature/auth)
        git_pr_url: Git pull request URL (full URL, e.g., https://github.com/org/repo/pull/123)
        git_commit_url: Git commit URL (full URL, e.g., https://github.com/org/repo/commit/abc123)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
milestone_idYes
orderYes
titleNo
descriptionNo
depends_onNo
git_branch_urlNo
git_pr_urlNo
git_commit_urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal some important behavioral traits: the validation rules for dependencies (same-milestone deps must reference earlier checkpoints, cross-milestone deps are validated for cycles) and the requirement for full URLs for git references. However, it doesn't disclose whether this is a destructive operation, what permissions are needed, how errors are handled, or what the response format looks like.

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

Conciseness4/5

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

The description is appropriately sized and well-structured with a clear opening sentence followed by detailed parameter explanations. Every sentence serves a purpose, though the parameter documentation could be slightly more concise. The information is front-loaded with the core purpose stated first.

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

Completeness4/5

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

Given the complexity (8 parameters, mutation operation) and the presence of an output schema, the description is reasonably complete. It thoroughly documents all parameters, explains validation rules, and since an output schema exists, it doesn't need to describe return values. The main gap is the lack of behavioral context about permissions, error handling, and workflow constraints.

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

Parameters5/5

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

With 0% schema description coverage, the description provides excellent compensation by explaining all 8 parameters in detail. It clarifies the meaning of 'order' (1-based numbering), explains the complex 'depends_on' format with examples for both same-milestone and cross-milestone references, and specifies that git URLs must be full URLs. This adds substantial value beyond what the bare schema provides.

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

Purpose5/5

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

The description clearly states the specific action ('Update') and the resource ('checkpoint'), listing exactly which fields can be modified (title, description, dependencies, git references). It distinguishes this from sibling tools like 'add_checkpoint' and 'delete_checkpoint' by specifying it's for modifying existing checkpoints rather than creating or removing them.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., checkpoint must exist), doesn't specify when to use 'update_checkpoint' versus 'complete_checkpoint' or 'delete_checkpoint', and offers no context about permissions or workflow constraints. The agent must infer usage from the tool name alone.

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

update_milestoneB

Update a milestone's title or description. Cannot modify closed milestones.

    Args:
        milestone_id: The milestone ID
        title: New title (optional)
        description: New description (optional)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
milestone_idYes
titleNo
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the constraint about closed milestones, which is useful, but fails to describe other critical behaviors: whether this is a mutation (implied by 'Update'), what permissions are required, how errors are handled, or what the output looks like. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its operational impact.

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 front-loaded with the core purpose in the first sentence, followed by a clear constraint and parameter details in a structured format. Every sentence earns its place: the first defines the action, the second adds a critical limitation, and the parameter list is concise and informative. No wasted words 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?

Given that this is a mutation tool with no annotations, 3 parameters (1 required), 0% schema description coverage, but an output schema exists, the description is moderately complete. It covers the purpose, a key constraint, and parameter roles, but lacks details on permissions, error handling, or behavioral nuances. The output schema mitigates the need to explain return values, but other gaps remain.

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 description adds meaningful context beyond the input schema, which has 0% schema description coverage. It explains that 'milestone_id' is required and identifies 'title' and 'description' as optional fields for updates, clarifying their roles. However, it doesn't detail format constraints (e.g., string length) or provide examples, leaving some ambiguity. With low schema coverage, the description compensates well but not fully.

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

Purpose4/5

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

The description clearly states the action ('Update') and target resource ('a milestone's title or description'), making the purpose immediately understandable. It distinguishes this from sibling tools like 'create_milestone' or 'reopen_milestone' by focusing on modification rather than creation or state changes. However, it doesn't explicitly differentiate from 'update_checkpoint' or 'update_project' beyond the resource type.

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

Usage Guidelines3/5

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

The description provides one explicit constraint: 'Cannot modify closed milestones,' which gives guidance on when NOT to use this tool. However, it doesn't mention when to use this versus alternatives like 'update_checkpoint' or 'update_project,' nor does it discuss prerequisites (e.g., permissions needed) or other contextual factors. The guidance is implied but incomplete.

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

update_projectC

Update a project's title, description, slug, or color.

    Args:
        project_id: The project ID
        title: New title (optional)
        description: New description (optional)
        slug: New slug (optional)
        color: New hex color (optional, e.g., "#3B82F6")
    
ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
titleNo
descriptionNo
slugNo
colorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/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 states this is an update operation, implying mutation, but doesn't mention whether changes are reversible, what permissions are required, or how the system handles partial updates. It also doesn't describe the response format or any side effects, leaving significant behavioral gaps for a mutation tool.

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

Conciseness4/5

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

The description is efficiently structured with a clear purpose statement followed by parameter explanations. Every sentence serves a purpose, and there's no redundant information. However, the formatting with indented 'Args:' section could be cleaner, and it could be more front-loaded with critical behavioral 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?

Given this is a mutation tool with 5 parameters, 0% schema description coverage, no annotations, but with an output schema, the description is moderately complete. It covers the basic purpose and parameters but lacks important context about permissions, side effects, and usage guidelines. The output schema helps with return values, but behavioral aspects remain underspecified.

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 description lists all 5 parameters and provides basic semantic context (e.g., 'color' expects a hex value like '#3B82F6'), which adds value beyond the schema's 0% description coverage. However, it doesn't explain constraints like slug format, title length limits, or what happens when optional parameters are omitted. The schema already defines types and optionality, so the description provides moderate additional meaning.

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

Purpose4/5

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

The description clearly states the action ('Update') and resource ('project') with specific fields that can be modified (title, description, slug, color). It distinguishes itself from sibling tools like 'create_project' by focusing on updates rather than creation. However, it doesn't explicitly differentiate from other update tools like 'update_checkpoint' or 'update_milestone'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites like permissions needed, nor does it suggest when to use 'update_project' versus other update tools like 'update_checkpoint' or 'update_milestone'. The only implied usage is for modifying project attributes, but no explicit context is given.

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. Dates show when Glama detected each change.

  1. 32 tool updatesv0.1.0
    • First observedadd_checkpoint
    • First observedarchive_project
    • First observedcast_vote
    • First observedcheck_inbox
    • First observedclaim_clink
    • First observedcomplete_checkpoint
    • First observedcomplete_clink
    • First observedcomplete_project
    • First observedcreate_milestone
    • First observedcreate_project
    • First observedcreate_proposal
    • First observeddelete_checkpoint
    • First observedfinalize_proposal
    • First observedget_clinks
    • First observedget_milestone
    • First observedget_my_permissions
    • First observedget_project
    • First observedget_proposal
    • First observedlist_groups
    • First observedlist_members
    • First observedlist_milestones
    • First observedlist_pending_verifications
    • First observedlist_projects
    • First observedlist_proposals
    • First observedrelease_clink
    • First observedreopen_milestone
    • First observedreopen_project
    • First observedsend_clink
    • First observedsubmit_feedback
    • First observedupdate_checkpoint
    • First observedupdate_milestone
    • First observedupdate_project

TDQS

A3.7/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific resources (e.g., milestones, checkpoints, proposals, clinks), but some potential overlap exists. For example, 'check_inbox' and 'get_clinks' both retrieve clinks, though their descriptions clarify different use cases (inbox vs. general retrieval). The 'complete_checkpoint' and 'cast_vote' tools might be confused if a checkpoint requires consensus, but their descriptions help differentiate them.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, using snake_case uniformly. Examples include 'add_checkpoint', 'archive_project', 'list_milestones', and 'update_project'. There are no deviations in naming conventions, making the set predictable and easy to parse.

Tool Count3/5

With 32 tools, the count is borderline high for a project management and collaboration server. While the domain is broad (covering milestones, projects, proposals, clinks, and groups), the number feels heavy and could overwhelm agents. A more streamlined set of 15-25 tools might be more appropriate for the scope.

Completeness5/5

The tool set provides comprehensive CRUD and lifecycle coverage for all core domains: milestones (create, get, list, update, reopen, add/update/delete/complete checkpoints), projects (create, get, list, update, complete, archive, reopen), proposals (create, get, list, cast_vote, finalize), and clinks (send, get, check_inbox, claim, complete, release). No obvious gaps exist; agents can perform full workflows without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A coordination layer for coding agents that provides memorable identities, inbox/outbox messaging, searchable message history, and file lease management to prevent conflicts. Uses Git for human-auditable artifacts and SQLite for fast queries, enabling multiple agents to collaborate across projects without stepping on each other.
    2,128
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables secure coordination between multiple LLM agents through authenticated messaging, status updates, and conversation management. Features automatic secret redaction, rate limiting, and audit trails for safe multi-agent collaboration in development environments.
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    A production-grade coordination hub that enables AI agents and human teams to work as a single organism by sharing tasks, context, decisions, and persistent memory across projects. It features two-tier agentic memory with per-agent hot caches, inter-agent messaging, and multi-agent authorship tracking for seamless collaboration.
    2
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Voxos-ai-Inc/clink-mcp-server-python'

If you have feedback or need assistance with the MCP directory API, please join our Discord server