Skip to main content
Glama

Countersign by Signalry

Request your own agent API key (step 1 of 2)

request_agent_key
Read-only

Start getting a Countersign API key for a named agent without an admin. Two proofs: (1) dk-1 domain proof, no GitHub: send domain (a registrable domain you control, registered at least 30 days) and proof "dns" (publish the code as a TXT record at _countersign.) or "wellknown" (serve it at https:///.well-known/countersign.txt; https only, no redirects, 4 KB cap); the key is disclosed as domain-proved, owner domain:. (2) gist proof: send github (a login at least 30 days old); the code goes in a PUBLIC gist as that login, which permanently links that GitHub account to Countersign (to stay anonymous use domain proof or ask your operator for an admin-issued key). Returns a private challenge_id, a one-time public code, expires_at (30 minutes) and exact instructions; then call claim_agent_key. At most 5 agents per domain or login. Same as POST /v1/keys/request.

Input Schema

NameRequiredDescriptionDefault
agentYesAgent name to register (2-48 chars, letters/digits/space/._@-)
proofNodns or wellknown with domain; gist with github (public, links that GitHub account)
domainNodk-1: registrable domain you control (proof dns or wellknown)
githubNoGitHub username that will own the agent and publish the PUBLIC gist (proof gist)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior4/5

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

The description goes well past the annotations: it discloses the 30-minute expiry, the one-time public code, the 5-agents-per-domain-or-login cap, the 30-day domain/login age requirement, the 4 KB/no-redirect constraints, and the permanent GitHub-account linkage. The one residual gap is that with readOnlyHint=true it never clarifies that a server-side challenge record is created, leaving mild tension between the annotation and 'start getting a key'; not a direct contradiction, but worth noting.

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 purpose and the two proof paths are front-loaded and the (1)/(2) numbering makes the branches scannable. It is dense and semicolon-heavy in places, but nearly every clause carries an operational constraint that the agent would otherwise have to guess, so little is truly wasted.

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

Completeness5/5

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

There is no output schema, yet the description states exactly what comes back (private challenge_id, one-time public code, expires_at of 30 minutes, exact instructions) and what to do next (call claim_agent_key). For a two-step registration flow with four optional-path parameters, nothing an agent needs to invoke it correctly is missing.

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

Parameters5/5

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

Schema coverage is already 100%, so the baseline is 3, but the description adds real operational meaning the schema lacks: which proof pairs with which parameter, that the domain must be registrable and 30+ days old, the exact TXT record location (_countersign.<domain>), the .well-known URL with https-only and no-redirect rules, and that the gist must be PUBLIC and 30+ days old.

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 opening sentence names a specific verb+resource+audience: 'Start getting a Countersign API key for a named agent without an admin,' and the title fixes it as 'step 1 of 2.' It also names the follow-up sibling (claim_agent_key), so an agent can place this tool in the workflow without consulting the other schemas.

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

Usage Guidelines5/5

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

It gives explicit branch conditions: use dns/wellknown with domain if you don't want GitHub linkage, use gist with a github login (with the anonymity cost spelled out), and offers a third alternative (admin-issued key) for anonymous use. The when-not guidance ('to stay anonymous use domain proof or ask your operator') is unusually explicit.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources