Skip to main content
Glama
Starksood

fireweed-mcp

fireweed-mcp

エージェントメモリ。すべての事実にレシートが付く。

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

最後のものが、「エージェントのメモリから私を削除して、しかもそれを証明して」 の背後にある成果物です。

インストール

uvx fireweed-mcp          # try it
pip install fireweed-mcp  # keep it
claude mcp add fireweed -- uvx fireweed-mcp

依存関係なし。APIキーなし。モデルなし — このサーバーはLLMを一切呼び出しません。

Related MCP server: Nahuali

できること

ツール

remember

引用した証拠が主張を支持する場合にのみ、主張を受け入れます。拒否には型があり、修正すべき点が示されます。

recall

出典のバイト範囲付きで主張を根拠付けます。根拠付けできない場合は棄権し、その用語を明示します。

verify_receipts

すべてのソースを再ハッシュし、すべての範囲を再スライス — 改ざん検知可能

forget

完全なクロージャと署名付き証明書による消去。傍観者は影響を受けません。

export_memory

基盤全体をポータブルなオープンフォーマットのブロブとしてエクスポート

拒否が重要な理由

ほとんどのメモリサーバーは、モデルが言ったことを保存し、最も近いものを返します。これは裁定します。

ルールは モデルが提案し、決定論的なコードが判断する です。RPC境界を越えると、これはスローガンではなくなります: エージェントが提案者であり、ゲートを言葉で通り抜けることはできません。ゲートはプロンプトではないからです。主張と引用するテキストを渡すと、純粋関数が、証拠が主題を指し、関係を保持し、数値を捏造せず、スパンが言っていないことを主張しないことをチェックします。生き残ったものは、ソースへのバイト範囲とともに保存されます。

その後、誰でも後で検証できます — エージェントもこのサーバーも信頼しない人でも。それが製品のすべてです。

やらないこと

このプロジェクトの前回の見出し数字が結局何も測定していなかったため(撤回 を参照。それを証明するスクリプトが同梱されています)、最初に明言します:

  • 自由テキストからメモリを抽出しません。 主張と証拠を提供するのはあなたです。 自動抽出には知覚モデルが必要です。このサーバーには意図的にそれがありません。

  • LLMを真実にしません。 記録に入るものと、それについて証明できることを管理します。 モデルは独自の散文で好きなことを言えます。

  • 会話想起は弱く、測定されています。 1,200項目の敵対的コーパスでは、検索ゲートは 答えが本当に存在しない質問の40% で棄権します — 質問のトピックが根拠付けられているかをチェックし、要求された値が存在するかはチェックしません。書き込みパス、レシート、消去は影響を受けず、信頼すべき部分です。

あなたのデータ

~/.fireweed/mcp/(変更するには FIREWEED_MCP_STORE)。基盤はオープンフォーマットです — open_format/SPEC.md を参照 — そして open_format/reference_reader.py は標準ライブラリだけで読み取ります。あなたのメモリは、このサーバー、このエンジン、そしてあらゆるモデルよりも長生きします。テストがそのラウンドトリップを検証します。

任意: pip install "fireweed-mcp[semantic]" で recall のパラフレーズマッチングが有効になります。これがないとゲートはより多く拒否します — 安全な方向です — そして memory_stats が現在のモードを教えてくれます。

ライセンス

FSL-1.1-ALv2 — ソース利用可能。競合製品の構築以外は無料。2028-01-01 に Apache 2.0 に移行。全文は LICENSE.md にあります。

Fireweed を商用製品や競合サービスで使いたいですか? → sanyamsood2@gmail.com

Available Tools

10 tools
add_sourceB

