# Agent Handoff

> Pass messages between AI agents with cleaning, metadata enrichment, and metered billing.

- name: io.github.jordan23wagner-ops/agent-handoff
- version: 1.0.0
- connection class: R1 (autonomous)
- trust: 64/100 flags: unreachable
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.jordan23wagner-ops%2Fagent-handoff
- tools: https://api.protogrid.dev/v1/servers/io.github.jordan23wagner-ops%2Fagent-handoff/tools

**An agent can connect on its own if it already holds `X_API_KEY`, `X_API_KEY`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "agent-handoff": {
      "type": "http",
      "url": "https://agent-handoff-production-573c.up.railway.app/mcp",
      "headers": {
        "x-api-key": "${X_API_KEY}",
        "Authorization": "${X_API_KEY}"
      }
    }
  }
}
```

Placeholders to fill: `${X_API_KEY}`, `${X_API_KEY}`.

## Trust

- hygiene: 100
- liveness: 0
- freshness: 85
- provenance: 90
- drivers: +repository +namespace-matches-repo +website -unreachable(5 failures) ~updated-85d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_usage_stats (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); handoff (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)
- pass `tools.token_cost`: about 203 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 2, about 203 tokens to load them all
- tool set hash: 42061e14522d7cd302ba64e108ae3cde
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.jordan23wagner-ops/agent-handoff.svg)](https://protogrid.dev/servers/io.github.jordan23wagner-ops/agent-handoff)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://agent-handoff-production-573c.up.railway.app/mcp (streamable-http, auth api_key ${X_API_KEY}, reachable false, uptime30d 0.94949496)

## Packages

_none_

## Tools (2)

- `get_usage_stats`: Return this account's total handoff count and the most recent handoffs. Read-only and not billed.
- `handoff`: Hand a message off to another agent. Cleans and normalizes the payload, stamps it with handoff metadata (id, timestamp, estimated tokens, target agent), and records the handoff. Use this when passing work or context from one agent to the next in a multi-agent pipeline. This is a metered, billable operation.
