# Proof Holdings

An MCP server for the proof.holdings API. Agents create verifications, confirm domains and ask a person to approve. Run it over HTTP or locally with npx.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Author: ProofHoldings
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/ProofHoldings/mcp-server
- Updated: 2026-10-16
- HTML: https://affpapa.org/en/nevibecode/mcp/proof-holdings

## What it does

The server hands your agent 167 tools from the proof.holdings API. They cover verifications and requests, domains and DNS, account and billing, human approvals, circles of trusted contacts, public profiles, templates and webhooks. An agent can open a verification challenge and poll until it finishes, attach a domain, mint a scoped API key, or send someone an approval request and read back the answer.

There are two ways in. The hosted one needs no install: the same tool set is served at `https://api.proof.holdings/mcp`, so you add that URL as a remote MCP server and sign in through the browser the first time a tool wants an account. The local one is the `@proof-holdings/mcp-server` package, a stdio server started with `npx -y @proof-holdings/mcp-server`.

A key is optional. With no `PROOF_API_KEY` the server still starts, in public mode: account bootstrap, login, and proof and delegation verification work, while everything else returns `api_key_required`. Get a key from the dashboard, or run `npx @proof-holdings/mcp-server login`, which confirms over a second channel and stores the key in `~/.proof-holdings/credentials`. That command needs an interactive terminal and an `https://` API address. Pinning a client to `1.0.0` costs you the delegation tools and the keyless mode — upgrade the client or switch to the hosted server.

## Requirements
- Needs: Node.js (commands run via npx)
- Remote server: `https://api.proof.holdings/mcp`
- Environment variables: `PROOF_API_KEY`, `PROOF_BASE_URL` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

1. **Platform CLI: remote server**
```bash
claude mcp add --transport http mcp-server https://api.proof.holdings/mcp
```

2. **Platform CLI**
```bash
claude mcp add --env PROOF_API_KEY=<PROOF_API_KEY> --env PROOF_BASE_URL=<PROOF_BASE_URL> --transport stdio proof-holdings -- npx -y @proof-holdings/mcp-server
```
Replace <…> with your own values

### Codex

1. **Platform CLI: remote server**
```bash
codex mcp add proof-holdings --url https://api.proof.holdings/mcp
```

2. **Platform CLI**
```bash
codex mcp add proof-holdings --env PROOF_API_KEY=<PROOF_API_KEY> --env PROOF_BASE_URL=<PROOF_BASE_URL> -- npx -y @proof-holdings/mcp-server
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "proof-holdings": {
            "url": "https://api.proof.holdings/mcp"
        }
    }
}
```
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "proof-holdings": {
            "command": "npx",
            "args": [
                "-y",
                "@proof-holdings/mcp-server"
            ],
            "env": {
                "PROOF_API_KEY": "<PROOF_API_KEY>",
                "PROOF_BASE_URL": "<PROOF_BASE_URL>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "proof-holdings": {
            "type": "http",
            "url": "https://api.proof.holdings/mcp"
        }
    }
}
```
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "proof-holdings": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@proof-holdings/mcp-server"
            ],
            "env": {
                "PROOF_API_KEY": "<PROOF_API_KEY>",
                "PROOF_BASE_URL": "<PROOF_BASE_URL>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

1. **Platform CLI: remote server**
```bash
gemini mcp add -t http proof-holdings https://api.proof.holdings/mcp
```

2. **Platform CLI**
```bash
gemini mcp add -e PROOF_API_KEY=<PROOF_API_KEY> -e PROOF_BASE_URL=<PROOF_BASE_URL> proof-holdings npx -y @proof-holdings/mcp-server
```
Replace <…> with your own values

## When to use it
- open a verification challenge and poll until it completes
- prove control of a domain with a DNS record
- get a person to approve an agent action before it runs
- mint an API key with limited scopes
- verify a proof or delegation without a key

## Example prompts
- Create a verification for this number and wait for it to finish
- Add `example.com` and verify it through DNS
- Send an approval request and poll for the result

## Similar
- [Custom Domain API](https://affpapa.org/en/nevibecode/mcp/custom-domain-api.md) — MCP server · ★ 19
- [cf-cli](https://affpapa.org/en/nevibecode/skills/cf-cli.md) — skill · 11500 installs
- [Emaillistchecker.io Email Verification](https://affpapa.org/en/nevibecode/mcp/emaillistcheckerio-email-verification.md) — MCP server
- [email-verifier](https://affpapa.org/en/nevibecode/mcp/email-verifier.md) — MCP server
- [cloudflare-troubleshooting](https://affpapa.org/en/nevibecode/skills/cloudflare-troubleshooting.md) — skill · 942 installs
- [namecheap](https://affpapa.org/en/nevibecode/skills/namecheap.md) — skill · 36 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
