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"]}' | Scope | Purpose |
|---|---|
| scry | Product scope; required alongside query and embedding capability scopes. |
| read | Read capability; with scry, permits queries. |
| write | Write capability; with scry, permits queries and vector minting. |
| billing | Billing capability. |
| embed | Vector-minting capability; with scry, permits POST /v1/scry/embed. |
| rerank | Reranking capability. |
| ingest | Ingestion capability. |
| rate | Rate-management capability. |
| account | Account-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.