NestDaddy

Sign and register statements on a Forestrie log

dev.forestrie/register ยท v0.3.0

Sign and register statements on a Forestrie log, verify receipts, buy grants via x402 within caps

Connect Runs on your machine

Terminal
claude mcp add register -e FORESTRIE_BASE_URL=<FORESTRIE_BASE_URL> -e FORESTRIE_ROOT_LOG_ID=<FORESTRIE_ROOT_LOG_ID> -e FORESTRIE_GRANT=<FORESTRIE_GRANT> -e FORESTRIE_AUTHORITY_GRANT=<FORESTRIE_AUTHORITY_GRANT> -e FORESTRIE_COORDINATOR_URL=<FORESTRIE_COORDINATOR_URL> -e FORESTRIE_KNOWN_SEALER_KEY=<FORESTRIE_KNOWN_SEALER_KEY> -e MCP_REGISTER_HOME=<MCP_REGISTER_HOME> -e MCP_REGISTER_KEY_FILE=<MCP_REGISTER_KEY_FILE> -e MCP_REGISTER_AUTHORITY_KEY_FILE=<MCP_REGISTER_AUTHORITY_KEY_FILE> -e MCP_REGISTER_PAYER_KEY_FILE=<MCP_REGISTER_PAYER_KEY_FILE> -e MCP_REGISTER_PAY_MAX_PER_CALL=<MCP_REGISTER_PAY_MAX_PER_CALL> -e MCP_REGISTER_PAY_MAX_PER_DAY=<MCP_REGISTER_PAY_MAX_PER_DAY> -e MCP_REGISTER_PAY_NETWORK=<MCP_REGISTER_PAY_NETWORK> -e MCP_REGISTER_PAY_ASSET=<MCP_REGISTER_PAY_ASSET> -e MCP_REGISTER_PAY_TO=<MCP_REGISTER_PAY_TO> -e MCP_REGISTER_PAY_ALLOW_MAINNET=<MCP_REGISTER_PAY_ALLOW_MAINNET> -- npx -y @forestrie/[email protected]
claude_desktop_config.json
{
  "mcpServers": {
    "register": {
      "command": "npx",
      "args": [
        "-y",
        "@forestrie/[email protected]"
      ],
      "env": {
        "FORESTRIE_BASE_URL": "<FORESTRIE_BASE_URL>",
        "FORESTRIE_ROOT_LOG_ID": "<FORESTRIE_ROOT_LOG_ID>",
        "FORESTRIE_GRANT": "<FORESTRIE_GRANT>",
        "FORESTRIE_AUTHORITY_GRANT": "<FORESTRIE_AUTHORITY_GRANT>",
        "FORESTRIE_COORDINATOR_URL": "<FORESTRIE_COORDINATOR_URL>",
        "FORESTRIE_KNOWN_SEALER_KEY": "<FORESTRIE_KNOWN_SEALER_KEY>",
        "MCP_REGISTER_HOME": "<MCP_REGISTER_HOME>",
        "MCP_REGISTER_KEY_FILE": "<MCP_REGISTER_KEY_FILE>",
        "MCP_REGISTER_AUTHORITY_KEY_FILE": "<MCP_REGISTER_AUTHORITY_KEY_FILE>",
        "MCP_REGISTER_PAYER_KEY_FILE": "<MCP_REGISTER_PAYER_KEY_FILE>",
        "MCP_REGISTER_PAY_MAX_PER_CALL": "<MCP_REGISTER_PAY_MAX_PER_CALL>",
        "MCP_REGISTER_PAY_MAX_PER_DAY": "<MCP_REGISTER_PAY_MAX_PER_DAY>",
        "MCP_REGISTER_PAY_NETWORK": "<MCP_REGISTER_PAY_NETWORK>",
        "MCP_REGISTER_PAY_ASSET": "<MCP_REGISTER_PAY_ASSET>",
        "MCP_REGISTER_PAY_TO": "<MCP_REGISTER_PAY_TO>",
        "MCP_REGISTER_PAY_ALLOW_MAINNET": "<MCP_REGISTER_PAY_ALLOW_MAINNET>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "register": {
      "command": "npx",
      "args": [
        "-y",
        "@forestrie/[email protected]"
      ],
      "env": {
        "FORESTRIE_BASE_URL": "<FORESTRIE_BASE_URL>",
        "FORESTRIE_ROOT_LOG_ID": "<FORESTRIE_ROOT_LOG_ID>",
        "FORESTRIE_GRANT": "<FORESTRIE_GRANT>",
        "FORESTRIE_AUTHORITY_GRANT": "<FORESTRIE_AUTHORITY_GRANT>",
        "FORESTRIE_COORDINATOR_URL": "<FORESTRIE_COORDINATOR_URL>",
        "FORESTRIE_KNOWN_SEALER_KEY": "<FORESTRIE_KNOWN_SEALER_KEY>",
        "MCP_REGISTER_HOME": "<MCP_REGISTER_HOME>",
        "MCP_REGISTER_KEY_FILE": "<MCP_REGISTER_KEY_FILE>",
        "MCP_REGISTER_AUTHORITY_KEY_FILE": "<MCP_REGISTER_AUTHORITY_KEY_FILE>",
        "MCP_REGISTER_PAYER_KEY_FILE": "<MCP_REGISTER_PAYER_KEY_FILE>",
        "MCP_REGISTER_PAY_MAX_PER_CALL": "<MCP_REGISTER_PAY_MAX_PER_CALL>",
        "MCP_REGISTER_PAY_MAX_PER_DAY": "<MCP_REGISTER_PAY_MAX_PER_DAY>",
        "MCP_REGISTER_PAY_NETWORK": "<MCP_REGISTER_PAY_NETWORK>",
        "MCP_REGISTER_PAY_ASSET": "<MCP_REGISTER_PAY_ASSET>",
        "MCP_REGISTER_PAY_TO": "<MCP_REGISTER_PAY_TO>",
        "MCP_REGISTER_PAY_ALLOW_MAINNET": "<MCP_REGISTER_PAY_ALLOW_MAINNET>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "register": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@forestrie/[email protected]"
      ],
      "env": {
        "FORESTRIE_BASE_URL": "<FORESTRIE_BASE_URL>",
        "FORESTRIE_ROOT_LOG_ID": "<FORESTRIE_ROOT_LOG_ID>",
        "FORESTRIE_GRANT": "<FORESTRIE_GRANT>",
        "FORESTRIE_AUTHORITY_GRANT": "<FORESTRIE_AUTHORITY_GRANT>",
        "FORESTRIE_COORDINATOR_URL": "<FORESTRIE_COORDINATOR_URL>",
        "FORESTRIE_KNOWN_SEALER_KEY": "<FORESTRIE_KNOWN_SEALER_KEY>",
        "MCP_REGISTER_HOME": "<MCP_REGISTER_HOME>",
        "MCP_REGISTER_KEY_FILE": "<MCP_REGISTER_KEY_FILE>",
        "MCP_REGISTER_AUTHORITY_KEY_FILE": "<MCP_REGISTER_AUTHORITY_KEY_FILE>",
        "MCP_REGISTER_PAYER_KEY_FILE": "<MCP_REGISTER_PAYER_KEY_FILE>",
        "MCP_REGISTER_PAY_MAX_PER_CALL": "<MCP_REGISTER_PAY_MAX_PER_CALL>",
        "MCP_REGISTER_PAY_MAX_PER_DAY": "<MCP_REGISTER_PAY_MAX_PER_DAY>",
        "MCP_REGISTER_PAY_NETWORK": "<MCP_REGISTER_PAY_NETWORK>",
        "MCP_REGISTER_PAY_ASSET": "<MCP_REGISTER_PAY_ASSET>",
        "MCP_REGISTER_PAY_TO": "<MCP_REGISTER_PAY_TO>",
        "MCP_REGISTER_PAY_ALLOW_MAINNET": "<MCP_REGISTER_PAY_ALLOW_MAINNET>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
FORESTRIE_BASE_URL
Optional
Canopy SCRAPI base URL used when a call omits baseUrl; also the only origin a payer will pay. No default.
FORESTRIE_ROOT_LOG_ID
Optional
The forest's root log id (R in /register/{R}/entries) when a call omits rootLogId.
FORESTRIE_GRANT
Optional, secret
Your Forestrie-Grant for the data log, as base64 or a file path, when a call omits grant.
FORESTRIE_AUTHORITY_GRANT
Optional, secret
Your authority log's creation grant, for issue_grant, register_grant and delegate_sealing as authority.
FORESTRIE_COORDINATOR_URL
Optional
Delegation coordinator URL, for delegate_sealing.
FORESTRIE_KNOWN_SEALER_KEY
Optional
The registrar's sealer voucher key, base64 x||y, for delegate_sealing.
MCP_REGISTER_HOME
Optional
Directory for key files, grants, registrations and the spend ledger; default ~/.config/forestrie/mcp-register.
MCP_REGISTER_KEY_FILE
Optional
The log key file (ES256 JWK, mode 600); created on first use if missing.
MCP_REGISTER_AUTHORITY_KEY_FILE
Optional
The authority key file (ES256 JWK, mode 600) that signs child grants; created on first use if missing.
MCP_REGISTER_PAYER_KEY_FILE
Optional
Optional payer: a file holding your EVM key (0x + 64 hex, mode 600). Unset means relay mode: nothing is spent, your own x402 wallet pays.
MCP_REGISTER_PAY_MAX_PER_CALL
Optional
Most one payment may be, in the asset's atomic units. Required with a payer.
MCP_REGISTER_PAY_MAX_PER_DAY
Optional
Most all payments in one UTC day may total, in atomic units. Required with a payer.
MCP_REGISTER_PAY_NETWORK
Optional
The one network it pays on; default eip155:84532 (Base Sepolia).
MCP_REGISTER_PAY_ASSET
Optional
The one asset it pays in; default USDC on Base Sepolia. Required off the default network.
MCP_REGISTER_PAY_TO
Optional
Optional: the only payee address it will pay.
MCP_REGISTER_PAY_ALLOW_MAINNET
Optional
Set to 1 to allow paying on a network that is not a testnet; off by default.

Details

Package@forestrie/[email protected] (NPM, stdio)
First published1 Nov 2026
Last updated1 Nov 2026
Registry namedev.forestrie/register

More cloud and devops servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.