Skip to main content
Glama

Claude Orchestrator MCP

An MCP server for coordinating multiple Claude Code sessions across related projects. When you're working on a multi-service system with separate repos (e.g., auth service, API gateway, frontend), this orchestrator enables sessions to communicate changes, request sync points, and stay aware of what's happening in related services.

The Problem

You have 6 repos for a platform, each with its own Claude Code session. When the auth service session modifies the User schema:

  • The API gateway session has no idea

  • The frontend session keeps using old types

  • Someone has to manually copy/paste context between terminals

  • Changes get out of sync, causing integration issues

Related MCP server: session-coord-mcp

The Solution

Claude Orchestrator acts as a coordination layer:

┌─────────────────────────────────────────────────────────────┐
│                 claude-orchestrator-mcp                      │
│                                                             │
│  Sessions register → Changes detected → Updates routed      │
│                                                             │
└─────────────────────────────────────────────────────────────┘
         │           │           │           │
    ┌────┴───┐  ┌────┴───┐  ┌────┴───┐  ┌────┴───┐
    │ Auth   │  │ API    │  │ Catalog│  │Frontend│
    │Session │  │Session │  │Session │  │Session │
    └────────┘  └────────┘  └────────┘  └────────┘

Installation

# Clone and build
git clone <repo>
cd claude-orchestrator-mcp
npm install
npm run build

# Or install globally
npm install -g claude-orchestrator-mcp

Quick Start

1. Initialize configuration

# Create example topology
npx claude-orchestrator init

# Or manually create your topology
npx claude-orchestrator group create my-platform
npx claude-orchestrator member add my-platform ~/repos/auth-service --role auth
npx claude-orchestrator member add my-platform ~/repos/api-gateway --role gateway --depends-on auth
npx claude-orchestrator member add my-platform ~/repos/frontend --role frontend --depends-on gateway

2. Add to Claude Code MCP configuration

Add to your ~/.claude.json:

{
  "mcpServers": {
    "claude-orchestrator": {
      "command": "node",
      "args": ["/path/to/claude-orchestrator-mcp/dist/index.js"]
    }
  }
}

Or if installed globally:

{
  "mcpServers": {
    "claude-orchestrator": {
      "command": "npx",
      "args": ["-y", "claude-orchestrator-mcp"]
    }
  }
}

3. Use in your Claude Code sessions

When starting work in a repo:

> Use the register_session tool with repoPath="/Users/me/repos/auth-service",
  projectGroup="my-platform", role="auth"

Check for updates from other sessions:

> Use get_cross_project_updates with my session ID

Notify others about a change:

> Use notify_related_sessions to broadcast that I modified the User schema

Configuration

The topology configuration lives at ~/.config/claude-orchestrator/topology.yml:

version: "1.0"

groups:
  my-platform:
    name: my-platform
    description: "My multi-service platform"

    members:
      - path: ~/repos/auth-service
        role: auth
        exports: [UserToken, AuthContext]

      - path: ~/repos/api-gateway
        role: gateway
        dependsOn: [auth]

      - path: ~/repos/frontend
        role: frontend
        dependsOn: [gateway]

    communicationRules:
      - when: schema_change
        from: "*"
        notify: dependents
        priority: high

      - when: breaking_change
        from: "*"
        notify: all
        priority: critical

Change Types

  • schema_change - Database/GraphQL/Protobuf schema changes

  • api_endpoint_change - Route/controller/API changes

  • type_definition_change - TypeScript/interface changes

  • config_change - Configuration file changes

  • dependency_update - package.json/requirements.txt changes

  • breaking_change - Detected via commit message patterns

  • any_change - Catch-all for any file change

Notification Targets

  • "all" - Notify all members in the group

  • "dependents" - Notify only members that depend on the source

  • ["role1", "role2"] - Notify specific roles

MCP Tools

Session Management

Tool

Description

register_session

Register this session with the orchestrator

unregister_session

Unregister when done

heartbeat

Keep session active, update current task

Cross-Project Updates

Tool

Description

get_cross_project_updates

Check for updates from related sessions

notify_related_sessions

Broadcast a change to related sessions

State Queries

Tool

Description

query_project_state

Query another project's status/changes

list_group_sessions

List all sessions in a project group

Sync Points

Tool

Description

request_sync_point

Request coordination barrier

acknowledge_sync_point

Acknowledge a sync request

get_pending_sync_points

Get pending sync requests

