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: JustClone Coordination MCP Server

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.
    

Inputs: milestone_id (required), title (required), description, requires_consensus, +5 more. Returns: result

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
    

Inputs: project_id (required). Returns: result

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).
    

Inputs: proposal_id (required), vote (required), comment, hil_expiry_seconds. Returns: result

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)
    

Inputs: status, for_me, claim, limit. Returns: result

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).
    

Inputs: milestone_id (required), order (required), hil_expiry_seconds. Returns: result

complete_projectA

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

    Args:
        project_id: The project ID
    

Inputs: project_id (required). Returns: result

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.
    

Inputs: group (required), title (required), checkpoints (required), description, +1 more. Returns: result

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")
    

Inputs: group (required), title (required), description, slug, +1 more. Returns: result

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
    

Inputs: group (required), title (required), description, voting_type, +3 more. Returns: result

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
    

Inputs: milestone_id (required), order (required). Returns: result

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.
    

Inputs: proposal_id (required), total_eligible_voters. Returns: result

get_milestoneC

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

    Args:
        milestone_id: The milestone ID
    

Inputs: milestone_id (required). Returns: result

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
    

Inputs: no named parameters. Returns: result

get_projectC

Get detailed information about a project including its milestones.

    Args:
        project_id: The project ID
    

Inputs: project_id (required). Returns: result

get_proposalB

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

    Args:
        proposal_id: The proposal ID
    

Inputs: proposal_id (required). Returns: result

list_groupsA

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

Inputs: no named parameters. Returns: result

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
    

Inputs: group (required). Returns: result

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)
    

Inputs: group (required), status, limit. Returns: result

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)
    

Inputs: group (required), limit. Returns: result

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)
    

Inputs: group (required), status, limit. Returns: result

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)
    

Inputs: group (required), status, limit. Returns: result

reopen_milestoneB

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

    Args:
        milestone_id: The milestone ID to reopen
    

Inputs: milestone_id (required). Returns: result

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
    

Inputs: project_id (required). Returns: result

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
    

Inputs: category (required), content (required), tool. Returns: result

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)
    

Inputs: milestone_id (required), order (required), title, description, +4 more. Returns: result

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)
    

Inputs: milestone_id (required), title, description. Returns: result

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")
    

Inputs: project_id (required), title, description, slug, +1 more. Returns: result

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 32 tools

    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 recent community issues

    Related MCP Connectors

    Related MCP Servers

    • 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
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      Connects multiple AI agents (Codex, Claude Code, Grok, etc.) into a coordinated, auditable team with shared memory, task ownership, and human oversight, enabling parallel collaboration without conflicts.
      239
      Apache 2.0