Skip to main content
Glama

@cellar-door/mcp-server

npm version tests license NIST

𓉸 Passage Protocol · exit-door · entry-door · mcp · langchain · vercel · eliza · eas · erc-8004 · sign · python

⚠️ Pre-release software — no formal security audit has been conducted. This project is published for transparency, review, and community feedback. It should not be used in production systems where security guarantees are required. If you find a vulnerability, please report it to hawthornhollows@gmail.com.

Give any MCP-compatible AI (Claude, Cursor, Windsurf) the ability to create and verify agent departure records.

Ecosystem

Package

Language

Description

cellar-door-exit

TypeScript

Core protocol (reference impl)

cellar-door-exit

Python

Core protocol

cellar-door-entry

TypeScript

Arrival/entry markers

@cellar-door/langchain

TypeScript

LangChain integration

cellar-door-langchain

Python

LangChain integration

@cellar-door/vercel-ai-sdk

TypeScript

Vercel AI SDK

@cellar-door/mcp-server

TypeScript

MCP server ← you are here

@cellar-door/eliza

TypeScript

ElizaOS plugin

@cellar-door/eas

TypeScript

EAS attestation anchoring

@cellar-door/erc-8004

TypeScript

ERC-8004 identity/reputation

@cellar-door/sign-protocol

TypeScript

Sign Protocol attestation

Paper · Website

Related MCP server: Agent Identity MCP Server

Quick Start

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "cellar-door": {
      "command": "npx",
      "args": ["@cellar-door/mcp-server"],
      "env": {
        "CELLAR_DOOR_SERVER_POLICY": "STRICT"
      }
    }
  }
}

Restart Claude Desktop. You can now say:

"Create a departure record for my agent leaving platform-x.example.com"

Claude will call the quick_exit tool and return a signed, verifiable EXIT marker.

Cursor / Windsurf

npm install @cellar-door/mcp-server

Point your MCP client at the server. It exposes 7 tools automatically.

Tools

EXIT Tools

Tool

Description

generate_identity

Generate an Ed25519 DID keypair for signing

quick_exit

One-shot: create + sign a departure marker

create_exit_marker

Create and sign a marker with full options

verify_exit_marker

Verify a marker from JSON

ENTRY Tools

Tool

Description

verify_and_admit

Verify EXIT marker, evaluate admission policy, create arrival

evaluate_admission

Check if EXIT marker meets an admission policy

verify_transfer

Verify a complete EXIT→ENTRY transfer chain

list_admission_policies

List available admission policy presets

⚠️ Security: Admission Policy

IMPORTANT: By default, the server uses STRICT admission policy when no policy is specified by the LLM. This is intentional; an LLM can freely choose the most permissive policy (OPEN_DOOR) or omit the parameter entirely to bypass admission checks.

For production deployments, always set a server-side policy override using one of:

  • Environment variable: CELLAR_DOOR_SERVER_POLICY=STRICT (or EMERGENCY_ONLY)

  • Constructor option: createServer({ serverPolicy: "STRICT" })

When serverPolicy is set, any LLM-provided admissionPolicy parameter is ignored.

Policy

Behavior

OPEN_DOOR

Accept any departure with a valid signature

STRICT

Voluntary only, <24h old, requires lineage + stateSnapshot modules

EMERGENCY_ONLY

Accept only emergency exits

Sample Conversation (Claude Desktop)

User: I need to leave Platform X. Can you create a departure record?

Claude: I'll create a signed EXIT marker for your departure from Platform X.

→ Calls: quick_exit({ origin: "did:web:platform-x.example.com", reason: "Migrating to new platform" })

Claude: Here's your signed departure marker:
- ID: exit:abc123...
- Subject: did:key:z6Mk...
- Origin: did:web:platform-x.example.com
- Exit Type: Voluntary
- Signature: ✅ Verified

User: Now verify this on Platform Y and create my arrival.

→ Calls: verify_and_admit({
    exitMarkerJson: "{...}",
    destination: "did:web:platform-y.example.com",
    admissionPolicy: "STRICT"
  })

Claude: ✅ Admitted. Arrival marker created with continuity verified.