Register a source document so claims remembered against it bind to verifiable byte ranges.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
originNowhere these bytes came from (path, URL, endpoint). RECORDED BUT NOT VERIFIED.
source_idYes
origin_kindNothe kind of origin. Recorded but not verified.
supplied_byNowho handed these bytes over. Recorded but not verified.
validated_byNowhat checked these bytes before ingest, if anything. Recorded but not verified.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses that registering a source enables claims to bind to verifiable byte ranges, but it does not explain idempotency, duplicate handling, storage side effects, or what happens to unverified origin metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence with no filler. It front-loads the core action and immediately states the downstream purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For 6 parameters, no output schema, and no annotations, more context is needed. The description omits required parameter semantics, return behavior, and lifecycle guidance such as whether re-registering an existing source_id overwrites or errors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, and the required params source_id and text have no individual descriptions. The description adds some meaning by identifying a 'source document' and 'byte ranges', which implies text contains the document bytes, but it does not clarify source_id semantics or format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Register') and resource ('source document') and explains the purpose: binding claims to verifiable byte ranges. It does not explicitly name sibling tools but the contrast with 'remembered' claims makes its role reasonably distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: before claims are remembered, to give them verifiable byte ranges. It does not provide explicit when-not-to-use guidance or compare against alternatives like remember or recall.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_memoryB

Export the whole substrate as a portable open-format blob. Readable without this server, without any model, with a stdlib-only reference reader.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the blob is portable and readable without the server or model, which is useful behavioral context. However, it does not mention side effects (e.g., whether the export is read-only), output size, error handling, or any performance implications, leaving gaps for an agent assessing risk or expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences that immediately state the action and the key differentiator (portability and independence). Every word earns its place, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description is missing critical details: the purpose of 'path' and what the output actually looks like beyond 'portable open-format blob'. It does not explain the return format, size limits, or any requirements for calling it, leaving the agent to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema defines a single 'path' parameter with no description, and the tool description makes no mention of it at all. With 0% schema description coverage, the description completely fails to clarify what the path parameter means or how to use it, providing no added value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action (export) and resource (the whole substrate) as a portable blob. It is distinct from sibling tools like remember or recall by its export operation, but it does not explicitly name an alternative or contrast it with siblings, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when you need to export the entire substrate, but it gives no explicit guidance about when to use it over alternatives or when not to use it. There is no mention of prerequisites, permissions, or contexts where another tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forgetA

Erase everything about a subject and issue a SIGNED CERTIFICATE: exact closure, a probe battery that must all abstain, and bystanders left intact. This is the artifact for a 'delete me and prove it' request.

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It goes well beyond a simple 'erase' by describing the output as a SIGNED CERTIFICATE, the requirement that a probe battery must all abstain, and that bystanders are left intact. This gives the agent a strong understanding of what to expect and the guarantees provided. Minor gaps: no mention of reversibility, permissions, or side effects, but for an erasure tool these are adequately covered by the explicit guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action and the unique deliverable (signed certificate). It packs all essential details — closure, probe battery, bystanders — into a compact, scannable format without any filler words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a single parameter and no output schema, the description fully explains what the tool does, what it returns (the signed certificate and its guarantees), and the trigger context. There is no missing information an agent would need to decide to call this tool and understand its result. The description is self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one required string parameter 'subject' with 0% description coverage. The tool description contributes the meaning that 'subject' is the entity to be erased, which is essential. However, it does not specify the expected format (e.g., name, ID, or any canonical form) or constraints beyond being a string. Given the simplicity of the parameter, the addition of meaning earns a 3, but it could be more explicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (erase), the resource (subject), and the unique guarantee (issue a SIGNED CERTIFICATE with exact closure, probe battery all abstain, bystanders intact). It clearly differentiates from siblings like recall or verify_receipts by explicitly framing this as the artifact for a 'delete me and prove it' request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear use case: 'delete me and prove it' requests. It implicitly guides the agent to use this tool when deletion with verifiable proof is needed, and by contrast other tools (remember, recall, etc.) serve other purposes. However, it does not explicitly name alternative tools or discuss when not to use it, so it falls short of a perfect 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_statsD

