Documentation

Everything you need
to put Accord in front of your agent.

Quickstart · What you can paste · How a call flows · Policies · Security · Receipts · API · Public MCP endpoint

Quickstart

1. Get a sandbox URL

On the homepage or in the converter, click Create my sandbox URL or Create sandbox URL. No account is needed. Sandbox calls return sample data.

2. Connect your agent

# Claude Code
claude mcp add --transport http accord https://mcp.edenbuilds.me/g/YOUR_ID/mcp

# Cursor: .cursor/mcp.json
{ "mcpServers": { "accord": { "url": "https://mcp.edenbuilds.me/g/YOUR_ID/mcp" } } }

# VS Code: .vscode/mcp.json
{ "servers": { "accord": { "type": "http", "url": "https://mcp.edenbuilds.me/g/YOUR_ID/mcp" } } }

Add ?role=viewer to the URL to connect with read-only tools.

3. Run it on your own server

The template in templates/mcp-server calls your real API with your key. Every option needs your gateway’s manifest URL, shown on its page, and a token your agent will send.

  • Deploy to Vercel. Your URL is https://your-project.vercel.app/mcp.
  • Docker: curl -sL https://mcp.edenbuilds.me/docker | bash -s -- YOUR_ID
  • Node: npm install && node server.mjs inside the template folder.

Railway

  1. Fork github.com/edenbuilds/accord.
  2. In Railway, create a project and choose Deploy from GitHub repo, then pick your fork.
  3. In the service settings, set the root directory to templates/mcp-server.
  4. Add ACCORD_MANIFEST_URL, API_TOKEN and MCP_BEARER_TOKEN as variables.
  5. Generate a domain. Your URL is https://your-service.up.railway.app/mcp.

The self-hosted template forwards calls. The seven checks run on the Accord gateway, not in the template.

What you can paste

  • cURL. One tool per command. Put # tool_name: What it does on the line above a command to name it. Keys in headers, -u and the URL are removed.
  • OpenAPI 3.0 and 3.1, Swagger 2.0. JSON or YAML. Local $ref links are resolved. Up to 200 operations and 1 MB.
  • Postman v2.1. Folders, collection variables and auth settings are read.

How a call flows

Agent → Accord gateway → your API → Accord gateway → agent. In the sandbox, the API step returns sample data.

  1. Readable request: arguments must be a JSON object under 64 KB.
  2. Tool allowed: the role must be allowed to see the tool.
  3. Inputs match: arguments are checked against the tool’s schema.
  4. Approval: matching tools are held for a person. Nothing is sent.
  5. Loop breaker: the same call repeated too often is stopped.
  6. Rate limit: a token bucket per gateway.
  7. Quota: 1,000 calls per sandbox gateway.

After the call: cache, strip bulky fields, prune to chosen fields, redact private fields, then write a receipt.

Policies

Each gateway has one policy. Built-in use cases come with their own. Patterns use * and match a tool’s name or its path.

{
  "version": "accord.gateway-policy/v1",
  "roles": {
    "agent":  { "allow": ["*"], "deny": ["*/production/*"], "readOnly": false },
    "viewer": { "allow": ["*"], "deny": [], "readOnly": true }
  },
  "defaultRole": "agent",
  "requireApproval": ["delete_*", "create_refund"],
  "loop": { "maxRepeats": 5, "windowSeconds": 60 },
  "rate": { "capacity": 20, "refillPerMinute": 60 },
  "callLimit": 1000,
  "cacheSeconds": 60,
  "cache": ["run_sql"],
  "strip": ["*_url", "url", "_links", "links", "etag", "node_id", "metadata"],
  "redact": ["email", "phone", "address"],
  "prune": {}
}

Security

  • Safety checks fail closed. If the store behind roles, loops, rate limits or quotas is unreachable, the call is stopped.
  • Optimisations fail open. If caching, stripping or receipts fail, the call still returns.
  • Redaction fails closed. If private fields cannot be removed, the response is withheld.
  • No secrets in tools. The converter removes keys. Self-hosted servers add them on the server.
  • The sandbox never forwards. It cannot reach your systems or anyone else’s.
  • Roles in the sandbox are chosen by the URL. They show filtering, not verified identity. Identity mapping is on the roadmap.

Not yet available: SSO, OAuth identity mapping, Slack approval buttons, audit export, SOC 2, SLAs.

Receipts

Every call writes a receipt: id, time, tool, role, decision and rule, a fingerprint of the arguments and the policy, time taken, and sizes before and after trimming. Receipts never include response bodies. Sandbox receipts are kept for 30 days.

API

  • POST /api/gateways with { "input": "curl ..." } creates a sandbox gateway. Twenty per hour per network.
  • GET /api/gateways/ID returns tools, rules, call count and recent receipts.
  • GET /api/gateways/ID?view=manifest returns the tool manifest for self-hosting.
  • POST /g/ID/mcp is the MCP endpoint (Streamable HTTP, JSON responses).

Public MCP endpoint

https://mcp.edenbuilds.me/mcp exposes two read-only tools, accord_describe and accord_evaluate, so any MCP client can evaluate a policy without creating a gateway. The policy workbench uses the same evaluator.