delvry-dev / delvry / README.md main
version1.0 buildpassing licenseMIT mcpstreamable-http primitivecontext-graph

The missing primitive: how AI agents talk to humans for context.

Your agents query a structured, provenance-aware graph of what humans in your org know. When the graph has a gap, Delvry harvests it from the right humans and writes the answer back. Works with Claude Code, Cursor, Cline, or any MCP-speaking agent.

One MCP server. A graph that fills itself in. # agents query, harvest, and remember — provenance and decay built in.

Or programmatically — see below.

bash · agent signup
$ curl -X POST https://delvry.ai/v1/accounts/signup     -H "content-type: application/json"     -d '{"email":"agent@example.com","account_name":"My project"}'

{ "account_id": "...", "first_api_key": "delvry_sk_...", "password_generated": true }

#Overview

Delvry is the I/O and memory layer between AI agents and human knowledge. Agents query a structured graph of claims — typed assertions about entities (policies, people, products) with confidence, provenance, and decay. When the graph has the answer, the agent gets it back in milliseconds. When it doesn't, Delvry harvests the gap from the right humans, writes the answer back, and the next agent finds it waiting.

Three surfaces: the MCP server (the only thing your agents talk to), /app (operator dashboard — view the graph, approve harvests, audit provenance), and the harvest form humans see when an agent asks them something. Surveys were the wedge. The graph is the product.

Delivery is your call: Delvry emails each person their link by default, or pass notify:false and the API hands you the per-recipient links to route however you like — Slack, Teams, SMS, a doc. The graph and provenance work the same either way.

Built for the forward-deployed engineer, the solutions architect, the AI operator dropped into a business they don't know yet — whose real job is to get the tribal knowledge out of a dozen people's heads (clinical ops, RCM, sales, support) and into something an agent can use. Point Delvry at the domain, it asks the right people the right questions, reconciles where they disagree, and converges the whole team on one canonical source of truth — autonomously. Stop running interview marathons and pasting notes into a doc.

#What it does

read humans
delvry_query

Semantic + structured search over claims. Returns confidence, decay class, provenance, and any conflicts the graph has surfaced across recipients.

ask humans
delvry_ask_humans

Checks the graph first. If there's a confidence gap, fires an async harvest to the right stakeholders. Returns when humans respond — agent subscribes and keeps working.

remember humans
provenance · decay · conflicts

Cross-thread memory with audit trail. The marginal cost of context goes to zero as the graph saturates. Every claim knows who said it, when, and how fast it goes stale.

#Under the hood

The graph doesn't just store what people said — it reasons about how much to trust it, asks the right human next, and refuses to guess when it doesn't know. 46 MCP tools; here's the part that makes the answers worth acting on.

Calibrated confidence
delvry_why

Confidence is learned, not asserted. Empirical-Bayes source reliability, corroboration, and a decay half-life fit per claim type blend into one number — and delvry_why shows the receipts.

Confirm, don't author
delvry_list_proposals

Ingest writes proposals, not facts. A human approves or rejects before anything lands in the graph. Agents never silently overwrite what your team believes.

Hybrid retrieval
delvry_query

Vector search and full-text search, fused by reciprocal rank fusion. Semantic recall with keyword precision — and a relevance floor that returns "not known" instead of a confident wrong answer.

Canonical glossary
delvry_glossary

One source-of-truth value per term, the rival definitions it beat, and a live alignment metric: how much of your domain is settled vs. still contested across the team.

Asks the right human next
delvry_next_questions

Value-of-information scheduling picks the highest-leverage gap and routes it to the cheapest reliable respondent. The graph closes its biggest uncertainties first.

Conflict, surfaced
delvry_query

When two people disagree, the graph flags it instead of picking a winner — opposing stances collapse onto a shared claim, ready for a human to resolve in the dashboard.

Converge until aligned
delvry_converge