Substrate size, entities, sources held, and mode.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It merely lists output fields and does not state that it is a read-only operation, describe any side effects, or explain the output format. The agent cannot infer safety or side effects from this description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single fragment, not a full sentence, and omits the verb. While it is short, it is under-specified and lacks the structure of an effective description. The fragment does not earn its place because it fails to communicate the tool's action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no parameters, and no annotations, the description is minimal. It lists fields but does not explain what 'substrate size', 'entities', 'sources held', or 'mode' mean, nor does it state the purpose or expected usage. An agent has insufficient information to invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the baseline is 4 per the rubric. The description does not need to add parameter meaning because none exist. However, it also does not enrich the tool's overall semantics beyond the schema, so no higher score is warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a noun phrase listing data fields ('Substrate size, entities, sources held, and mode') without a verb or explicit resource. It does not state that this tool retrieves or returns these statistics, so the agent cannot be sure what action the tool performs. It also does not differentiate this from sibling tools like recall or export_memory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the sibling tools. No context about prerequisites, conditions, or typical scenarios (e.g., checking memory state before an operation) is provided. The agent is left entirely to guess when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recallA

Search memory. Returns grounded claims with the byte ranges they came from. If the substrate cannot answer, it ABSTAINS and says which term it could not ground — treat that as a real answer, not an empty result.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does real work: it discloses the return shape (grounded claims with byte ranges) and, critically, the abstention behavior — telling the agent to treat an ungrounded-term disclosure as a real answer, not empty results. This prevents a serious misinterpretation. It stops short of covering error conditions or permission needs, but the abstention quirk is the highest-value disclosure for this tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core purpose first, then return format, then behavioral caveat. Every sentence earns its place with no filler. Slightly dense but tightly constructed — no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter search tool with no output schema, the description covers the essential behavioral contract (search, grounded return format, abstention semantics). However, it is vague on what 'the substrate' is, and beyond the byte-range note it gives no sense of result volume, ordering, or pagination — minor gaps for such a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the undocumented query parameter — and it does not. Nothing clarifies query format, length, phrasing guidance, or how a good query is constructed. The single parameter's meaning is somewhat self-evident from 'Search memory,' but the description adds no value beyond the schema itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb-resource pair ('Search memory') that cleanly separates it from every sibling (remember, add_source, verify_receipts, forget, export_memory, memory_stats — none of which search). The byte-range grounding detail further differentiates it as a retrieval-with-evidence tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The verb 'search' implies the tool is for retrieval, which is enough to distinguish it from mutation siblings like remember and forget. But the description never explicitly says when to use it over alternatives or states any exclusions — usage guidance is only implied, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rememberA

Commit a fact to memory. The claim is admitted ONLY if the evidence you cite supports it — you are the proposer, a deterministic gate decides. Refusals are typed and explain what to fix. Evidence must be text you are quoting verbatim, not a paraphrase.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimYesthe fact to remember
evidenceYesverbatim text supporting it
source_idNosource this came from (default: agent)
source_textNothe full document this evidence was quoted from. Pass it and the claim binds to a verifiable BYTE RANGE in it — the receipt. Optional, but this is the point.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden, and it delivers: it discloses that admission is conditional on evidence, that refusals are typed and actionable, and that the tool is a write operation ('commit'). The schema adds the byte-range binding and receipt behavior. Gaps: it does not describe what a successful call returns (the receipt format) or explicitly state the response envelope beyond typed refusals.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, zero wasted words. The primary verb is front-loaded, the gating mechanic follows immediately, and the verbatim constraint closes it out. Every clause earns its place and no structured-field content is redundantly repeated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool of moderate complexity — a gated mutation with typed refusals and byte-range receipt binding — the description plus schema covers the essentials: purpose, evidence requirement, failure mode, and the optional source_text binding. The main omission is the success response shape (what the receipt actually is on the happy path), which is hinted at in the schema but never fully described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds real interpretive value beyond the schema: framing the caller as 'proposer' subject to a 'deterministic gate' explains WHY claim and evidence matter and how they interact, and the verbatim emphasis reinforces the constraint on the evidence parameter. This contextual rationale is more than the schema's terse field descriptions provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource construction — 'Commit a fact to memory' — and immediately distinguishes itself from the sibling set: it is not recall (reading), not forget (deleting), not verify_receipts (checking), and not add_source (storing a source document). The added detail about the deterministic gate and verbatim evidence requirement makes the tool's identity unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool — when an agent holds a fact supported by verbatim quoted evidence — and the gate/verbatim constraints effectively rule out using it for paraphrased claims. However, it never explicitly names alternatives or states when-not-to-use, leaning entirely on implicit context. No exclusion guidance such as 'for uncited facts use add_source first' is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_quarantineA

