Agent memory where every fact carries a receipt, and deletion is provable.
MCPpedia last refreshed this data
io.github.Starksood/fireweed-mcp is an MCP server that agent memory where every fact carries a receipt, and deletion is provable. Its tool list has not been published yet over sse and http, requires no API key, and scores 86/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-starksood-fireweed-mcp": {
"args": [
"fireweed-mcp"
],
"command": "uvx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
remember(claim = "Priya joined Acme in 2019 under duress.", evidence = "Priya Raman joined Acme in 2019 as a logistics analyst.")
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
uvx 'fireweed-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked fireweed-mcp against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in other
Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 60-95% fewer tokens, same answers. Library, proxy, MCP server.
Transport for TMCP using STDIO
The graph based agentic IDE
Buddhist canon tools: search, passages, cross-canon parallels, dictionaries — all URN-cited.
MCP Security Weekly
Get CVE alerts and security updates for io.github.Starksood/fireweed-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Agent memory where every fact carries a receipt.
remember(claim = "Priya joined Acme in 2019 under duress.",
evidence = "Priya Raman joined Acme in 2019 as a logistics analyst.")
REFUSED (asserts_more_than_evidence) — the claim adds something the evidence does not say.
claim : Priya joined Acme in 2019 under duress.
evidence: Priya Raman joined Acme in 2019 as a logistics analyst.
recall("Priya's salary")
ABSTAINED (unknown_predicate) — no claims ground "salary"; 1 claim about Priya Raman exists
This is a refusal, not an empty result.
forget("Priya")
ERASED Priya Raman — certificate issued
signature : hmac-sha256:f4d0768ef3b0fec624afec12f25bfd91…
nodes in closure : 1
every probe abstains : True
bystanders surviving : 1
That last one is the artifact behind "delete me from your agent's memory — and prove it."
uvx fireweed-mcp # try it
pip install fireweed-mcp # keep it
claude mcp add fireweed -- uvx fireweed-mcp
No dependencies. No API keys. No model — nothing in this server calls an LLM.
| tool | |
|---|---|
remember | admits a claim only if the evidence you cite supports it. Refusals are typed and say what to fix. |
recall | grounded claims with the byte range they came from; abstains and names the term it could not ground |
verify_receipts | re-hash every source, re-slice every range — tamper-evident |
forget | erasure with exact closure and a signed certificate; bystanders survive |
export_memory | the whole substrate as a portable open-format blob |
Most memory servers store what the model says and return what's nearest. This one adjudicates.
The rule is the model proposes, deterministic code decides. Across an RPC boundary that stops being a slogan: your agent is the proposer, and it cannot talk its way past the gate, because the gate is not a prompt. Pass a claim and the text you're quoting; pure functions check that the evidence names the subject, preserves the relation, invents no numbers, and asserts nothing the span doesn't say. What survives is stored with a byte range into the source.
Then anyone can check it afterwards — including someone who trusts neither your agent nor this server. That is the whole product.
Stated up front, because this project's last headline number turned out to be measuring nothing (see the retraction, which ships with a script that proves it):
~/.fireweed/mcp/ (FIREWEED_MCP_STORE to change). The substrate is an open format — see
open_format/SPEC.md — and open_format/reference_reader.py reads it with
the standard library alone. Your memory outlives this server, this engine,