Point it at a list of terms and the people who own them. It harvests every definition and re-asks — the moment each round is answered — until the group agrees. It settles agreement and reliability-weighted majorities itself, and pings your agent (never a dashboard operator) only for genuine ties. A canonical source of truth, built by the loop.

Ingest at any scale
delvry_ingest · SSE

Drop in a transcript, a doc, a Slack export — extraction runs off the request path on Cloudflare Queues, and a live event stream (Durable Objects) pushes harvest progress so agents never poll.

Cold-start a domain
delvry_converge_bootstrap

Dropped into a business you don't know yet? Point it at a domain — or paste an ops doc — and it proposes which terms to align and who on the team to ask. You confirm; the loop harvests the tribal knowledge out of their heads into a canonical source of truth.

#Using Delvry from Claude Code

Drop a .mcp.json in your project root. Claude Code picks it up on the next session.

json · .mcp.json
{
  "mcpServers": {
    "delvry": {
      "url": "https://delvry.ai/mcp",
      "headers": { "Authorization": "Bearer $DELVRY_API_KEY" }
    }
  }
}

Claude Code is building a Shopify refund integration. It needs to know what counts as fraudulent. Instead of guessing or interrupting you, it calls delvry_query("fraud criteria for refunds"). If the graph already knows, Claude Code gets back a structured claim with confidence and sources. If not, delvry_ask_humans pings the right stakeholders; the agent subscribes for an update and continues working on independent parts. Hours later, the answer comes back with provenance — and stays in the graph for next time.

Get an API key →

#Install

One paste, any Claude. The MCP server bootstraps its own API key on the agent's first delvry_signup call — no manual key-swap.

One line. Claude Code runs the published MCP server via npx — no clone, no build.

bash · one line
$ claude mcp add delvry -e DELVRY_API_KEY=$DELVRY_API_KEY -- npx -y @delvry/mcp

No key yet? Drop the -e flag and the agent calls delvry_signup on first use; the key is saved to ~/.delvry/config.json.

Agents: machine-readable install at /llms.txt. Protocol: /protocol/openapi.yaml (draft OpenAPI spec). Skill bundle: /skill.md.

#Survey schema

Nine question types: short_text, long_text, single_choice, multi_choice, number, yes_no, scale, ranking, date. Plus boolean toggles, Likert scales, click-to-rank, and date inputs. Branching via show_if. Pages auto-skip when every question is hidden. Required fields, min/max, default values, and per-question validation are all declared in the DSL.

json · retro.json 2 pages · 4 questions
{
  "version": "1",
  "title": "Q1 retro",
  "pages": [
    { "questions": [
      {
        "id": "role",
        "type": "single_choice",
        "prompt": "What's your role?",
        "required": true,
        "options": ["Eng", "Design", "PM"]
      }
    ] }
  ]
}

#Pricing

Live machine-readable catalog: GET /v1/plans.

#Changelog

# shipped milestones · newest first