Topology

Tool

Description

get_topology

Get project topology configuration

CLI Commands

# Group management
claude-orchestrator group create <name>
claude-orchestrator group list
claude-orchestrator group show <name>
claude-orchestrator group delete <name>

# Member management
claude-orchestrator member add <group> <path> --role <role> --depends-on <roles>
claude-orchestrator member remove <group> <path>

# Rule management
claude-orchestrator rule add <group> --when <type> --from <roles> --notify <targets>

# Utilities
claude-orchestrator validate
claude-orchestrator init
claude-orchestrator config-path

How It Works

  1. Session Registration: Each Claude Code session registers with the orchestrator, providing its repo path, project group, and role.

  2. Change Detection: The orchestrator watches registered repos for file changes (via chokidar) and git commits (via polling). Changes are classified by type based on file patterns.

  3. Event Routing: When changes are detected, the topology manager determines which sessions should be notified based on communication rules and dependency relationships.

  4. Update Queuing: Updates are queued for target sessions. When a session calls get_cross_project_updates, it receives all pending notifications.

  5. Sync Points: Sessions can request sync points for coordinated changes. Other sessions are notified and can acknowledge before the requester proceeds.

Example Workflow

Terminal 1 (auth-service):
> Register session for auth-service in my-platform group
> [Working on User schema changes...]
> Notify related sessions: "Modified User schema, added refreshToken field"

Terminal 2 (api-gateway):
> Register session for api-gateway in my-platform group
> Check for cross-project updates
> [Receives notification about User schema change]
> "Update UserToken type to include refreshToken"

Terminal 3 (frontend):
> Register session for frontend in my-platform group
> Check for cross-project updates
> [Receives notification via gateway dependency chain]
> "Update auth context to handle new token field"

Development

# Install dependencies
npm install

# Build
npm run build

# Run in development mode
npm run dev

# Run CLI
npm run cli -- group list

# Type check
npm run typecheck

# Run tests
npm test

License

MIT

Available Tools

11 tools
acknowledge_sync_pointAcknowledge Sync PointC

Acknowledge a sync point request from another session.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesYour session ID
syncPointIdYesID of the sync point to acknowledge

Output Schema

ParametersJSON Schema
NameRequiredDescription
acknowledgedYes
syncPointStatusYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and discloses almost nothing: it does not say whether acknowledging mutates state, what authorization is needed, whether it is idempotent, or what happens to the request afterward. Only the trigger source ('another session') is mentioned.

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 a single, front-loaded sentence with no filler. It is efficient, though its extreme brevity leaves no room for any secondary guidance.

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

Completeness2/5

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

The output schema covers return values and the input schema fully documents both parameters, but the lack of annotations means the description should supply behavioral and usage context. It omits when to use the tool, prerequisites, and side effects, leaving a significant gap for an acknowledge action.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (sessionId, syncPointId) are documented in the schema. The description adds no syntax, format, or meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description gives a clear verb ('acknowledge') and object ('sync point request'), and the phrase 'from another session' scopes the trigger. It does not explicitly name or contrast against siblings such as request_sync_point or get_pending_sync_points, so it is clear but not sibling-differentiating.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to call this tool versus alternatives, nor any prerequisites or exclusions. The context implies it applies to an incoming request, but that is left to inference.

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

get_cross_project_updatesGet Cross-Project UpdatesA

Check for updates from other sessions in related projects. Call this periodically or when you need to know about changes in dependent services.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNoOnly get updates since this timestamp
sessionIdYesYour session ID
acknowledgeAllNoAcknowledge all returned updates

Output Schema

ParametersJSON Schema
NameRequiredDescription
updatesYes
totalPendingYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It implies a read operation ('check for updates') but doesn't mention side effects, permissions, or rate limits. The 'acknowledgeAll' parameter suggests it may mutate state, but the description doesn't clarify that acknowledging updates marks them as processed. This is a notable gap.

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

Conciseness5/5

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

Two tightly written sentences that front-load the action and follow with usage guidance. No waste.

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 no annotations and a mutation-implying parameter ('acknowledgeAll'), the description is incomplete. It doesn't explain what acknowledging does, whether it can be undone, or the nature of the updates. An output schema exists, so return values needn't be described, but behavioral context is lacking.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all three parameters. The description adds no additional parameter semantics beyond what is in the schema. Baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource ('Check for updates from other sessions in related projects'). It distinguishes itself from siblings like get_pending_sync_points (which are sync points, not updates) and query_project_state (which is a state query, not updates). Clear purpose.

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?