Programmatic Usage

import { createServer } from "@cellar-door/mcp-server";

const server = createServer({
  serverPolicy: "STRICT",  // Lock admission policy server-side
});

Example Tool Calls

Quick Exit

{
  "name": "quick_exit",
  "arguments": { "origin": "did:example:my-agent", "reason": "Task complete" }
}

Verify and Admit

{
  "name": "verify_and_admit",
  "arguments": {
    "exitMarkerJson": "{...exit marker JSON...}",
    "destination": "did:example:new-platform",
    "admissionPolicy": "OPEN_DOOR"
  }
}

Verify Transfer

{
  "name": "verify_transfer",
  "arguments": {
    "exitMarkerJson": "{...exit marker...}",
    "arrivalMarkerJson": "{...arrival marker...}"
  }
}

Production Deployment

⚠️ Authentication: The MCP server does not include built-in authentication. In production, deploy behind an authenticated reverse proxy or API gateway. Do not expose MCP tools directly to untrusted clients.

⚠️ Disclaimer

WARNING: Automated admission decisions should be reviewed by platform operators. This integration does not constitute legal advice. Platforms are responsible for their own admission policies and the consequences of admitting agents.

License

Apache-2.0

Available Tools

9 tools
counter_sign_exit_markerB

Add a counter-signature to a signed EXIT marker, attesting agreement with the departure record

ParametersJSON Schema
NameRequiredDescriptionDefault
markerJsonYesJSON string of the signed EXIT marker to counter-sign
roleNoRole label for the counter-signer (e.g. 'origin', 'platform')

TDQS

B3.3/5.0
Behavior2/5

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

Without annotations, the description carries full burden. It indicates a write operation but does not disclose side effects, whether the original marker is modified, required permissions, or return value. Bare minimum is provided.

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 sentence that front-loads the key action and resource. It is concise with zero 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?

For a simple 2-parameter tool with no output schema, the description covers the core action. However, it lacks behavioral context like what the tool returns or how the counter-signature integrates. Adequate but could be more informative.

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 schema covers 100% of parameters with descriptions. The description adds no extra meaning beyond what the schema already provides for markerJson and role, so baseline 3 is appropriate.

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 'Add a counter-signature' and the resource 'signed EXIT marker', specifying the action precisely. It distinguishes from sibling tools like verify_exit_marker or create_exit_marker by its unique purpose.

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, such as verify_exit_marker or create_exit_marker. There are no prerequisites or context about when counter-signing is appropriate.

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

create_exit_markerB

Create and sign a departure marker. Uses session identity or generates a new one.

ParametersJSON Schema
NameRequiredDescriptionDefault
originYesDID or identifier of the departing agent
exitTypeNoType of exit (default: Voluntary)
reasonNoHuman-readable reason for departure

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 full burden. It mentions identity handling ('Uses session identity or generates a new one') but does not disclose other behaviors like side effects, permission requirements, or what happens to created markers.

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 two sentences, direct and without redundancy. It conveys essential information efficiently, though it could benefit from slightly more structure.

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?

Given no annotations or output schema, the description lacks completeness. It does not mention return value, error conditions, or prerequisites, leaving gaps for a tool with three parameters.

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

Parameters3/5

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

Schema coverage is 100% with descriptive parameter descriptions. The description adds minimal extra meaning beyond the schema, so a baseline score of 3 is appropriate.

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 and signs a departure marker. The verb 'Create and sign' and the resource 'departure marker' are specific. It distinguishes itself from siblings like 'counter_sign_exit_marker' and 'verify_exit_marker' by focusing on creation and initial signing.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as 'quick_exit' or 'counter_sign_exit_marker'. The description does not provide context for when this tool is appropriate.

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

evaluate_admissionA

Check whether an EXIT marker meets an admission policy without creating an arrival

ParametersJSON Schema
NameRequiredDescriptionDefault
exitMarkerJsonYesJSON string of the EXIT marker
policyYesAdmission policy preset

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the full burden. It discloses the key behavioral trait (no side effect from creating an arrival), but omits details like error handling, return format, or prerequisites. The description is honest but incomplete for full transparency.

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 sentence with no wasted words. It is efficient, though it could potentially include more guidance without becoming wordy. It avoids over-elaboration.

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?