v1.20 2026-06-09 Cold-start onboarding · delvry_suggest_terms + delvry_converge_bootstrap propose a convergence campaign (terms + the right people) from a domain or an ops doc · deterministic typed-slot extraction (clean answers always land) · the glossary + VoI queue are now incrementally materialized (flat read cost at scale).
v1.19 2026-06-09 Convergence gets smarter · reliability-weighted majority (a trusted expert isn't overruled by weak voices), configurable quorum, split-a-conflated-term resolution, event-driven advance (the moment answers land), LLM-written clarifying questions, and a graph.convergence_needs_decision event to subscribe instead of poll.
v1.18 2026-06-09 Convergence closes its own loop · auto-canonizes on group agreement or a clear majority, advances a term only once its round is answered, and escalates genuine deadlocks to the calling agent (delvry_converge_resolve) — no dashboard operator in the critical path.
v1.17 2026-06-09 Autonomous convergence · delvry_converge harvests a definition per term, then re-asks the group round after round until the domain is aligned · delvry_converge_status.
v1.16 2026-06-09 Canonical glossary · delvry_glossary with one source-of-truth value per term, rival definitions, and a live alignment metric · semantic-equivalence corroboration.
v1.15 2026-06-08 Epistemic engine · calibrated confidence (delvry_why), value-of-information scheduling (delvry_next_questions), and confirm-don't-author proposals (delvry_list_proposals).
v1.14 2026-06-09 Hybrid retrieval (vector + FTS5, RRF-fused) · async ingest via Queues · live harvest stream over Durable Objects · first-class MCP (resources, prompts, annotations).
v1.13 2026-05-12 Context graph GA · delvry_query + delvry_ask_humans · claims with decay, conflicts, and provenance.
v1.12 2026-05-03 Dashboard Account Plan section with usage meters · real pricing on marketing.
v1.11 2026-05-02 Mobile optimization across marketing, dashboard, and recipient SPA.
v1.10 2026-05-01 Resend email integration · invite + nudge + bounce webhook.
v1.9 2026-05-01 Receipt corpus persistence · tier-gated, account-scoped retrieval API, delvry_plan_get MCP tool.
v1.8 2026-04-30 Iterative agentic QA · Threads, Inquiries, Knowledge Receipts with provenance + conflict detection.

#FAQ

How is this different from MCP servers I already have?

MCP servers connect agents to systems (Stripe, Slack, your DB). Delvry connects agents to humans — the people who hold context that isn't written down anywhere. It's a different primitive: not retrieval, but harvest.

Does it work with Cursor / Cline / [other agent]?

Yes. Delvry is a Streamable HTTP MCP server. Any MCP-speaking client works. Claude Code is the canonical example because we test against it; Cursor / Cline / custom agents work identically.

What is a "claim"?

A structured assertion about an entity (refund policy, founder intent, the support team) with a confidence score (0–1), a decay class (principle / policy / process / tactical / transient), and provenance — who said it, when, with what supporting quote.

Why a graph? Why not just embeddings?

Embeddings give you similarity. Claims give you assertions with confidence and provenance. We use embeddings for retrieval inside the graph — the graph itself is the queryable layer of structured knowledge.

What's the stack?

Cloudflare Workers (edge), D1 (SQLite for entities, claims, sources), Vectorize (semantic search), Workers AI bge-base for embeddings, and Anthropic Claude Haiku for claim extraction. Hono on the routing layer.

Why not just have the agent ask in chat?

Chat is great for one person, one question, one time. Once you need an answer that persists, gets cited, decays, and is reused by the next agent — you need a graph. Delvry is that graph.

What's the recipient experience like?

Mobile-first form, no login, autosaved on every keystroke, branded with your accent color and logo. Preview an example →

How is data stored?

Cloudflare D1 (SQLite-on-the-edge) and KV in iad-1 (us-east) by default. Encrypted at rest by Cloudflare's storage layer; TLS terminated at the edge. Recipient PII is purged 90 days after survey close; claim retention is tier-dependent (see /v1/plans). Full details: /security.

#Delvry vs. alternatives

# why not just use a form builder, Slack, or roll your own?

feature delvry typeform slack DM DIY (email + form)
authored by an agent (no human form-builder) yes no n/a no
multi-round iterative threads yes no manual no
structured Knowledge Receipt with provenance yes no no no
conflict surfacing across recipients yes no no no
mobile-first recipient UX yes yes yes depends
MCP-native tooling yes no no no
no login wall for recipients yes yes slack login depends
daily-cap email throttling per tier yes no n/a DIY

#Get started

$ curl -X POST https://delvry.ai/v1/accounts/signup # 30 seconds to your first survey. free forever for hobby use.

Built by David, solo founder. Delvry (rhymes with "deliver-y") is bootstrapped and founder-handled — email hello@delvry.ai and you'll reach the person who wrote the code.

© 2026 Delvry · privacy · terms · security · brand · protocol · llms.txt · github · made for agents, by humans