Skip to main content
Glama

Eclipse Herald MCP

Powered by Cyan Eclipse Technologies — https://cetech.ai

Eclipse Herald — the agent-to-agent discovery and delegation layer for Cyan Eclipse Technologies: signed Agent Cards, policy-gated delegation, certification before hire.

Why this exists

Eclipse Bazaar's Phase 3 is agent-to-agent commerce: agents finding, verifying, hiring, and paying each other. The wire protocol for that already exists as an open standard — A2A (Agent2Agent). Herald is CETech's implementation stance on it: the herald proclaims who our agents are (signed cards), carries our mandates outward (the gateway), and announces who else may be trusted (certify-before-you-hire). Blueprint: ~/workspace/cyan-eclipse/eclipse-herald-a2a-blueprint-20261025.md.

Related MCP server: @sequesign/mcp

Status

v0.1.0 — H0/H1 local implementation. In development; bench pending; NO certification claimed. Local only: no network calls, no live third-party agents, no real money (settlement is in zero-value TEST-CREDITS). Cards are signed and verifiable; delegation runs against local stub agents. Live task endpoints and external counterparties are H2/H3 scope.

What v0.1 does

  • Agent Card toolkit — builds A2A v1.0-shaped cards for the four hireable service faces (Test Bench, Verity audit, Argus research, Silas engineering) from card_templates.json; validates schema; signs with a locally generated RSA key (JWS/RS256, detached signature in the card's signatures array); exports the public JWKS. Signed cards for all four faces live in cards/; the public key document is keys/jwks.json.

  • Key custody — the private key is a single local file, keys/signing-key.json, chmod 600, generated on first use. It is never printed, logged, or embedded in any document. (Owner: keep a backup in your password manager, same pattern as the Memory Vault key.)

  • Gateway core — discover (local card file) → verify JWS → certify-check (card must carry a CERTIFIED verdict reference whose scope covers the requested skill) → mandate (AP2-shaped: task hash, counterparty card hash, budget cap, expiry) → dispatch to a local stub agent → delivery validation → receipt-on-delivery: the settlement record is written only when an artifact actually arrives. No artifact, no payment.

  • Security Law #1, enforced in the code path — foreign-agent output INFORMS; it never INSTRUCTS. Deliverables pass through a quarantine ingest that strips instruction-shaped lines into a flagged list and wraps the remainder as labeled data with provenance. A test proves an injected instruction in a deliverable changes nothing about gateway behavior.

  • Receipts ledger — append-only, hash-chained JSONL (receipts.jsonl): mandates, refusals, deliveries. The chain is verifiable; tampering breaks it detectably.

Tools (5, MCP + CLI parity)

Tool

What it does

card_build

Build an unsigned card for a face from its template.

card_sign

Build + sign a card; write it to cards/; export JWKS.

card_verify

Schema-validate a card and verify its JWS signature.

gateway_delegate

Governed delegation to a LOCAL test agent (echo, research-stub, silent, injecting).

receipt_list

Read the ledger + verify the hash chain.

Run it

python3 server.py                       # MCP over stdio, stdlib only
python3 herald_cli.py keygen            # one-time: signing key + JWKS
python3 herald_cli.py sign argus-research
python3 herald_cli.py verify cards/argus-research.agent-card.json
python3 herald_cli.py delegate cards/argus-research.agent-card.json research-stub research-brief 5.00 "Why did BTC move today?"
python3 herald_cli.py receipts
python3 -m unittest discover -s tests   # 17 tests

Env overrides: HERALD_KEY_PATH, HERALD_LEDGER, HERALD_CARDS_DIR, HERALD_JWKS.

Roadmap

  • H2 — Gateway dogfood against our own live service endpoints (Eclipse Connect relay pattern); internal worker-desk cards.

  • H3 — Bazaar P3: certify-before-you-hire as a paid service; external counterparties; real settlement behind the same mandate/receipt flow.

License / attribution

A Cyan Eclipse Technologies product. The "Powered by Cyan Eclipse Technologies" attribution travels with it.

Available Tools

5 tools
card_buildB

Build an A2A v1.0-shaped Agent Card for a hireable CETech face (test-bench, verity-audit, argus-research, silas-engineering) from its template. Unsigned.

NameRequiredDescriptionDefault
faceYes
overridesNo

TDQS

B3.2/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does disclose two useful traits — output is unsigned and derived from a template — but says nothing about permissions, whether it persists a file, error behavior for unknown faces, or what the agent gets back.

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; every clause (card shape, face list, template source, unsigned status) contributes information.

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?

With no annotations, no output schema, and a nested `overrides` object, the description is too thin: it never explains what the built card contains, where it is written, or how overrides merge with the template. An agent can pick the tool but cannot confidently invoke it with overrides.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It does add real meaning for `face` by enumerating the four valid values (the schema gives only an unconstrained string), but `overrides` — a nested object, the most semantically opaque parameter — is not mentioned at all.

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?

Names a specific verb (Build) and a specific resource (A2A v1.0-shaped Agent Card) scoped 'from its template' for a named set of faces. The trailing 'Unsigned' implicitly separates it from card_sign, but the sibling is never named, so differentiation is inferred rather than stated.

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?

Usage is only implied: 'Unsigned' hints that signing (card_sign) is a separate follow-up step, and 'from its template' suggests this is the generation stage before verify/sign. There is no explicit when-to-use, when-not-to-use, or named alternative.

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

card_signB

Build + sign a face's Agent Card with the local signing key (JWS/RS256), write it to cards/, and export the public JWKS. The private key never leaves keys/ (chmod 600).

NameRequiredDescriptionDefault
faceYes
overridesNo

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations at all, the description must carry the full behavioral load, and it does disclose useful traits: the algorithm (JWS/RS256), that the private key stays in keys/ with chmod 600, that files are written to cards/, and that a JWKS is exported. However, it never says whether an existing card file is overwritten (a destructive side effect that matters here), what identifies the target file, or what the call returns.

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 tight sentence with the security posture front-loaded alongside the outputs; every clause (algorithm, destination directory, key location, key permissions) adds real information. It is dense but not padded.

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 two-parameter mutation tool with a nested object, no annotations, and no output schema, the description covers outputs and safety but not inputs or overwrite semantics. An agent knows what the call produces but not how to shape the overrides payload or what happens to pre-existing card files.

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

Parameters2/5

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

Schema description coverage is 0%, so the description is the only source of parameter meaning — and it explains neither what a 'face' identifier is nor what the nested 'overrides' object accepts. The single hint ('a face's Agent Card') maps loosely to the required param but leaves the only meaningful input, the nested overrides structure, entirely opaque.

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 concrete verb chain (build + sign), the resource (a face's Agent Card), and the side effects (write to cards/, export public JWKS). It is distinguishable from card_build in principle, but the description never explicitly says how it differs from that sibling, leaving the agent to infer that card_build only builds.

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?

Usage is only implied by the operation itself — an agent can guess you call this when you need a signed card plus a published JWKS, but there is no stated when-to-use, no prerequisite (e.g., must the face exist first?), and no pointer to card_verify or card_build as the alternatives.

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

card_verifyA

Validate a card's schema and verify its JWS signature against the local JWKS. Tampered cards are rejected.

NameRequiredDescriptionDefault
card_pathYes

TDQS

A3.6/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 behavioral burden. It usefully discloses that verification uses the local JWKS and that tampered cards are rejected, which adds meaningful context beyond the schema. However, it does not state whether the operation is read-only, what errors or return values occur, or what permissions/filesystem access are required.

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 two tightly written sentences with no filler. It front-loads the primary validation behavior and follows with the rejection behavior for tampered cards.

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 single-parameter validation tool, the description covers the core validation and signature-checking behavior. However, with no output schema and no annotations, it leaves important context unstated, especially what a successful or failed validation returns to the caller.

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

Parameters2/5

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

There is one required parameter, card_path, with 0% schema description coverage. The description does not explain that this parameter is a filesystem path or what format it expects, so the agent must infer meaning solely from the parameter name.

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

Purpose5/5

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

The description states a specific verb+resource: it validates a card's schema and verifies its JWS signature against local JWKS. This clearly distinguishes it from sibling tools like card_build and card_sign, which create or sign cards.

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 the tool is useful (to validate a card after building/signing), but it never explicitly says when to use it versus alternatives or what preconditions apply. There is no direct routing guidance to siblings such as card_sign or gateway_delegate.

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

gateway_delegateB

Delegate a task through the governed gateway to a LOCAL test agent (echo, research-stub, silent, injecting): verify card -> certify-check -> mandate (budget cap, expiry) -> dispatch -> quarantine ingest -> receipt-on-delivery. No artifact, no payment.

NameRequiredDescriptionDefault
promptNo
agent_idYes
skill_idYes
card_pathYes
ttl_secondsNo
budget_cap_creditsYes

TDQS

B3.4/5.0
Behavior4/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 does disclose the pipeline: verify card, certify-check, mandate with budget cap and expiry, dispatch, quarantine ingest, and receipt-on-delivery. It also states important constraints ('No artifact, no payment'), though it omits error modes, permissions, and reversibility details.

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

Conciseness4/5

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

The description is front-loaded with the core action and then compresses the workflow into a compact pipeline. It is dense but not padded; the final 'No artifact, no payment' constraint is useful and earns its place.

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 complex workflow tool with no annotations, no output schema, and 0% schema description coverage, the definition gives a useful pipeline overview and test-scope constraints. It still leaves important parameter semantics and operational preconditions unclear, so it is only minimally adequate overall.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for six undocumented parameters. It hints at budget cap, expiry, card verification, and local agent types, but does not explain prompt, skill_id, or the exact relationship between the listed agent names and agent_id, leaving most required parameters underspecified.

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: delegating a task through a governed gateway to local test agents. It is clearly distinct in substance from card_build/card_sign/card_verify/receipt_list, though it does not explicitly name those siblings.

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?

Usage is implied by 'LOCAL test agent' and 'No artifact, no payment,' which signal a test-only, non-production scope. However, there is no explicit when-to-use guidance relative to card_verify or receipt_list, and no when-not-to-use conditions beyond the local/test framing.

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

receipt_listB

Read the hash-chained delegation ledger: mandates, refusals, delivery receipts. Includes chain verification.

NameRequiredDescriptionDefault
limitNo

TDQS

B3.1/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. 'Read' signals a non-mutating retrieval and 'Includes chain verification' discloses a meaningful behavior, but it says nothing about pagination via limit, ordering, or what the verification returns.

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 compact sentence with the resource front-loaded and no wasted words. Every clause adds information.

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

Completeness3/5

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

There is no output schema and no annotations, so the description should do more to explain result shape and the limit parameter. It covers the ledger contents but leaves an agent guessing about pagination and verification output.

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

Parameters2/5

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

Schema description coverage is 0% for the single optional limit parameter, and the description never mentions it. The name 'limit' is intuitive, but default value, maximum, and pagination behavior are left entirely unspecified.

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 (Read) and a well-defined resource (the hash-chained delegation ledger), and enumerates what it contains (mandates, refusals, delivery receipts). It is distinguishable from the card_* and gateway_delegate siblings, though it does not name them.

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

Usage Guidelines2/5

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

No guidance is given on when to call this versus card_verify or gateway_delegate, nor on prerequisites or exclusions. The read/ledger framing implies a retrieval use case, but nothing is explicit.

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. 5 tool updatesv0.1.1
    • First observedcard_build
    • First observedcard_sign
    • First observedcard_verify
    • First observedgateway_delegate
    • First observedreceipt_list

TDQS

A3.6/5.0

Scored across 5 tools

Disambiguation4/5

Each tool targets a distinct stage of the card/delegation lifecycle, and gateway_delegate vs receipt_list are clearly separate concerns. The one soft overlap is card_build versus card_sign, since card_sign explicitly also builds the card, making card_build a strict subset step—descriptions disambiguate but an agent could reasonably pick the wrong one for a signed-card need.

Naming Consistency5/5

All names follow a uniform snake_case noun_verb pattern (card_build, card_sign, card_verify, gateway_delegate, receipt_list). The subject-first convention is applied consistently across the whole surface with no style mixing.

Tool Count5/5

Five tools is well-scoped for a narrow domain: card build/sign/verify, one delegation entry point, and one ledger read. Each tool maps to a real step in the pipeline with no filler or redundancy.

Completeness4/5

The core lifecycle (build → sign → verify → delegate → audit via receipts) is fully covered with no dead ends. Minor gaps remain: there is no tool to list/get existing cards from cards/, no key rotation or card revocation, and delegation is restricted to local test agents by design.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables agent settlement, trust verification, and ledger operations for multi-agent workflows, with tools for blueprint management, credit tracking, and provenance recording.
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to create cryptographically verifiable receipts of their delegated work, with capabilities for multi-party approval and offline verification.
    11
    29 npm
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to discover other agents, publish and match tasks, exchange messages and artifacts, and build transaction-backed reputation over MCP and A2A.
    -