List claims the firewall held for review rather than storing. These were NOT written to memory; a QUARANTINE verdict means the claim could not be classified confidently, not that it was rejected.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNomost recent N (default 20)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states that quarantined claims were not written to memory and explains the meaning of a QUARANTINE verdict, adding valuable semantic context. It omits details like ordering or side effects, but 'List' implies read-only behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences. The first states the core function, and the second clarifies a potential misinterpretation. There is no filler or redundant phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one parameter and no output schema, the description covers the essential behavioral context: what is listed, that it was not stored, and how to interpret the verdict. It does not describe output fields, but that is a minor gap for a tool with this simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single parameter 'limit' with its default and meaning (most recent N), so schema coverage is 100%. The description adds no extra parameter-level detail, but it also does not need to; the schema handles parameter semantics adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') with a clear resource ('claims the firewall held for review') and adds a distinguishing detail: these claims were NOT written to memory. This differentiates the tool from memory-listing siblings like recall and review_reads.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use this tool: when you need to see claims quarantined by the firewall. It also clarifies an important semantic point (quarantine is not rejection). However, it does not explicitly name alternatives or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_readsC

What has been asked of this substrate and what it answered. Off unless FIREWEED_MCP_READ_AUDIT=1; query text is recorded only if FIREWEED_MCP_READ_AUDIT_TEXT=1 as well, otherwise queries appear as salted fingerprints.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNohow many recent reads to show

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses an important behavioral trait: the tool is effectively disabled unless FIREWEED_MCP_READ_AUDIT=1, and query text is only recorded if FIREWEED_MCP_READ_AUDIT_TEXT=1 is also set. It also clarifies that queries may appear as salted fingerprints. This is useful context beyond the minimal schema. No annotations are provided, so the description carries the full burden; it covers the audit-gating behavior but does not mention whether this is a read-only operation or what the output looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the core purpose in the first sentence. The second sentence provides essential configuration caveats without excess. It earns a 4 because it is appropriately sized, though the phrasing could be slightly more direct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one optional parameter and no output schema, the description covers the main feature and the critical audit-gating behavior. However, it does not specify what the tool returns (list structure, fields, format), nor does it explain how to interpret salted fingerprints, which an agent likely needs to use the output correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single parameter 'limit' is already documented as 'how many recent reads to show'. The description does not add further meaning to the parameter, but the schema fully covers it, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says the tool shows what has been asked and answered, so it is a read-audit/review tool. However, it does not name the operation explicitly with a direct verb+resource structure like 'List read queries', relying on indirect phrasing, and it does not differentiate itself from siblings such as review_quarantine or trace_evidence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is given, and no alternatives are named. The description focuses on configuration prerequisites (FIREWEED_MCP_READ_AUDIT) rather than agent decision-making about choosing this tool over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

trace_evidenceA

Audit BACKWARDS from a stored memory to the arrival of the evidence it rests on: the byte range it binds, whether those bytes still match, whether the document's arrival is in the append-only ledger, and whether the chain verifies. States plainly which fields are attested and which are caller-declared.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimYesany distinctive substring of the stored claim to trace

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does so well: it discloses the backward trace direction, the byte-match check, ledger verification, chain verification, and the distinction between attested and caller-declared fields. It does not mention failure modes or permissions, but the audit framing suggests a read-oriented operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The action and direction are front-loaded, and every phrase contributes to the audit semantics without repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description covers the operation, the checks performed, and the nature of the result (attested vs caller-declared fields). It does not describe the exact output structure or error behavior, but it gives enough for an agent to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage of the single parameter with 'any distinctive substring of the stored claim to trace'. The description reinforces the link to stored memory but does not add meaningful semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description anchors on a specific action ('Audit BACKWARDS') and resource ('stored memory... evidence'), then spells out concrete checks: byte range, byte match, append-only ledger arrival, and chain verification. This clearly distinguishes it from siblings like recall or verify_receipts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use context: trace evidence provenance backward from a stored memory and determine which fields are attested versus caller-declared. It does not explicitly name alternatives or state when not to use it, so it lacks the strongest routing guidance but is not ambiguous about its intent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_receiptsA