Provides clear context: 'Call this periodically or when you need to know about changes in dependent services.' This tells the agent when to use it, though it doesn't explicitly name alternatives or when not to use it.

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

get_pending_sync_pointsGet Pending Sync PointsB

Get all pending sync point requests that involve your session.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesYour session ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
syncPointsYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a read via 'Get' but says nothing about whether fetching consumes or acknowledges the pending requests, whether it blocks/waits, or any rate limits. Output schema covers return values, but the interaction semantics remain undisclosed.

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

Conciseness5/5

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

A single, front-loaded sentence with the resource and scope stated immediately and no wasted words.

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

Completeness3/5

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

The return shape is covered by the output schema and the single parameter is fully documented, so the definition is callable. However, with no annotations the description should have clarified read-only semantics and whether this is a polling operation that leaves requests pending.

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?

Only one parameter exists and schema description coverage is 100%, so the schema already documents sessionId fully. The description adds no syntax or format detail beyond what the schema provides, making the baseline 3 appropriate.

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

Purpose4/5

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

States a specific verb (Get) and a specific resource (pending sync point requests) scoped to 'your session', which is clear and actionable. It does not explicitly differentiate itself from siblings like get_cross_project_updates or request_sync_point, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to call this versus alternatives such as get_cross_project_updates or acknowledge_sync_point, nor any prerequisite (e.g. must a session be registered first). Usage is only loosely implied by the phrase 'pending ... that involve your session'.

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

get_topologyGet TopologyC

Get the project topology configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNameNoSpecific group to get, or all if not specified

Output Schema

ParametersJSON Schema
NameRequiredDescription
groupsYes

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 behavioral burden, and it discloses nothing beyond 'Get'. It does not say whether the result is project-scoped, cached, permission-gated, or whether it depends on an active session, which matters given the session-oriented sibling set.

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

Conciseness4/5

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

One short, front-loaded sentence with zero filler. It is efficient, though the brevity borders on under-specification rather than tight conciseness.

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?

An output schema exists, so return values need not be described, and the only parameter is fully documented in the schema. However, for a tool sitting in a session/sync workflow, the description omits any call context, leaving it only minimally complete.

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

Parameters3/5

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

Schema description coverage is 100% and the single parameter already documents its own semantics ('Specific group to get, or all if not specified'). The description adds no additional meaning about groupName, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ('Get the project topology configuration'), which is clear enough to act on. It is also naturally differentiated from the session/sync-oriented siblings, none of which return topology data, though the description itself does no explicit sibling differentiation.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives, no prerequisites (e.g., whether a session must be registered first), and no exclusions. The agent must infer context entirely from the name.

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

heartbeatSession HeartbeatA

Send a heartbeat to keep the session active and optionally update current task.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesSession ID
currentTaskNoWhat the session is currently working on

Output Schema

ParametersJSON Schema
NameRequiredDescription
acknowledgedYes
pendingUpdatesYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose the core behavioral effect — that this keeps the session alive — but says nothing about expiry timeouts, expected frequency, whether a missed heartbeat terminates the session, or any auth/permission needs. For a liveness tool those omissions matter.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; the primary effect (keep session active) precedes the optional secondary effect (update task).

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?

An output schema exists, so return values need not be described. However, with zero annotations on a tool whose whole purpose is stateful liveness, the description should say more about timeout/cadence semantics and the consequence of not calling it.

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

Parameters3/5

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

Schema description coverage is 100%, so sessionId and currentTask are already documented in the schema; baseline is 3. The phrase 'optionally update current task' correctly signals that currentTask is optional and mutates session state, which is mildly useful but adds little beyond the schema.

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

Purpose4/5

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

States a specific verb+resource ('send a heartbeat') and its effect ('keep the session active'), plus the optional task update. It is clearly distinguishable from lifecycle siblings like register_session/unregister_session, though it does not name those siblings explicitly.

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

Usage Guidelines3/5

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

'keep the session active' implies the usage context (periodic calls during a live session), but there is no explicit when-to-call, no expected cadence, and no mention of what to use instead or in addition (e.g., request_sync_point). Usage is inferable rather than stated.

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

list_group_sessionsList Group SessionsB

List all active sessions in a project group.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNameYesName of the project group

Output Schema