Without an output schema, the description should explain what the tool returns (e.g., boolean, error details). It does not. Additionally, while the schema documents parameter types, the description does not clarify the expected structure of 'exitMarkerJson' beyond being a JSON string. This leaves the agent with significant ambiguity about the tool's behavior.

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 input schema already has 100% description coverage for both parameters. The description adds no extra meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

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 action: 'Check whether an EXIT marker meets an admission policy'. It also explicitly distinguishes from side-effect tools by noting 'without creating an arrival', differentiating it from siblings like 'verify_and_admit' which presumably creates an arrival.

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

Usage Guidelines3/5

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

The phrase 'without creating an arrival' implies a dry-run usage, but there is no explicit guidance on when to use this tool versus alternatives like 'verify_and_admit' or 'verify_exit_marker'. Sibling names provide context but the description itself lacks direct usage instructions.

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

generate_identityA

Generate a new Ed25519 DID keypair for signing EXIT markers

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, and the description only states the action and purpose. It does not disclose behavioral traits like side effects, output format, or required permissions.

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, dense sentence with no wasted words, effectively communicating the tool's core function.

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 tool with no parameters and no output schema, the description is adequate but does not explain how the generated keypair is returned or used with sibling tools like counter_sign_exit_marker.

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?

With zero parameters, the baseline is 4. The description adds no parameter details, but that is acceptable since none exist.

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 uses a specific verb 'Generate' and resource 'Ed25519 DID keypair', clearly stating its purpose for signing EXIT markers. This distinguishes it from siblings that operate on markers themselves.

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 context is implied by the description (keypair for signing), but there is no explicit guidance on when to use this tool versus alternatives or prerequisites.

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

list_admission_policiesA

List available admission policy presets and their configurations

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided. The description indicates a read-only listing operation, which is generally safe, but does not explicitly state non-destructiveness or other behavioral traits. Adequate for a simple list.

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 one short sentence with no wasted words. It is front-loaded and efficiently conveys the purpose.

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?

No output schema exists, and the description does not specify what the returned data looks like (e.g., list of policy names, configuration details). This leaves the agent guessing about the response format, which is incomplete 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?

There are no parameters, so the input schema fully covers the parameter definition. According to guidelines, with 0 parameters baseline is 4, and the description does not need to add parameter info.

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 'list' and resource 'admission policy presets and their configurations'. It distinguishes from sibling tools like evaluate_admission and verify_and_admit which perform different 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?

No explicit guidance on when to use this tool versus alternatives. However, the context is implied as a listing tool for policy presets, which is straightforward given zero parameters and sibling tools with distinct purposes.

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

quick_exitA

One-shot create and sign a departure marker. Generates a new identity if none exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
originYesDID or identifier of the departing agent
exitTypeNoType of exit (default: Voluntary)
reasonNoHuman-readable reason for departure

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses the side effect of identity generation, but does not mention destructiveness, required authentication, or side effects on existing markers. The disclosure is partial.

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 sentences, front-loaded with the primary action. Every word earns its place. Could be slightly more structured by separating the side effect into a bullet, but is efficient.

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 tool has no output schema and three parameters. The description explains the key side effect (identity generation) but lacks details on return value, error conditions, or what 'departure marker' entails. Adequate but not 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%, so the schema already documents all three parameters. The description adds no additional meaning beyond the schema—e.g., no explanation of how 'origin' relates to identity generation. Baseline of 3 is appropriate.

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 uses a specific verb-resource pair 'create and sign a departure marker,' which clearly distinguishes from sibling tools like create_exit_marker (create only) and counter_sign_exit_marker (counter-sign). It also mentions a side effect (generating identity) adding specificity.

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 this is for quick one-step creation and signing, but does not explicitly state when to use this versus create_exit_marker followed by a separate sign step. No exclusions or alternative recommendations are provided.

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

verify_and_admitA

Verify an EXIT marker, evaluate an admission policy, and create a signed arrival marker

