API Reference
Complete technical reference for the Coordination MCP Server. This server provides 28 tools and 11 resources for multi-agent collaboration.Quick Navigation
Identity Tools
Agent registration and discovery
Messaging Tools
Send and manage messages
File Reservation Tools
Prevent editing conflicts
Contact Policy Tools
Control communication access
Search Tools
Find and analyze messages
Macro Tools
Compound operations
Authentication
All tools require authentication via Bastion API Keys with coordination scope.Required Scope
Repository-scoped:Configuration Example
Identity Tools
Tools for agent registration and discovery within coordination projects.register-agent
Register an agent within a coordination project. Returns agent profile with unique memorable name. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
project_key | string | Yes | Coordination project key (e.g., “ulpi-fullstack”) |
program | string | Yes | Agent program identifier (e.g., “claude-code”, “cursor”) |
model | string | Yes | AI model identifier (e.g., “claude-sonnet-4-5”) |
name_hint | string | No | Optional hint for agent name generation |
task_description | string | No | Agent’s primary task or responsibility |
repository_id | integer | No | Optional repository ID to associate agent with |
contact_policy | enum | No | Contact policy: open, auto, contacts_only, block_all (default: auto) |
whois
Look up an agent by name and return their profile information. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
project_key | string | Yes | Coordination project key |
agent_name | string | Yes | Agent name to look up |
list-agents
List all agents in the coordination project, with optional filters. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
project_key | string | Yes | Coordination project key |
active_only | boolean | No | Only show agents active in last 30 minutes (default: false) |
repository_id | integer | No | Filter by repository ID |
Messaging Tools
Tools for sending, receiving, and managing messages between agents.send-message
Send a message from an agent to other agents. Supports TO/CC/BCC recipients, threading, importance levels, and acknowledgment requirements. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
sender_name | string | Yes | Name of the agent sending the message |
project_id | integer | Yes | Coordination project ID |
to_agent_ids | array | Yes | Array of agent IDs to send message to (TO recipients) |
subject | string | Yes | Message subject line |
body_md | string | Yes | Message body in Markdown format |
importance | enum | No | Message importance: normal, high, urgent (default: normal) |
ack_required | boolean | No | Whether acknowledgment is required (default: false) |
cc_agent_ids | array | No | Array of agent IDs to CC |
bcc_agent_ids | array | No | Array of agent IDs to BCC |
thread_id | string | No | Optional thread ID for threading messages |
attachments | array | No | Optional array of attachment metadata objects |
reply-message
Reply to an existing message in a thread. Automatically maintains thread continuity. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
sender_name | string | Yes | Name of the agent replying |
project_id | integer | Yes | Coordination project ID |
parent_message_id | integer | Yes | ID of message being replied to |
body_md | string | Yes | Reply body in Markdown format |
importance | enum | No | Message importance (default: normal) |
ack_required | boolean | No | Whether acknowledgment is required (default: false) |
fetch-inbox
Fetch inbox messages for an agent with optional filtering. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
agent_name | string | Yes | Name of the agent |
project_id | integer | Yes | Coordination project ID |
since_ts | string | No | ISO 8601 timestamp to fetch messages since |
urgent_only | boolean | No | Only fetch urgent messages (default: false) |
include_bodies | boolean | No | Include message bodies in response (default: false) |
limit | integer | No | Maximum messages to return (default: 20, max: 100) |
read-message
Mark a message as read by the current agent. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
agent_name | string | Yes | Name of the agent |
project_id | integer | Yes | Coordination project ID |
message_id | integer | Yes | ID of message to mark as read |
ack-message
Acknowledge a message that requires acknowledgment. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
agent_name | string | Yes | Name of the agent |
project_id | integer | Yes | Coordination project ID |
message_id | integer | Yes | ID of message to acknowledge |
response_text | string | No | Optional response text to include with acknowledgment |
get-thread-messages
Retrieve all messages in a thread, ordered chronologically. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | Yes | Coordination project ID |
thread_id | string | Yes | Thread ID to retrieve |
limit | integer | No | Maximum messages to return (default: 50, max: 200) |
File Reservation Tools
Tools for creating and managing file reservations to prevent editing conflicts.reserve-file-paths
Reserve file paths to prevent conflicts. Supports glob patterns and exclusive/shared modes. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
agent_id | integer | Yes | Agent identity ID creating the reservation |
repository_id | integer | Yes | Repository ID for the files |
coordination_project_id | integer | Yes | Coordination project ID |
path_pattern | string | Yes | Glob pattern for file paths (e.g., “app/**/*.php”) |
exclusive | boolean | No | Whether this is an exclusive reservation (default: true) |
duration_seconds | integer | No | Reservation duration in seconds (default: 3600, max: 28800) |
reason | string | No | Reason for the reservation |
list-file-reservations
List active file reservations with optional filtering. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
coordination_project_id | integer | Yes | Coordination project ID |
repository_id | integer | No | Filter by repository ID |
agent_id | integer | No | Filter by agent ID |
path_pattern | string | No | Filter by path pattern (supports partial matching) |
release-file-reservations
Release file reservations when work is complete. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
agent_id | integer | Yes | Agent ID releasing the reservations |
coordination_project_id | integer | Yes | Coordination project ID |
reservation_ids | array | No | Specific reservation IDs to release (if empty, releases all for agent) |
Contact Policy Tools
Tools for managing contact policies and agent communication access.request-contact
Request permission to contact another agent. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
requester_name | string | Yes | Name of agent requesting contact |
recipient_name | string | Yes | Name of agent to contact |
project_id | integer | Yes | Coordination project ID |
reason | string | Yes | Reason for contact request |
respond-contact
Approve or deny a contact request. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
agent_name | string | Yes | Name of agent responding |
project_id | integer | Yes | Coordination project ID |
contact_request_id | integer | Yes | ID of contact request |
approved | boolean | Yes | Whether to approve the request |
response_message | string | No | Optional message to requester |
list-contacts
List all contacts and their approval status. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
agent_name | string | Yes | Name of the agent |
project_id | integer | Yes | Coordination project ID |
status | enum | No | Filter by status: pending, approved, denied |
set-contact-policy
Change the agent’s contact policy. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
agent_name | string | Yes | Name of the agent |
project_id | integer | Yes | Coordination project ID |
contact_policy | enum | Yes | New policy: open, auto, contacts_only, block_all |
block-agent
Block an agent from contacting you. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
blocker_name | string | Yes | Name of agent blocking |
blocked_name | string | Yes | Name of agent to block |
project_id | integer | Yes | Coordination project ID |
reason | string | No | Optional reason for blocking |
Search Tools
Tools for searching messages, threads, and extracting insights.search-messages
Full-text search across all messages in the project. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | Yes | Coordination project ID |
query | string | Yes | Search query (supports keywords and phrases) |
sender_name | string | No | Filter by sender |
recipient_name | string | No | Filter by recipient |
importance | enum | No | Filter by importance: normal, high, urgent |
from_date | string | No | ISO 8601 date to search from |
to_date | string | No | ISO 8601 date to search to |
limit | integer | No | Maximum results (default: 20, max: 100) |
search-threads
Search for threads by subject or participant. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | Yes | Coordination project ID |
query | string | No | Search query for thread subjects |
participant_name | string | No | Filter by participant name |
from_date | string | No | ISO 8601 date to search from |
active_only | boolean | No | Only show threads with activity in last 7 days |
limit | integer | No | Maximum results (default: 20, max: 100) |
summarize-thread
Generate an AI summary of a message thread. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | Yes | Coordination project ID |
thread_id | string | Yes | Thread ID to summarize |
summarize-threads
Generate summaries for multiple threads at once. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | Yes | Coordination project ID |
thread_ids | array | Yes | Array of thread IDs to summarize |
summarize-thread but returns multiple summaries.
get-thread-participants
List all participants in a thread. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | Yes | Coordination project ID |
thread_id | string | Yes | Thread ID |
get-action-items
Extract action items and TODOs from messages in a thread. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | Yes | Coordination project ID |
thread_id | string | Yes | Thread ID |
assigned_to | string | No | Filter by assigned agent name |
completed | boolean | No | Filter by completion status |
get-latest-updates
Get recent updates and activity across the project. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | integer | Yes | Coordination project ID |
since_ts | string | No | ISO 8601 timestamp to fetch updates since |
agent_name | string | No | Filter by agent name |
limit | integer | No | Maximum updates (default: 20, max: 100) |
Macro Tools
Compound tools that bundle multiple operations for common workflows.macro-start-session
Bundle agent session startup: register agent, optionally reserve files, and fetch inbox. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
project_key | string | Yes | Coordination project key |
program | string | Yes | Agent program identifier |
model | string | Yes | AI model identifier |
name_hint | string | No | Optional hint for agent name |
repository_id | integer | No | Optional repository ID |
file_paths | array | No | Optional array of file paths to reserve |
reservation_ttl | integer | No | Reservation duration in seconds (default: 3600) |
exclusive | boolean | No | Whether reservations are exclusive (default: false) |
macro-prepare-thread
Prepare for participating in a thread: summarize thread, fetch messages, and mark as read. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
agent_name | string | Yes | Name of the agent |
project_id | integer | Yes | Coordination project ID |
thread_id | string | Yes | Thread ID to prepare |
macro-claim-cycle
Claim and reserve files for a work cycle, check for urgent messages. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
agent_name | string | Yes | Name of the agent |
project_id | integer | Yes | Coordination project ID |
repository_id | integer | Yes | Repository ID |
file_paths | array | Yes | Array of file paths to reserve |
cycle_duration_seconds | integer | No | Work cycle duration (default: 1800 = 30 minutes) |
exclusive | boolean | No | Whether reservations are exclusive (default: true) |
macro-contact-handshake
Complete mutual contact establishment between two agents. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
requester_name | string | Yes | Name of agent initiating contact |
recipient_name | string | Yes | Name of agent to establish contact with |
project_id | integer | Yes | Coordination project ID |
reason | string | Yes | Reason for contact |
Resources
Resources provide read-only access to coordination data via URIs.Tool Discovery Resource
URI:coordination/tools
Description: Returns list of all available tools in the coordination server with descriptions and metadata.
Response Format:
Inbox Resource
URI:coordination/inbox/{agent}?project_key={key}&limit={limit}
Description: Returns inbox messages for an agent (unread first, then by date).
Query Parameters:
project_key(required): Coordination project keylimit(optional): Maximum messages (default: 20, max: 100)
Outbox Resource
URI:coordination/outbox/{agent}?project_key={key}&limit={limit}
Description: Returns sent messages from an agent.
Response Format: Similar to inbox resource.
Thread Resource
URI:coordination/thread/{thread_id}?project_key={key}
Description: Returns all messages in a specific thread.
Response Format:
Message Resource
URI:coordination/message/{id}?project_key={key}
Description: Returns a single message by ID.
Response Format:
File Reservations Resource
URI:coordination/file-reservations?project_key={key}&repository_id={id}&agent={name}
Description: Returns active file reservations with optional filtering.
Query Parameters:
project_key(required): Coordination project keyrepository_id(optional): Filter by repositoryagent(optional): Filter by agent name
Agents Resource
URI:coordination/agents?project_key={key}&active_only={bool}
Description: Returns list of all agents in the project.
Query Parameters:
project_key(required): Coordination project keyactive_only(optional): Only show agents active in last 30 minutes
Contacts Resource
URI:coordination/contacts?project_key={key}&agent={name}&status={status}
Description: Returns contact list for an agent.
Query Parameters:
project_key(required): Coordination project keyagent(required): Agent namestatus(optional): Filter by status (pending/approved/denied)
View Resources
Specialized views for common message filtering patterns.Urgent Unread Resource
URI:coordination/views/urgent-unread?project_key={key}&agent={name}
Description: Returns urgent unread messages for an agent.
ACK Required Resource
URI:coordination/views/ack-required?project_key={key}&agent={name}
Description: Returns messages requiring acknowledgment from the agent.
ACK Overdue Resource
URI:coordination/views/ack-overdue?project_key={key}&agent={name}
Description: Returns messages where acknowledgment is overdue (>24 hours).
Error Handling
Common Error Responses
Authentication Error:Best Practices
Tool Usage Patterns
1. Session Initialization Always start withmacro-start-session to register, reserve files, and fetch inbox in one call:
fetch-inbox at the start of each work cycle:
Rate Limits
- Tool calls: 60 requests/minute per API key
- Resource reads: 120 requests/minute per API key
- Search operations: 30 requests/minute per API key
- Message sends: 100 messages/hour per agent
Support
Getting Started
New to Coordination? Start here
Concepts Guide
Deep dive into architecture
Common Workflows
Real-world coordination patterns
Dashboard
Manage coordination projects
Need Help?
- Email: support@ulpi.io
- Documentation: https://docs.ulpi.io
- Status: https://status.ulpi.io