atento-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
You save far more links than you read. Read-later apps turn into graveyards, and bookmark managers ask you to organize things you never opened.
Atento is the opposite: a small, local-first inbox where every link is extracted, summarized, categorized and given an expiry date. Fresh items surface, stale ones are proposed for the bin, and nothing is ever deleted without you saying so.
It is built to be driven by your agent. The whole workflow runs over MCP, so Claude Code, Codex, Cursor or any MCP client can ingest, triage and sweep your links. A reference desktop app gives you the same inbox with a fast three-pane UI when you want to look at it yourself.
A lightweight, minimal alternative to mymind and Karakeep, with no account, no cloud and no server to run.
Install
MCP server and CLI (macOS and Linux)
# mise
mise use -g github:espetro/atento
# or the install script
curl -fsSL https://raw.githubusercontent.com/espetro/atento/main/install.sh | shYou get two self-contained commands (Node is bundled, nothing else to install): atento (CLI and local web UI) and atento-mcp, a shortcut for atento mcp (the MCP server over stdio, always included with the CLI).
Add it to your agent:
# Claude Code
claude mcp add atento -- atento mcp
# Codex
codex mcp add atento -- atento mcpAny other client, in its MCP config:
{ "mcpServers": { "atento": { "command": "atento", "args": ["mcp"] } } }Then ask your agent: "ingest my reading list, triage the inbox and tell me what needs a login".
Desktop app
Download Atento-desktop-<version>-<os>-<arch> from the latest release and open it. There is no setup dialog: the app starts its own local server, opens the inbox and shows its health in the footer status dot (green, orange or red, details in the dropdown).
macOS builds are not notarized yet, so the first launch needs xattr -dr com.apple.quarantine /Applications/Atento.app. On Windows, unzip Atento-desktop-<version>-windows-x64.zip and run Atento-Setup.exe (or Atento\bin\launcher.exe). Windows builds are experimental: they are built and smoke-tested in CI, not yet run by hand on a Windows machine.
Related MCP server: linkwarden-mcp
Quick start
atento import ~/Downloads/links.md # markdown, json, url list, Safari Reading List and Bookmarks.plist
atento run # ingest + extract + enrich, idempotent
atento overview # what is in the inbox, by state and host
atento triage --batch --filter 'status:inbox category:job' --action archive
atento sweep # dry-run: what expired and why
atento serve # the web UI on http://127.0.0.1:4173Enrichment needs any OpenAI-compatible endpoint (OPENAI_COMPAT_BASE_URL, OPENAI_COMPAT_API_KEY, ATENTO_MODEL). Importing and extraction work without one. No provider or model is hardcoded and no LLM runs outside packages/enrich.
What it does
Ingest from anywhere. Markdown, JSON, plain URL lists, Safari Reading List and Bookmarks, pasted text, remote gists, and a browser extension that captures the page from your own logged-in session. URLs are normalized and deduplicated, so re-importing is safe.
Extract the real content. Readable markdown through defuddle and Readability, yt-dlp for video (with a tiered transcript stage), headless browser profiles for sites behind a login, and a page snapshot taken when you open a link.
Enrich once per link. One structured-output call returns category, priority, a one-line "why it matters", read time and an expiry. Output is schema-validated and measured by a golden-set eval.
Expire, do not hoard. Per-category TTLs.
sweepproposes what went stale,prunehard-deletes only past your threshold and asks first,restorebrings anything back.Triage fast. Read now, schedule, archive or discard, one link or a filtered batch, from the CLI, the MCP tools or the UI.
Built for agents. 23 MCP tools with compact, token-shaped output, cursor-based deltas (
collections read enriched --since <cursor>) and exit codes an automation can branch on.Polite and resilient. Per-host rate limits and circuit breakers, durable job state in SQLite, nothing re-fetched needlessly.
Local-first. One SQLite file in
~/.atento. Your data stays on your machine.
Desktop app
The reference app is an Electrobun shell around the Svelte UI: inbox list, native preview panel with a persistent login per site, triage shortcuts, command palette, collections, and a floating assistant panel that talks to any ACP agent you already have (Claude Code, Codex and others) so you can triage by asking.
How it works
ingest → dedupe → extract → enrich → store → [ CLI | MCP | HTTP API | web UI ]Every stage is a plain async function over a Store interface. There is no agent in the pipeline, only at its edges. The CLI, the MCP server and the HTTP API are thin wrappers over the same core operations.
Path | What it owns |
| Domain types, pipeline stages, state machine, limits and breakers |
| SQLite store (drizzle, better-sqlite3), migrations |
| Ingest, content extraction, audio and video |
| The only place a model is called |
| Composition root shared by CLI, MCP and server |
|
|
| Svelte 5 + Tailwind web UI |
| Browser capture extension |
| Electrobun desktop shell |
| Background service lifecycle and scheduler |
Design notes live in docs/: capture, state machine, resilience, stealth browsing, media, offline cache.
Develop
mise install # node 24, pnpm 12, bun
mise run install
mise run validate # build + typecheck (turbo-cached)
mise run test
mise run dev # API + UI on http://localhost:4173Release flow: add a changeset with pnpm changeset, merge to main, merge the "Version Packages" PR. CI tags the release, builds the CLI tarballs and desktop apps and publishes the GitHub Release, whose notes come from CHANGELOG.md.
Roadmap
Windows: builds ship from 0.1.1 as experimental; the desktop shell needs a manual WebView2 check.
Signed and notarized macOS app.
npm packages for
npx atento-mcp.
License
Apache-2.0. Copyright 2026 Joaquin Terrasa and contributors.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Search, save, tag, and summarize the links in your Link Crypt bookmark library.
Private document cloud for MCP agents. Claim a link, then store and recall.
Save, organize and share your Purl links from any MCP client.
Local-first task manager: create, edit, and complete tasks, projects, and checklists via MCP.
Related MCP Servers
FlicenseNot gradedqualityFmaintenanceEnables interaction with a read-later and link sharing social feed app, allowing users to manage links, bookmarks, and share through web, API, and MCP.87-- AlicenseNot gradedqualityBmaintenanceMCP server for Linkwarden bookmarks providing read-first search and preserved content access with opt-in write, delete, and collection-delete tools, plus heuristic triage workflows.90 npm41 PyPI1MIT
- AlicenseAqualityCmaintenanceA local MCP server that gives saved bookmarks a lifecycle with time-based layers (pending, watching, kept, lapsed), so they get decided on instead of accumulating. It aggregates bookmarks from your browsers, drips them into a daily queue, and supports keep/watch/drop decisions, restore, and undo.740 npmMIT
- AlicenseAqualityBmaintenanceEnables MCP clients to search, organize, and read preserved article text from a Linkwarden bookmark manager, supporting both read and write operations with safety confirmations.2890 npmMIT