The missing state for your AI tasks
Junkt is a tiny key/value store your agents reach over MCP. Give them durable memory between runs — remember a timestamp, a flag, or a counter with no database, no setup, and no glue code.
Free to start · Live in under 10 minutes · No credit card.
# Did the daily digest already run today? agent → get_value("cowork:daily-digest:last_run") junkt ← { exists: false } # No record. Run the task, then mark it done. agent → set_value("cowork:daily-digest:last_run", "ok") junkt ← { created: true, updated_at: "2026-05-31T09:00:00Z" }
Works with Claude, Claude Cowork, Claude Desktop, and any MCP-compatible client.
Tiny on purpose
Somewhere to stash a value, without standing up a database
Four tools, flat keys, string values. The surface stays small so your agent can use it the moment it hits the “I just need to remember this” wall.
- MCP-native
-
The remote MCP server is the product. Your agent calls
list_keys,get_value,set_value, anddelete_keydirectly. - Zero infrastructure
- No Redis, no Postgres, no schema for three keys. Sign up, add the connector, and your agent has durable state.
- Private by account
- Every key is scoped to your account and never visible to anyone else. Tokens are issued over OAuth and revocable any time.
- Namespace by convention
-
Flat keys up to 128 characters. Group them however you like —
cowork:digest:last_run— then filter by prefix. - Timestamps for free
-
Every write records
updated_at. For “when did this last run” checks, just set the key and read the time back. - Right-sized values
- Strings up to 2KB — a flag, a counter, a small JSON blob. This is state, not storage, and it stays fast because of it.
From signup to first tool call
Three steps, under ten minutes
-
1
Create your account
Sign up with an email and password, then confirm it in one click.
-
2
Add the connector
Paste your MCP URL into Claude. It registers itself and walks you through a quick OAuth approval — no client IDs to copy.
-
3
Read and write state
Your agent calls the tools straight away. The first one works on the first try.
The originating use case
“Did this scheduled task already run today?”
A scheduled agent wakes up and needs to know whether it already did its job. Without
somewhere to remember, it either runs twice or never. Junkt gives it a single key to
check — and an updated_at to reason about.
junkt ← list_keys(prefix: "cowork:") { total: 3, keys: [ { key: "cowork:daily-digest:last_run", updated_at: "2026-05-31T09:00:00Z", size: 2 }, { key: "cowork:weekly-report:last_run", ... }, { key: "cowork:inbox:cursor", ... } ] }
Start free
Everything you need to give your agents memory. No credit card to begin.
Free
$0 / forever
For prototyping agents and remembering a handful of values.
Give your AI tasks a memory
Durable state for your agents in a few minutes. Start free, no credit card.
Start storing state