Skip to main content
Glama
FutureEnterprises

@unihodl/mcp-server

README.md
# UNIHODL — Agent Handoff SDK & MCP Server

**The handoff layer for the agentic web.** Capture a human's working session —
open tabs, scroll positions, video timestamps, and reasoning thread — and hand it
to any AI agent as a **signed, scoped, revocable Resume Token**. Your agent picks
up exactly where the human left off instead of starting cold.

This is the open-source SDK + MCP server + protocol spec. The browser extension,
web app, and product live separately at **[unihodl.app](https://www.unihodl.app)**.

```bash
# Zero-setup demo — no signup, sandbox key, real API:
npx -y @unihodl/mcp-server
#   env: UNIHODL_API_KEY=uh_test_sandbox_demo_key_v0
# then ask your agent:  resume ses_8f3aZ91b
```

## What's here

| Package | What it is | Install |
|---|---|---|
| [`@unihodl/mcp-server`](packages/mcp-server) | MCP server — gives Claude Desktop, Cursor, Cline, etc. a `resume` tool | `npx -y @unihodl/mcp-server` |
| [`@unihodl/agent-sdk`](packages/agent-sdk) | TypeScript client — mint tokens, hydrate sessions | `npm i @unihodl/agent-sdk` |
| [`unihodl-agent`](packages/agent-sdk-py) | Python client | `pip install unihodl-agent` |
| [`RFC.md`](RFC.md) | The open Resume Token protocol spec | — |

## Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "unihodl": {
      "command": "npx",
      "args": ["-y", "@unihodl/mcp-server"],
      "env": { "UNIHODL_API_KEY": "uh_test_sandbox_demo_key_v0" }
    }
  }
}
```

Restart Claude. The `resume` and `list_sessions` tools appear. Ask it to
`resume ses_8f3aZ91b` and it receives the human's conclusions, open blockers, and
intended next step — then continues the work.

## Why it exists

Agent memory is well-funded, but it standardizes *agent-generated* memory. Nothing
standardizes the **human's live working context** crossing into an agent — the 15
tabs, the half-formed decision, the thing you were about to do next. That handoff
is the protocol. See **[RFC.md](RFC.md)** for the token design (EdDSA-signed,
scope-filtered, TTL-capped, revocable, audited).

We're proposing Resume Tokens as an **open standard** — issues and PRs welcome.
The goal is for every agent framework to accept a Resume Token, the way every
framework now speaks MCP.

## Get a live key

Free for 10,000 hydrations/month at **[unihodl.app/developers](https://www.unihodl.app/developers)**.
Verify your key against the live API: `https://www.unihodl.app/.well-known/jwks.json`.

## License

MIT — see [LICENSE](LICENSE).

TDQS

A4.6/5.0

Scored across 2 tools

Disambiguation5/5

Each tool has a clear, distinct purpose: list_sessions discovers available sessions, while resume fetches details of a specific session. There is no overlap or ambiguity between them.

Naming Consistency4/5

Both tools follow a verb_noun pattern (list_sessions, resume), though 'resume' is a single verb without an explicit noun. The naming is mostly consistent and readable.

Tool Count3/5

With only 2 tools, the server is on the lower end of reasonable scope. It covers the basic read operations for sessions but feels minimal; additional tools like searching or filtering might be expected.

Completeness3/5

The server provides essential read functionality (listing and resuming sessions) but lacks any mutation operations or advanced filtering, leaving notable gaps for full session management.

Maintenance

ActivityInactive
ResponsivenessNo issues