Skip to content

For AI agents

A context vault your agents can read and write.

MyContext keeps what you've read in a shape a model can use: clean text, summaries, tags, highlights and a semantic index. An MCP server is on the way so agents like ChatGPT, Claude and Codex can plug straight in — and the REST API below already does everything it will, for anything that speaks plain HTTPS.

context vault · REST + JSON
# search the vault by meaning
curl "https://mycontext.work/api/public/v1/bookmarks" \
  --data-urlencode "q=pricing experiments after:2026-01-01" -G \
  -H "Authorization: Bearer kp_…"

# → { "bookmarks": [ { "id": "…", "title": "…",
#      "summary": "…", "tags": ["pricing", "experiments"],
#      "url": "…" } ] }

What an agent can do

Everything you can do in the app, minus the clicking.

The API is the same one the browser extension and the app's shortcuts use. There's no second-class “integration” surface — an agent gets Dex's full reading.

Search by meaning

One call runs the same hybrid search you use in the app: full text, semantic similarity and the query language (#tag, is:unread, after:, url:, -not). Results come back with Dex's summary and tags, so an agent can decide what to open without reading everything.

Read clean text

Opening an entry returns the readable article text, the summary, the tags, your note, reading progress and every highlight with its note. No scraping, no boilerplate — the version Dex already prepared.

Save on your behalf

Agents can file links, notes and text with tags and a list. Ask for processing and Dex reads it synchronously so the summary and tags are in the response; leave it off and the app catches up in the background.

Highlight and explain

Agents can mark passages and attach notes (labelled as AI-written so you can tell), and call the same grounded “Explain this” you use in the reader.

Show, don't tell

Three calls cover most of it.

save a link and have Dex read it now
curl -X POST https://mycontext.work/api/public/v1/bookmarks \
  -H "Authorization: Bearer kp_…" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/pricing-memo.pdf",
    "note": "Read this before Tuesday'\''s review",
    "tags": ["pricing", "q4"],
    "process": true
  }'
what an entry looks like
GET https://mycontext.work/api/public/v1/bookmarks/{id}
→ {
    "bookmark": {
      "title": "…", "url": "…", "summary": "…",
      "tags": ["…"], "note": "…",
      "text_content": "clean article text…",
      "word_count": 1840, "read_progress": 0.35,
      "highlights": [ { "text": "…", "note": "…" } ]
    }
  }
write a memory (JavaScript)
// an agent writing down what it learned, as a note
await fetch("https://mycontext.work/api/public/v1/bookmarks", {
  method: "POST",
  headers: { Authorization: `Bearer ${KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    title: "Decision: keep the free plan at 1,000 entries",
    text: "Agreed in the 25 Sep review. Reasons: …",
    tags: ["decisions", "pricing"],
  }),
});

API reference

Ten endpoints. One header.

Base URL https://mycontext.work/api/public/v1. Authenticate every call with Authorization: Bearer kp_…. Requests and responses are JSON; CORS is open so browser-side tools work too.

Public API endpoints
MethodPath
GET/me

Who this key belongs to: display name, email, entry count, lists and tags.

GET/bookmarks?q=…&limit=…

Hybrid search with the query language. `?url=` looks up whether a page is already saved.

POST/bookmarks

Save a `url` or `text`, with optional `title`, `note`, `tags`, `listId`, `process`.

GET/bookmarks/:id

Full entry: clean text, summary, tags, note, reading data and highlights.

PATCH/bookmarks/:id

`title`, `note`, `favourited`, `archived`, `read`, `addTags`, `listId`, `process: "crawl" | "enrich" | "all"`.

DELETE/bookmarks/:id

Remove an entry permanently.

GET · POST/bookmarks/:id/highlights

List or add highlights (`text`, `color`, `note`, `noteSource`). The same passage twice is one highlight.

PATCH · DELETE/highlights/:id

Recolour, annotate or remove a highlight.

POST/explain

Stream a grounded explanation of `text` from `bookmarkId` (`mode`: explain, simplify, context).

DELETE/me

Revoke the key this request was made with.

Signed-in users can also copy ready-made examples from Settings → API keys.

Patterns

What people build on it.

Research assistant

Search → open → cite. The agent answers from what you actually read and links back to the entry, instead of guessing from the open web.

Universal clipper

Anything that can call a URL can save: a Shortcut on your phone, a Slack bot, a cron job that files a weekly report. It lands in the same vault, read the same way.

Long-term memory

Let an agent write notes about decisions, preferences and things it learned. They're searchable by meaning next session — by the agent and by you.

Bring any model

MyContext doesn't care which model calls it. Dex does the reading and indexing once; whatever you run on top just asks.

Trust

Powerful for agents. Boring for you.

Access should be easy to grant and easier to take away.

  • A key acts as you, and only you

    Keys are created in Settings → API keys, scoped to your vault, and named so you know which agent holds which. Make one per agent.

  • Revoke in one click

    Delete a key and every request with it fails immediately. The extension uses the very same mechanism, so there's one place to look.

  • Machine-written is labelled

    Notes and titles written by an agent or by Dex carry an AI mark in the app, and never overwrite a title you typed yourself.

Questions

The builder's FAQ.

Is there an MCP server?

It's what we're building next. MCP is the native way for agents like ChatGPT, Claude and Codex to connect: your vault will appear as a set of tools they can search, read and write through, signed in as you. Until it ships, everything it will do is already possible through the REST API below — and the MCP server will be built on exactly these endpoints, so nothing you wire up today is wasted.

Do entries saved by an agent count towards my allowance?

Yes. An entry is an entry regardless of who saved it — that keeps the plan honest and the API simple.

Can I limit what an agent can see?

Today a key sees your whole vault, exactly as you do. Create a separate key per agent so you can revoke one without touching the others; finer-grained scopes are something we're considering.

Are there rate limits?

No published hard limit today; the API is meant for personal automation, not crawling. Processing calls (process: true) are the slow path because Dex reads the page before replying — use them when you need the summary right away, and let the background catch up otherwise.

Which model powers Dex, and can I use my own?

Dex uses commercial models through our own gateway; you don't need a key of your own and never see the provider. Your agents, on the other hand, can run on anything — they talk to MyContext, not to Dex's model.

“Dex, what does my research say about this?” — now your agent can ask too.

One vault, read once, open to you and to whatever you build. Create a key in Settings and you're calling it in a minute.