Docs

Agent setup for Scry

Connect Claude Code, Codex, or another agent to Scry over MCP, or mint it an API key for the HTTP API.

Connect over MCP

Scry is an MCP server at https://mcp.scry.io. Add that URL to your agent and approve the sign-in when it asks; the agent then has schema, sql, embed, feedback and the rest of the roster that tools/list returns, including rerank, memory, vectors, and whoami. The per-client commands for ChatGPT, Claude.ai, Claude Desktop, Claude Code, Codex, and Cursor are on the Connect page (https://scry.io/docs/connect); headless runs pass an API key as a bearer header instead of signing in.

HTTP API and the environment variable

Agents without an MCP client use the HTTP API at https://api.scry.io with SCRY_API_KEY as the bearer credential on every request. Keep the key in ~/.config/scry/env. Every query runs authenticated: under an account key, or per query via x402 payment authorization.

Get a key

The dashboard at https://scry.io/dashboard has your personal key. From code: create an account with the first request (its response returns a session_token; an inbox that already holds an account signs in with its password instead), then mint a key with the second. Queries run only once the email address is verified: the mail contains a link ending in #verify=<token>, and the same token finishes verification from code with the middle call below, whose reply carries a session_token of its own. The scry product scope is required alongside capability scopes, and the key is shown once: query access needs scry plus read or write, and vector minting needs scry plus embed or write.

curl -X POST https://api.scry.io/v1/auth/signup \
  -H "Content-Type: application/json" \
  -d '{"email":"...","password":"..."}'

curl -X POST https://api.scry.io/v1/auth/signup \
  -H "Content-Type: application/json" \
  -d '{"action":"verify_email","token":"<token from the mailed #verify= link>"}'

curl -X POST https://api.scry.io/v1/auth/api-keys \
  -H "Authorization: Bearer <session_token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"agent","scopes":["scry","read"]}'
ScopePurpose
scryProduct scope; required alongside query and embedding capability scopes.
readRead capability; with scry, permits queries.
writeWrite capability; with scry, permits queries and vector minting.
billingBilling capability.
embedVector-minting capability; with scry, permits POST /v1/scry/embed.
rerankReranking capability.
ingestIngestion capability.
rateRate-management capability.
accountAccount-management capability.

Agent context

Over either surface the agent calls schema before writing SQL. On the MCP schema tool the default mode: "index" is the one-line catalog of relations; mode: "contract" returns the product contract (admission, market, computation, refusals, memory) with the corpus census and live statistics; mode: "full" returns every complete relation block, the discovery authority, larger than most tool-result pipes accept. Over HTTPS, GET /v1/scry/schema takes mode=index or mode=full and refuses any other value, contract included; with no mode it returns the full contracts of the primary-tier doors, the compact index of the depth relations, and the corpus census. The contract itself is GET /v1/scry/context there, and the live statistics are GET /v1/stats.

Optional local skill

Install the packaged skill when you want local query patterns and schema notes beside the agent.

npx --yes skills@latest add exopriors/skills

Related docs

Want even more out of Scry? Think there's something we can do? Reach out with a request or an offer at hi@scry.io.