MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Record and later find what an agent-deck session was for, across harnesses, and hand a past conversation to the current one.
$ npx skills add asheshgoplani/agent-deck --skill agent-deck-recall -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install asheshgoplani/agent-deck agent-deck-recall --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/asheshgoplani/agent-deck.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/agent-deck/recall .claude/skills/agent-deck-recall && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "agent-deck-recall" agent skill from https://github.com/asheshgoplani/agent-deck/tree/main/skills/agent-deck/recall into .claude/skills/agent-deck-recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-deck-recall", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/asheshgoplani/agent-deck/tree/main/skills/agent-deck/recallType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add asheshgoplani/agent-deck --skill agent-deck-recall -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install asheshgoplani/agent-deck agent-deck-recall --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/asheshgoplani/agent-deck.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/agent-deck/recall .agents/skills/agent-deck-recall && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "agent-deck-recall" agent skill from https://github.com/asheshgoplani/agent-deck/tree/main/skills/agent-deck/recall into .agents/skills/agent-deck-recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-deck-recall", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add asheshgoplani/agent-deck --skill agent-deck-recall -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install asheshgoplani/agent-deck agent-deck-recall --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/asheshgoplani/agent-deck.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/agent-deck/recall .cursor/skills/agent-deck-recall && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "agent-deck-recall" agent skill from https://github.com/asheshgoplani/agent-deck/tree/main/skills/agent-deck/recall into .cursor/skills/agent-deck-recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-deck-recall", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/asheshgoplani/agent-deck.git --path skills/agent-deck/recall--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add asheshgoplani/agent-deck --skill agent-deck-recall -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install asheshgoplani/agent-deck agent-deck-recall --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/asheshgoplani/agent-deck.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/agent-deck/recall .gemini/skills/agent-deck-recall && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "agent-deck-recall" agent skill from https://github.com/asheshgoplani/agent-deck/tree/main/skills/agent-deck/recall into .gemini/skills/agent-deck-recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-deck-recall", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install asheshgoplani/agent-deck agent-deck-recallInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add asheshgoplani/agent-deck --skill agent-deck-recall -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/asheshgoplani/agent-deck.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/agent-deck/recall .github/skills/agent-deck-recall && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "agent-deck-recall" agent skill from https://github.com/asheshgoplani/agent-deck/tree/main/skills/agent-deck/recall into .github/skills/agent-deck-recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-deck-recall", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add asheshgoplani/agent-deck --skill agent-deck-recall -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install asheshgoplani/agent-deck agent-deck-recall --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/asheshgoplani/agent-deck.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/agent-deck/recall .opencode/skills/agent-deck-recall && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "agent-deck-recall" agent skill from https://github.com/asheshgoplani/agent-deck/tree/main/skills/agent-deck/recall into .opencode/skills/agent-deck-recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-deck-recall", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
agent-deck-recallRecord and later find what an agent-deck session was for, across harnesses, and hand a past conversation to the current one.
Agent Deck Recall is an agent skill from asheshgoplani/agent-deck. Record and later find what an agent-deck session was for, across harnesses, and hand a past conversation to the current one. Use when the user says "remember what this session was for", "tag this session", "annotate", "mark the outcome", "ticket for this session", "find the session where we...", "what did we decide about", "which Codex/pi/Gemini session did X", "bring that conversation into this session", "search the other machine's sessions", or wants to search past conversations. Available: hints and tags…
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering MCP servers. It works with Model Context Protocol. The repository describes itself as: Terminal session manager for AI coding agents. One TUI for Claude, Gemini, OpenCode, Codex, and more. The licence is MIT.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 34cf369. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and toml).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Agent Deck Recall loads about 3.4k tokens when it runs. Until then it costs about 257 tokens; SKILL.md has 1,320 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from asheshgoplani/agent-deck at commit 34cf369, republished under its MIT licence (© asheshgoplani). 1,320 words, ~3,387 tokens.
.claude/skills/agent-deck-recall/SKILL.md (or your agent's skills folder).Recall is agent-deck's memory of what every session was for and what
happened in it. Human intent (hints, tags) lives in the profile's state.db
and survives everything; the transcript index (recall.db) is disposable:
delete it, recall rebuild, nothing typed is lost. Full design:
docs/recall.md in the repo.
Hints are single-valued per key (setting a key again replaces it). Tags are a
set. Well-known keys: purpose, ticket, why, decision, outcome,
note, parent; any identifier-shaped key works.
add and launch)agent-deck add . -c claude --hint purpose="fix flaky auth test" --ticket SB-412 --tag auth --tag flaky --why "3rd regression"
agent-deck launch . -c claude --ticket SB-412 -m "Fix the flaky auth test"launch derives purpose from the first line of -m and both commands
derive parent=<parent id> for a child; an explicit --hint purpose= wins.conductor setup <name> records purpose=conductor <name>.--json echoes hints and tags.session annotate)agent-deck session annotate <id> --decision "root cause was clock skew" --outcome worked --tag clock-skew
agent-deck session annotate <id> --set-hint ticket=SB-413 --remove-tag flaky --unset why
agent-deck session annotate --self --outcome worked # your own session (AGENTDECK_INSTANCE_ID)
agent-deck session annotate --self --note-stdin < summary.md # free-text note, 8 KiB cap
agent-deck session annotate <id> --json # read: hints, tags, harness linksEnd of task habit: before the completion sentinel, run
agent-deck session annotate --self --outcome <worked|failed|partial> --decision "<one line>"
so the next agent can find what you concluded.
agent-deck remote <host> session annotate <id> --outcome workedRuns on the remote and writes the remote's own state.db. Remote hints are never copied locally; read them through the same forwarded command.
[recall]
enabled = false # reserved for the transcript index; hints work regardlessNeeds [recall] enabled = true in config.toml (every command exits 2 with a
clear message otherwise). One index for every profile on the machine and
every harness: Claude (all profiles), Codex, pi, Gemini, OpenCode, Hermes.
--profile narrows Claude to one account, --harness to one harness.
Every interactive sweep runs inside the command that asked for it and ends
with it; the Claude Stop hook, session stop, worker_done and the
daemon's turn-end edge queue the transcript that just moved (the Stop
hook only appends that line; the async SessionEnd hook also indexes its
own file within 150 ms), and every search drains the queue first, so a
conversation is searchable the moment you look for it. The one exception:
agent-deck notify-daemon (the always-on daemon, every machine including
remotes) runs a single background initial backfill the first time it
sees recall enabled with an empty index or a never-finished pass
([recall] backfill_on_enable = true, the default) — see "Enabling recall
for the first time" below.
Turning [recall] enabled = true on no longer leaves the index empty: the
notify-daemon runs one throttled background backfill on its own, the first
time it sees an empty index or a marker saying the pass never finished
([recall] backfill_on_enable = true, default). It never refuses under
load like the manual command below does — it shrinks its chunks and sleeps
longer instead, so a machine sitting above max_loadavg still finishes,
just slower. Progress: agent-deck recall status --json's
initial_backfill (state: pending/running/done, done_at,
sessions_done, sessions_pending). Nothing to do if the daemon is not
running (a machine that only ever uses the CLI interactively) — run
recall backfill by hand there instead.
agent-deck recall backfill # once; resumable; refuses while a session is busy (--force)
agent-deck recall search "clock skew" --since 30d --profile work --json
agent-deck recall search "retry budget" --harness codex --json
agent-deck recall search SB-412 --hint ticket=SB-412 --phrase # hint filters read state.db live
agent-deck recall sessions --tag auth --limit 10 --json
agent-deck recall sessions --harness hermes --jsonSB-412 and handle_sess stay whole;
--phrase verifies the literal phrase in the hits' bodies and says how
many bodies it read; a hit whose matching body is clipped (8 KiB tier)
is unverified (clipped body), never NOT found. Filters (--harness,
--profile, --since, --project, --session, --role) narrow the
body candidates before the 5,000-message ceiling (newest first), so a
filtered search on a common term is complete. The output (and index
in --json) says when the bounded pre-search sweep left files behind;
run recall sweep then.harness, profile, native_id (the harness's own
conversation id), deck_id when a registered session owns the
conversation, missing when the file is gone (the text is still
indexed), sidechain for a subagent transcript.recall open starts a session under its own profile.recall showagent-deck recall show <session> --tier card # counters, hints, tags, tools, files, no messages
agent-deck recall show <session> --turns 40 --json # excerpt: the first 40 decoded messages
agent-deck recall show <session> --tier raw # every message<session> = the #n from a listing, a harness conversation id or a
unique prefix, or an agent-deck session id. Messages carry class
(prompt, assist, compact_summary, ...); a Codex compaction summary
supersedes the messages before it (they stay readable and searchable).
recall openagent-deck recall open <session> [--dry-run] # start the bound deck session (any harness), or re-register a Claude transcript (add --resume-session)Codex, pi, Gemini, OpenCode and Hermes conversations that no registered
session owns are searchable, not resumable: open exits 2 and names the
recall show command instead.
session annotate (phase 1, above) is how a found session gets a
decision, an outcome or a ticket; the hint is searchable immediately
(--hint/--tag join state.db live) and reaches the ranking feed on the
next sweep.
agent-deck recall status --json # sizes, sources by state, by_harness, queued hook lines, roots, initial_backfill
agent-deck recall sweep [--full] [--json] # drains recall/queue.jsonl first, then what changed
agent-deck recall gc | rebuildExit codes: 2 recall off / not found, 3 load-gated or locked.
G in the TUI opens the same search (/ stays the local title filter;
Tab switches): typing = recall search, the preview = recall show #n,
Enter = recall open. It never parses on a keypress; a bounded sweep
refreshes the index after the overlay opens and a staleness line says
what it deferred, with catch-up passes one second apart through the load
gate. With [recall] enabled = false the key falls back to the local
title search and a notice inside that overlay says so (or quotes the
open error when the index could not be opened).
recall search "<what you remember>" --harness <h> --json, pick a hit,
recall show <id> --tier card, then --turns 40 for the excerpt, or
recall context <id> --tier brief --into current to have it in your own
prompt; session annotate <deck id> --decision ... on what you learned;
recall open <id> to continue a Claude conversation in a new session.
recall contextagent-deck recall context <session> --tier card # print ~60 tokens: title, ids, project, counters, hints
agent-deck recall context <session> --tier brief # + derived lines (lost_time, session_kind, outcome) and touched files
agent-deck recall context <session> --budget 4000 # excerpt: brief + the newest turns that fit the budget (default)
agent-deck recall context <session> --tier brief --into current # deliver it to YOUR session as a prompt (any harness)
agent-deck recall context <session> --into <id|title> # deliver it to another session--into current needs AGENTDECK_INSTANCE_ID, which every session
agent-deck starts has; from Codex, pi, Gemini or Claude alike the
text lands in your prompt through session send. Outside a session
it exits 2: name the target with --into <id>. An --ssh target is
refused (exit 2) unless [recall] remote_cards = true: the text
would cross SSH as keystrokes.card first; excerpt
only when you need the turns.brief (exit 2); read it with remote <host> recall show <id>.recall enrichEvery sweep classifies what it indexed ("where did we lose time",
session kind, outcome; rules in rules.json, shared with distill.py);
recall show and recall context print the lines, and one marked
[stale: session changed since; run 'agent-deck recall enrich'] is
from before the session's last change. agent-deck recall enrich [--json] drains what a budgeted sweep left and rewrites every stale
line (exit 3 while a session is busy, like sweep). --cost-class llm is never run automatically.
The outcome line is a guess (failed?, abandoned?, unknown)
unless someone ran session annotate --outcome; annotate and it
becomes certain on the next drain.
agent-deck recall search "retry budget" --remote lab --json # federated: the remote searches its own index; hits labelled remote lab
agent-deck recall search "retry budget" --all-remotes --json # every configured remote, one SSH round trip each
agent-deck remote lab recall show <id> --tier card --json # read one on the remote (search, sessions, show, context, export, status forward)
agent-deck remote <host> session annotate <id> --outcome worked # hints: run on the remote, written there
agent-deck recall pull lab # card sync, only with [recall] remote_cards = true on both ends{error, remote, remote_version} in remotes[]
under --json. Read remotes[].error before trusting a merged
answer.--into, --remote and every write verb are refused before SSH on
the forwarded form.card from <host_uid> (no messages here)
in every listing; they carry titles, hints, tags, a 200-character
preview and the derived lines, never bodies or paths.agent-deck recall mcpagent-deck mcp attach <session> recall && agent-deck session restart <session> # listed by mcp list while [recall] enabled = trueTools: recall_search (query, harness, profile, project, since,
session, hint, tag, role, phrase, limit), recall_show (session, tier,
turns), recall_context (session, tier, budget). Same answers as the
--json CLI, which stays the fallback for a harness without MCP.
a (annotate the focused session) and R (recall into the
current session): use session annotate and recall context --into.recall fetch <host> <session> --raw: transcript bytes never cross SSH.session search keeps its substring semantics and is not an alias for any of these.
© asheshgoplani, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/agent-deck/recall of asheshgoplani/agent-deck.
Open the folder on GitHubat commit 34cf369
Agent Deck Recall next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Agent Deck Recall this skillasheshgoplani/agent-deck | 1k | — | ~3.4k | Automated safety check: Pass | MIT | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 5 repos | ~1.2k | Automated safety check: Pass | MIT | |
| MCP Integration for Pluginsanthropics/claude-plugins-official | 38k | 11 repos | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Crush Configurationcharmbracelet/crush | 29k | — | ~3.7k | Automated safety check: Pass | Custom licence | |
| Context Mode Output Sandboxmksglu/context-mode | 26k | — | ~4.1k | Automated safety check: Pass | Custom licence |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
charmbracelet/crush
Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.
mksglu/context-mode
Routes large command, file, API and browser output through context-mode tools so only the needed result enters the agent's context, instead of dumping it via Bash.
warpdotdev/warp
Migrates the compatible subset of settings and global file-based MCP servers from the Warp desktop app into Warp Agent CLI without exposing credentials or state.
asheshgoplani/agent-deck
agent-deck, the terminal session manager for AI coding agents.
asheshgoplani/agent-deck
Run a fully local agent-deck retrospective over the user's own transcripts, Recall index and logs.
asheshgoplani/agent-deck
Share Claude Code sessions between developers. An agent skill from asheshgoplani/agent-deck.
asheshgoplani/agent-deck
Reproduce agent-deck bugs from an issue, transcript excerpt, or description in an isolated environment, and prove fixes with the same reproduction and a regression test.
asheshgoplani/agent-deck
Fan out a fleet of independent agent-deck child sessions from inside a session and check their progress non-blockingly.
asheshgoplani/agent-deck
Guide for creating agent-deck watchers conversationally. An agent skill from asheshgoplani/agent-deck.
Works with
Categories
Record and later find what an agent-deck session was for, across harnesses, and hand a past conversation to the current one. Agent Deck Recall is an agent skill from asheshgoplani/agent-deck. Record and later find what an agent-deck session was for, across harnesses, and hand a past conversation to the current one.
Agent Deck Recall fits situations like: the user says remember what this session was for; tag this session; mark the outcome; ticket for this session.
Run `npx skills add asheshgoplani/agent-deck --skill agent-deck-recall -a claude-code`. Or copy the skill folder (skills/agent-deck/recall in asheshgoplani/agent-deck) into .claude/skills/agent-deck-recall in your project. Claude Code loads it when a task matches its description.
Run `npx skills add asheshgoplani/agent-deck --skill agent-deck-recall -a codex`. Or copy the skill folder (skills/agent-deck/recall in asheshgoplani/agent-deck) into .agents/skills/agent-deck-recall in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add asheshgoplani/agent-deck --skill agent-deck-recall -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agent-deck-recall, .gemini/skills/agent-deck-recall, .github/skills/agent-deck-recall and .opencode/skills/agent-deck-recall in your project.
SKILL.md names no scripts, command-line tools or credentials: Agent Deck Recall is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Agent Deck Recall is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Agent Deck Recall: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MCP Integration for Plugins (anthropics/claude-plugins-official, 38k stars) and Crush Configuration (charmbracelet/crush, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
asheshgoplani (a GitHub user) maintains it in asheshgoplani/agent-deck, which has 1,043 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 5, 2026.
Source: asheshgoplani/agent-deck on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.