ParametersJSON Schema
NameRequiredDescription
sessionsYes
groupNameYes
activeCountYes
totalMembersYes

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 behavioral burden. It does hint that only 'active' sessions are returned, which is useful, but it says nothing about whether the caller sees only their own sessions, ordering, pagination, or required permissions for a session-listing tool.

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

Conciseness5/5

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

A single front-loaded sentence with zero filler. The scope ('active', 'project group') is packed into the opening clause, so nothing needs to be trimmed.

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

Completeness4/5

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

For a simple one-parameter read tool with an output schema that already describes return values, the description covers the essentials. It falls slightly short on filtering scope (whose sessions, active-only definition) but is largely sufficient to invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100% and the single parameter groupName is fully documented in the schema, so the baseline of 3 applies. The description adds no format, casing, or lookup semantics beyond restating that it names a project group.

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

Purpose4/5

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

States a specific verb (List) and resource (active sessions) scoped to a project group, so the operation is immediately clear. However, it does nothing to distinguish itself from sibling read tools such as query_project_state or get_topology, which an agent might reasonably confuse it with.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the many session-related siblings. The agent must infer the trigger condition entirely from the name.

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

query_project_stateQuery Project StateB

Query the current state of a related project. Use this to check what another service is working on or its recent changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesWhat to query
projectPathYesPath to the project to query

Output Schema

ParametersJSON Schema
NameRequiredDescription
roleNo
foundYes
statusYes
repoPathYes
currentTaskNo
recentChangesNo
lastActivityAtNo

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 behavioral burden. It conveys only that this is a cross-project read; it says nothing about prerequisites (e.g., whether the target project must be registered or in the same group), latency, caching, or any failure modes.

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

Conciseness4/5

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

Two short sentences, front-loaded with the core action and followed by the motivating use case. No filler, though the second sentence is somewhat redundant with the first.

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?

An output schema exists so return values need not be explained, and the enum is fully documented. However, with no annotations and a cross-project query that likely has registration/grouping prerequisites, the description leaves meaningful operational context unstated.

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

Parameters3/5

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

Schema description coverage is 100% and the query enum values are documented in the schema, so the baseline is 3. The description's 'what another service is working on or its recent changes' loosely maps to the enum values but adds no syntax or format detail beyond the schema.

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

Purpose4/5

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

