sortwell
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sortwell capture: I still owe Priya an introduction"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
sortwell
An inbox with judgment.
You paste something. It decides what kind of thing it is, which project it belongs to, whether it needs you, and whether you already have it. Then it files it. Your text is stored exactly as you wrote it.
The deciding is done by Jev, an evaluation model that answers typed questions with probabilities and writes no text at all. That is the point: it sorts your notes, it cannot rewrite them.
What it does
Four tools over MCP.
tool | what it does |
| files one item: decides kind, project, urgency, and duplicate, in one request |
| the few things that matter today, ranked, plus projects gone quiet |
| a project finishes, an area is ongoing |
| takes an item off the list; nothing is deleted |
Every item is labelled one of task, decision, project-update, reference, personal-follow-up or ignore, and given an action of now, scheduled, read-later or none.
Related MCP server: big-brain
A real run
A seven line standup transcript, captured one line at a time against three projects, live:
ok ignore inbox thanks everyone for making the time
ok decision Warehouse rollout nightly build moves to 06:15 UTC
ok task Hiring an analyst send the job advert by Thursday
ok project-update Warehouse rollout R2 connector done, previews last
ok reference Reading that piece on evaluation models
ok personal-follow-up inbox I still owe Priya an introduction
DUP (0.96) Hiring an analyst can someone get the job ad overKind 6/6. The duplicate caught at 0.96. 424 ms per capture. The reworded repeat of the job advert line was filed as a duplicate rather than a second task, so it never reached the list.
Then the shortlist put I still owe Priya an introduction, I keep forgetting at the top, above both project items. The pleasantry and the duplicate were already gone.
One label of mine was wrong, not the model's: I expected the article link to sit in the inbox and it went to the Reading area, whose scope says "articles worth reading at some point". It was right.
What the eval found
evals/ holds a claude plugin eval suite, and its result is worth knowing before you build anything like this.
Given the tools and a skill telling it to use them, the agent called capture zero times in four runs. Handed a transcript and asked to file it, it wrote its own tidy summary instead. Not blocked, no error, just never reached for. The same thing happened with a sister project, so it is a pattern, not a fluke.
The lesson: an MCP server is not a behaviour change. Tools sitting there, even with a skill, do not reliably get used. The SessionStart hook works because it runs whether or not the model decides to look. Treat the tools as the thing that does the work and the hook as the thing that makes it happen.
Install
Needs Node 22 or newer and a TypeSafe API key. Not published to npm; clone it.
git clone https://github.com/Dharundp6/jev-sortwell && cd jev-sortwell
npm install && npm run build
export TYPESAFE_API_KEY=...Try it without any client:
node dist/cli.js project project "Hiring an analyst" -- "recruiting one analyst: advert, screening, interviews, offer"
node dist/cli.js capture "Dharun to send the job advert to the recruiter by Thursday"
node dist/cli.js shortlistAs a Claude Code plugin, from the repo root:
claude plugin marketplace add Dharundp6/jev-sortwell
claude plugin install sortwell@sortwellOr wire the server into any MCP client:
{
"mcpServers": {
"sortwell": {
"command": "node",
"args": ["/absolute/path/to/jev-sortwell/dist/cli.js"],
"env": { "TYPESAFE_API_KEY": "..." }
}
}
}How it decides
One request per capture, four questions answered in parallel: kind, project, action, duplicate. Jev is an evaluation model, so all four come back as probabilities and code does the rest.
Two thresholds, both exported constants rather than hidden numbers. Routing needs 0.45 or the item stays in the inbox, because a wrong home is worse than no home. A duplicate needs 0.70 and a specific item it duplicates, because both questions have to agree.
Ranking is the safe use of a probability. Being ranked third instead of second costs nothing, which is not true of being deleted.
Where things are kept
Two append-only JSONL files in ~/.sortwell, override with SORTWELL_DIR. Nothing is rewritten and nothing is deleted: marking an item done appends a new version and the old line stays. A damaged line is skipped and counted, never removed.
What it will never do
Never rewrite your text. Items are stored verbatim. Jev cannot generate text, so this is structural rather than a promise.
Never delete.
mark_doneandcloseappend; the file only grows.Never guess a home. Below the routing threshold it says inbox.
Never fail closed. No key, or a scorer that errors, and
shortlistreturns everything unranked with a line saying why.
License
MIT
Available Tools
4 toolsadd_projectAdd a project or areaA
Add a project or an area so captured items have somewhere to go. A project finishes; an area is ongoing. The scope line is what routing is judged against, so write it as a plain description of what belongs here rather than a title.
Inputs: name (required), scope (required), shelf (required).
captureCapture an itemA
Save something the user wants kept: a note, a link, an email, a line from a meeting, anything. Call it once per distinct item; paste a transcript one item at a time rather than all at once. It decides for itself what kind of thing the item is, which of the user's projects it belongs to, whether it needs attention, and whether they already have it, then files it. The text is stored exactly as given and never rewritten. You do not need to classify anything yourself, and you should not ask the user which project it belongs to.
Inputs: text (required), source.
mark_doneMark an item doneA
Mark an item finished so it leaves the shortlist. Nothing is deleted.
Inputs: id (required).
shortlistWhat matters todayA
The few things that matter today, ranked out of everything still open, with any projects that have gone quiet. Call it when the user asks what they should be doing, what is outstanding, or at the start of a working session. Takes no arguments.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: capture saves items, shortlist shows priorities, add_project creates routing targets, and mark_done changes item state. No two tools could plausibly be confused for the same operation.
All tool names are lowercase imperative verbs, with compound names using underscores (add_project, mark_done). The naming pattern is uniform and predictable across the set.
Four tools cover the full capture-to-completion loop without redundancy. The count is well-matched to the server's focused personal-information-management purpose.
The core workflow (capture, route, shortlist, mark done) is fully covered. A minor gap is the lack of a way to browse or search all captured items that fall off the shortlist, but this is workable for the stated use case.
Maintenance
Related MCP Connectors
Brain dump, routines, task planning, focus, and instant thought retrieval
Personal memory layer: files, notes, messages, tasks and email, semantically indexed.
Your unified inbox — everything that reaches you, understood and actionable from your AI assistant.
Markdown notes in folders, with files, that your AI assistant can read, write and organise.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceTurns an LLM agent into a personal planner by providing atomic context (roles, goals, decision matrix) and routing classified items to Obsidian, with optional projection to Google Calendar and Tasks.Apache 2.0
- AlicenseAqualityBmaintenanceEnables AI assistants to read and write to a personal knowledge vault of markdown notes, projects, and tasks, with tooling for search, capture, daily logs, and project management across different AI tools.2349 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to capture, search, update, and delete notes in a local Markdown vault with automatic categorization and tagging, making knowledge management seamless.9 npm1MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables personal AI agents to triage inbox items by classifying their actionability, effort duration, and urgency, producing a prioritized queue with elastic recommendations. It plugs into MCP-compliant clients such as Claude Desktop and Cursor to protect focus and reduce attention fragmentation.MIT