Re-hash every held source and re-slice every receipt. Tamper-evident: change one byte of a source and its receipts stop verifying.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It does reveal a key property: tamper-evidence (changing a source breaks receipt verification). However, it does not state whether the operation is read-only or mutating, whether it can fail, or what output it produces. The disclosed property is useful but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary action is front-loaded, and the tamper-evident detail is added efficiently. Every sentence contributes meaningful information, earning a high score for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no parameters and no output schema, so the description must convey enough context for correct invocation. It explains the action but omits side effects, error conditions, and return values. It also does not place the tool in the broader workflow (e.g., when to verify receipts). This leaves some ambiguity about the expected behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, and schema coverage is trivially 100% given the empty schema. Per the rubric, 0 parameters earns a baseline of 4. The description adds no parameter-specific detail, but none is needed since there are no parameters to explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('re-hash every held source and re-slice every receipt') and a resource (sources and receipts). The tamper-evident note adds a distinctive property that separates it from siblings like remember and recall. It is not a tautology and clearly communicates what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus the sibling tools (e.g., after adding a source, before exporting memory). It does not mention prerequisites or exclusions. An agent is left to infer the appropriate invocation context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.5.0
    • Changedadd_source4 fields changed
      • addedInput schema / properties / origin
        Added value: +{
        +  "description": "where these bytes came from (path, URL, endpoint). RECORDED BUT NOT VERIFIED.",
        +  "type": "string"
        +}
      • addedInput schema / properties / origin_kind
        Added value: +{
        +  "description": "the kind of origin. Recorded but not verified.",
        +  "enum": [
        +    "conversation",
        +    "file",
        +    "url",
        +    "api",
        +    "user_submitted",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / supplied_by
        Added value: +{
        +  "description": "who handed these bytes over. Recorded but not verified.",
        +  "type": "string"
        +}
      • addedInput schema / properties / validated_by
        Added value: +{
        +  "description": "what checked these bytes before ingest, if anything. Recorded but not verified.",
        +  "type": "string"
        +}
    • Addedreview_quarantine
    • Addedreview_reads
    • Addedtrace_evidence
  2. 7 tool updatesv0.1.2
    • First observedadd_source
    • First observedexport_memory
    • First observedforget
    • First observedmemory_stats
    • First observedrecall
    • First observedremember
    • First observedverify_receipts

TDQS

B3.4/5.0

Scored across 10 tools

Disambiguation5/5

Each tool targets a distinct operation: writing, recalling, erasing, exporting, auditing reads, tracing provenance, verifying receipts, and reviewing quarantine. The closest pairs (review_reads vs review_quarantine, trace_evidence vs verify_receipts) are clearly separated by their descriptions.

Naming Consistency3/5

Most tools follow a verb_noun pattern (add_source, export_memory, verify_receipts, trace_evidence, review_reads, review_quarantine), but remember, recall, and forget are bare verbs and memory_stats is noun_noun. The style is readable and lowercase-snake throughout, but the convention is genuinely mixed.

Tool Count5/5

Ten tools is well-scoped for a verifiable memory substrate. Each tool covers a necessary capability—ingestion, recall, deletion with proof, export, audit, verification, quarantine review, and statistics—without redundant or filler tools.

Completeness5/5

The surface covers the full evidentiary memory lifecycle: add_source and remember for writing, recall for reading, forget for erasure with proof, export for portability, plus trace_evidence and verify_receipts for auditability. The append-only, evidence-bound design makes an update tool unnecessary; corrections would naturally flow through new evidence.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Verified memory for AI agents — agents propose memories that are quarantined until verified against evidence, and recall() returns only trusted, fresh, and in-scope facts, preventing poisoned or hallucinated data from spreading.
    8 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Local-first memory for AI agents with evidence-backed recall, deterministic trust verdicts, self-inspection, and a tamper-evident audit history.
    3
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server for agent memory that enables remembering, recalling, and provably forgetting knowledge with cascade deletion, cryptographic shredding, and signed erasure certificates.
    MIT