ParametersJSON Schema
NameRequiredDescriptionDefault
exitMarkerJsonYesJSON string of the EXIT marker
destinationYesDestination platform/system identifier
admissionPolicyNoAdmission policy preset (default: OPEN_DOOR). Ignored if serverPolicy is set.

TDQS

A3.5/5.0
Behavior3/5

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

The description describes the basic actions but does not disclose side effects, authentication requirements, failure behavior, or the disposition of the signed arrival marker (e.g., returned or stored). Since annotations are absent, the description carries the full burden and is only partially transparent.

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, clear sentence that efficiently conveys the tool's purpose without fluff. It is well front-loaded.

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 description explains the input parameters but does not specify the output format or any side effects. Given the lack of output schema and annotations, the description could be more complete by explaining what the tool returns or how the signed arrival marker is handled.

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

Parameters3/5

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

Schema coverage is 100% and all parameters have descriptions. The description does not add parameter-specific meaning beyond what the schema already provides, so baseline 3 is appropriate.

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 three distinct actions (verify, evaluate, create) and the objects involved (EXIT marker, admission policy, signed arrival marker). It distinguishes this combined tool from sibling tools that perform individual steps.

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 combined tool versus using separate sibling tools like verify_exit_marker, evaluate_admission, or create_exit_marker. Prerequisites or alternatives are not mentioned.

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

verify_exit_markerB

Verify a signed EXIT marker from its JSON representation

ParametersJSON Schema
NameRequiredDescriptionDefault
markerJsonYesJSON string of the EXIT marker to verify

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It does not explain what verification entails (e.g., signature check, validity, expiration) or potential side effects. Minimal behavioral disclosure.

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

Conciseness5/5

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

One concise sentence with no fluff. Appropriate length for a simple tool.

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?

Given no output schema and the tool's role in a verification workflow, the description is too minimal. It omits details on success/failure outcomes or additional context needed for correct usage.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents the parameter. The description slightly repeats the schema description but does not add extra meaning. Baseline 3 applies.

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 'Verify' and the object 'a signed EXIT marker' from its JSON representation. It effectively distinguishes from siblings like 'create_exit_marker' and 'counter_sign_exit_marker'.

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 on when to use this tool vs alternatives like 'verify_and_admit' or 'verify_transfer'. Lacks context on prerequisites or intended use cases.

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

verify_transferB

Verify a complete EXIT→ENTRY transfer: check both markers and continuity

ParametersJSON Schema
NameRequiredDescriptionDefault
exitMarkerJsonYesJSON string of the EXIT marker
arrivalMarkerJsonYesJSON string of the ARRIVAL marker

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose whether the tool has side effects, permissions required, or if it returns a boolean or throws exceptions. The word 'verify' suggests read-only but is not explicit.

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?

Single, efficient sentence with no fluff. Front-loaded with purpose and key action.

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?

Given no output schema, the description should explain what 'verify' produces (e.g., boolean, error). It omits return semantics and fails to fully describe the behavior for a complete tool definition.

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 has 100% coverage with descriptions for both parameters. The description adds minimal value beyond repeating the idea of checking markers, but does not elaborate on format or constraints.

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: verifying a complete EXIT→ENTRY transfer by checking both markers and continuity. It distinguishes from siblings like verify_exit_marker which only checks one marker.

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 when to use (for transfer verification), but does not provide explicit when-not-to-use or alternatives. Lacks guidance on prerequisites or context.

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

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: creating, counter-signing, verifying, admitting, and generating identities. No two tools overlap in functionality.

Naming Consistency5/5

All tool names consistently use the verb_noun pattern with underscores (e.g., create_exit_marker, verify_and_admit), making the set predictable and easy to navigate.

Tool Count5/5

With 9 tools covering the core workflows of creating, verifying, admitting, and transferring EXIT markers, the count is well-scoped and each tool earns its place.

Completeness4/5

The tool set covers the main lifecycle: creation, verification, admission, and transfer. Minor gaps exist, such as no tool to manage admission policies beyond listing, but the core functionality is complete.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

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/CellarDoorExits/mcp-server'

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