States a specific verb and resource ('Query the current state of a related project') and adds intent ('check what another service is working on or its recent changes'). It is clear what the tool does, though it does not explicitly distinguish itself from siblings like get_cross_project_updates.

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 second sentence implies when to reach for it (inspecting another service's work or changes), but there is no explicit when-not or named alternative despite several overlapping siblings such as get_cross_project_updates and list_group_sessions. Usage is implied rather than directed.

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

register_sessionRegister SessionA

Register this Claude Code session with the orchestrator. Call this when starting work on a project to enable cross-project coordination.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoRole of this project (e.g., "auth", "api", "frontend")
repoPathYesAbsolute path to the repository
projectGroupNoName of the project group this repo belongs to

Output Schema

ParametersJSON Schema
NameRequiredDescription
roleNo
statusYes
sessionIdYes
projectGroupNo
relatedSessionsYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the effect (enables cross-project coordination) but is silent on lifecycle semantics: whether repeat calls are idempotent, whether it updates or duplicates an existing registration, and whether registration persists across restarts. Return values are covered by the output schema, so that gap is excused.

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

Conciseness5/5

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

Two sentences, no waste, with the core action stated first and the trigger condition second. Nothing to trim.

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

Completeness4/5

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

For a simple registration tool with a fully documented schema and an output schema, the description covers what it does and when to use it. The remaining gap is lifecycle behavior around unregister_session and repeated calls, which is minor but real.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline 3 applies. The description adds no meaning about repoPath, role, or projectGroup beyond what the schema already documents.

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

Purpose4/5

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

States a specific verb and resource: 'Register this Claude Code session with the orchestrator.' An agent can distinguish it from query/list siblings, though the description doesn't explicitly differentiate it from unregister_session or heartbeat.

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?

Gives clear context — 'Call this when starting work on a project' — which is a genuine timing guideline. It doesn't mention when NOT to call it or how it pairs with unregister_session, but the trigger condition is unambiguous.

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

request_sync_pointRequest Sync PointB

Request a synchronization point with related sessions. Use this when you need to coordinate a change across multiple services.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYesWhy synchronization is needed
blockingNoIf true, other sessions should wait
sessionIdYesYour session ID
timeoutMinutesNoHow long to wait for acknowledgment
requiredSessionsNoSpecific session IDs that must acknowledge

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
expiresAtYes
syncPointIdYes
notifiedSessionsYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral disclosure burden. It implies coordination across sessions but does not explain blocking semantics, timeout behavior, acknowledgment requirements, side effects, or what happens to other sessions, leaving key operational traits unstated.

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

Conciseness5/5

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

Two sentences, no filler, and the core action is front-loaded. The second sentence cleanly serves as the usage condition without bloating the definition.

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

Completeness2/5

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

This is a multi-session synchronization tool with no annotations and five parameters including blocking, timeout, and required acknowledgments. While the output schema can cover return values, the description still omits the behavioral coordination model, making it incomplete for invoking the tool correctly in complex scenarios.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all five parameters thoroughly. The description adds only the phrase 'with related sessions' and does not supplement blocking, timeout, or required-session semantics beyond the schema, making the baseline 3 appropriate.

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

Purpose4/5

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

The description names a specific verb and resource: request a synchronization point. It also scopes the resource to related sessions, which separates it from acknowledgement or retrieval siblings, though it does not explicitly name those alternatives.

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 second sentence gives a clear when-to-use condition: coordinating a change across multiple services. It does not state when not to use the tool or name alternative sibling tools, but the context is explicit enough for routing.

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

unregister_sessionUnregister SessionA

Unregister this session from the orchestrator when done working.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesSession ID to unregister

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. It does not say whether unregistering is idempotent, whether it terminates the session or frees the ID, whether pending sync points are dropped, or whether other sessions are notified — all critical for a state-mutating lifecycle call.

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

Conciseness5/5

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

A single tight sentence with the action and the trigger condition front-loaded and zero filler. Nothing in it is redundant.

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?

The output schema means return values need not be explained, and the single required param is fully documented. However, for a mutation tool with no annotations, the description leaves the consequences of unregistering entirely unspecified, which is the main gap an agent would need filled.

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

Parameters3/5

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

Schema description coverage is 100% (the only parameter, sessionId, is documented in the schema as 'Session ID to unregister'), so the baseline is 3. The description adds no format or sourcing detail (e.g. where to obtain the session ID), so it neither helps nor hurts.

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

Purpose4/5

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

States a specific verb+resource pair ('unregister this session') and names the target system ('the orchestrator'), so the operation is unambiguous. It does not explicitly reference its counterpart register_session, so differentiation relies on the agent inferring from the sibling list rather than the text.

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?

'when done working' gives a concrete lifecycle trigger for invoking the tool, which is more than most sibling tools likely offer. It stops short of stating exclusions (e.g. whether it is safe to call twice, or what happens if the session is still in a sync point), so it is clear context without guardrails.

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

Tool Schema Changelog

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

  1. 11 tool updatesv0.1.0
    • First observedacknowledge_sync_point
    • First observedget_cross_project_updates
    • First observedget_pending_sync_points
    • First observedget_topology
    • First observedheartbeat
    • First observedlist_group_sessions
    • First observednotify_related_sessions
    • First observedquery_project_state
    • First observedregister_session
    • First observedrequest_sync_point
    • First observedunregister_session

TDQS

A3.5/5.0

Scored across 11 tools

Disambiguation4/5

Each tool targets a distinct action: session lifecycle (register/unregister/heartbeat), sync coordination (request/acknowledge/get_pending), and communication (notify/get_updates/query_state/list_group/get_topology). The read-oriented cluster (get_cross_project_updates, query_project_state, get_pending_sync_points) has some conceptual overlap, but descriptions clarify when to use each.

Naming Consistency4/5

Nearly all tools follow a predictable verb_noun snake_case pattern (register_session, request_sync_point, get_topology). The lone deviation is 'heartbeat', which is a bare noun rather than a verb phrase, though it reads clearly as a keepalive action.

Tool Count5/5

11 tools is well-scoped for a cross-session orchestration server, with each tool covering a needed capability (lifecycle, sync, messaging, discovery). No obvious redundancy or filler.

Completeness4/5

The surface covers the full orchestration lifecycle: registration, heartbeat, unregistration, sync request/acknowledge/pending, notifications, state queries, and topology discovery. Minor gaps like session detail lookup or topology mutation are not essential for coordination workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers