Whetstone
A local MCP server that lets any skill learn from use.
Whetstone attaches to an existing skill and maintains a git-tracked, per-skill store of what a
user likes (LEARNINGS) and what the skill got wrong (ISSUES), so the skill can improve from
ordinary use without a benchmark, dataset, or eval harness. See
LEARNING_SKILLS_DESIGN.md
for the full design.
Install
Requires Python 3.11+. The base install is light and dependency-free at retrieval time: it uses a
small, deterministic hashing embedding backend (no torch, no network).
pipx install whetstone-mcp # installs the `whetstone` command on your PATH
# or: pip install whetstone-mcp
# or, run without installing: uvx whetstone-mcp
An install (pipx/pip) puts two equivalent console scripts on your PATH — whetstone (primary, used
throughout this README) and whetstone-mcp (same entry point, so pipx run whetstone-mcp /
uvx whetstone-mcp resolve without the short name).
Register it with an MCP host (e.g. Claude Code) — point the host at whichever you used:
# if you installed it (pipx/pip): the command is already on PATH
claude mcp add whetstone -- whetstone
# no install — let uv fetch & run it on demand:
claude mcp add whetstone -- uvx whetstone-mcp
For higher-quality embeddings, pull in the optional extra and set
embedding_backend = "sentence-transformers" in config. Match the command to how it's installed:
pipx install "whetstone-mcp[embeddings]" # fresh install, with the extra
pipx inject whetstone-mcp sentence-transformers # add to an existing pipx install
pip install "whetstone-mcp[embeddings]" # pip
From source (contributors)
python3 -m venv .venv
.venv/bin/pip install -e '.[dev]'
.venv/bin/pip install -e '.[embeddings]' # pulls in sentence-transformers
Run
Start the stdio MCP server:
whetstone # PyPI install
.venv/bin/whetstone # from-source dev install
Register it with an MCP host (e.g. Claude Code) under the server id whetstone, pointing the
command at the whetstone entry point above.
Tools
The server exposes five MCP tools:
attach— register a skill so Whetstone tracks its learned layer (scaffolds the store).recall— at the start of a task, retrieve the learnings (weighted preferences) and issues (mandatory constraints) relevant to an elaborated intent.capture— the moment you act on new user feedback, distill it into a scoped, deduped entry (a preference → a learning; an always/never rule → an issue).revise— reinforce / weaken / remove / promote / demote an entryrecallalready showed (by id); confirmation-gated.metrics— reporting only: the §11 KPIs per skill from each store'sevents.jsonl.
Maintenance
Store compaction (retiring stale learnings, merging near-duplicate scopes) is deliberately not an MCP tool — it is out-of-band maintenance, run from the command line:
whetstone compact <skill> # PyPI install
.venv/bin/whetstone compact <skill> # from-source dev install
Storage & config
Per-skill stores live under the XDG data dir, defaulting to
~/.local/share/whetstone/<skill-slug>/, overridable via the WHETSTONE_STORE_ROOT environment
variable or store_root in the config file. Configuration is read from
~/.config/whetstone/config.toml (XDG config dir); every key also has a WHETSTONE_* env
override. Each store is its own git repository:
<store-root>/<skill-slug>/
learnings/<scope-slug>.md source of truth, grouped by scope
issues/<scope-slug>.md source of truth, grouped by scope
next_ids.json per-store monotonic id counters
index.sqlite derived embedding cache (rebuildable, git-ignored)
events.jsonl per-run telemetry for metrics (git-ignored)
.git/ version history of the markdown
Development
.venv/bin/ruff check .
.venv/bin/pytest
Metadata
Release files for whetstone-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| whetstone_mcp-0.1.0.tar.gz | 48.0 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| whetstone_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 103.7 kB
Release files / whetstone_mcp-0.1.0.tar.gz
| Download URL | whetstone_mcp-0.1.0.tar.gz |
|---|---|
| Size | 48.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2057042745cff9d6221c705ff137420e875e12e5b4ff280335e338a1889299dc
|
|
BLAKE2b-256 checksum How to use checksums |
925303129097b4a15d57e5ab68b90b3d50c54913727398b5d776f4002b94e5ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 23, 2026.
Transparency logRelease files / whetstone_mcp-0.1.0-py3-none-any.whl
| Download URL | whetstone_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 55.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b62be0c06dd1152a167943f1b93246f5af22becdd2634b1632d34f2d98cdd995
|
|
BLAKE2b-256 checksum How to use checksums |
6de3daa0655e44c6a777910dd951e137c62bae1c35531b5784f5c0b271aa6117
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 23, 2026.
Transparency logSecurity for whetstone-mcp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for whetstone_mcp-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 23, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.