Skip to main content

Agent Skill

A packaged Agent Skill that teaches a coding assistant to write neva correctly — the same material as this site, reorganised for a model rather than a reader.

Download neva-skill.zip

Source: skill/neva.

Why you might want it

Assistants are confidently wrong about MCP in Rust, and for a structural reason: MCP 2026-07-28 broke compatibility with everything before it, while nearly all the MCP material a model has seen — including every other SDK — describes the previous generation. So the failure mode is not a forgotten method name. It is an assistant writing an initialize handshake, reaching for ping, opening an SSE GET stream, or treating ctx.elicit as a plain await in a handler that charges a card.

The skill front-loads exactly those traps, then routes to detail on demand.

What is in it

FileCovers
SKILL.mdEstablishing the version and profile, the non-negotiables, minimal server and client, routing
references/server.mdTools, prompts, resources, schemas, argument names, content types, DI, middleware, logging, subscriptions
references/client.mdConnecting, calling, structured results, batching, subscribing, answering input requests, tasks
references/mrtr.mdThe re-run model, memo / once / on_commit, elicitation modes, tasks
references/http.mdTransports, TLS, JWT/OAuth, DNS-rebinding, custom engines, feature flags, multi-instance deploy
references/troubleshooting.mdError codes, symptom → cause, everything removed in this generation
references/legacy.mdThe legacy-spec profile and the 0.4.x → 0.5.x upgrade

SKILL.md stays short on purpose: an entrypoint an agent always reads, and six references it loads only when the task needs one.

Install

The SKILL.md format is a shared standard, so installation is the same everywhere: unzip and copy the neva/ directory into the tool's skills folder, keeping the folder name — it has to match the name in the frontmatter.

ToolPersonalPer project
Claude Code~/.claude/skills/neva/.claude/skills/neva/
opencode~/.config/opencode/skills/neva/.opencode/skills/neva/
Codex CLI~/.codex/skills/neva/.codex/skills/neva/
unzip neva-skill.zip
mkdir -p ~/.claude/skills && cp -r neva ~/.claude/skills/

Restart the assistant afterwards — skills are discovered at startup.

opencode also reads .claude/skills/ and .agents/skills/, so a single copy inside a project can serve more than one tool.

Anything else

Any assistant that can read a file will do. Point it at SKILL.md and let it follow the links, or add a line to the project's AGENTS.md:

For Rust MCP work with the `neva` crate, read `.agents/skills/neva/SKILL.md`
and the reference file it routes you to.

The code in it compiles

Every Rust snippet in the skill is compiled against the published neva crate in this repository's CI — 60-plus of them — so what an assistant copies out of it builds. That is the whole point of shipping a skill rather than a prose summary: an assistant that pastes a plausible-looking API is worse than one that pastes a verified one.

To run the check yourself after editing:

python3 ci/check-snippets.py --docs-dir skill --default-mode compile --default-features full

Version

The skill tracks neva 0.5.2 / MCP 2026-07-28, with the legacy generation documented separately. The frontmatter records both, so an assistant can tell whether the skill matches the crate in front of it:

metadata:
neva-version: "0.5.2"
mcp-protocol: "2026-07-28"