Skip to main content
Glama
mnemox-ai

TradeMemory Protocol

by mnemox-ai

PyPI Tests MCP Tools Smithery License: MIT

Erste Schritte | Anwendungsfälle | API-Referenz | OWM-Framework | Einschränkungen | 中文版


Projektstatus (August 2026): Funktionsumfang vollständig, im Wartungsmodus — Fehler- und Sicherheitsmeldungen werden weiterhin geprüft; keine neuen Funktionen oder gehosteten Dienste geplant. Für bezahlte Arbeit siehe Analyse von Handelsaufzeichnungen.

Ihre Trading-KI hat Amnesie. Und die Aufsichtsbehörden beginnen, das zu bemerken.

Sie macht in jeder Sitzung dieselben Fehler. Sie kann nicht erklären, warum sie gehandelt hat. Sie vergisst alles, wenn das Kontextfenster endet. In der Zwischenzeit erhöht MiFID II die Anforderungen an die Dokumentation algorithmischer Entscheidungen (Artikel 17). Der EU AI Act verlangt eine systematische Protokollierung von KI-Aktionen (Artikel 14). Die Agenten Ihrer Wettbewerber lernen aus jedem Trade.

Dem KI-Trading-Stack fehlt eine Ebene. Jeder MCP-Server übernimmt die Ausführung — Aufträge platzieren, Preise abrufen, Charts lesen. Keiner übernimmt das Gedächtnis.

Ihr Agent kann 100 Aktien von AAPL kaufen, aber nicht beantworten: „Was ist passiert, als ich AAPL zuletzt unter diesen Bedingungen gekauft habe?"

TradeMemory ist die Gedächtnisebene. Ein pip install, und Ihr KI-Agent erinnert sich an jeden Trade, jedes Ergebnis, jeden Fehler — mit einer manipulationssicheren SHA-256-Prüfpfad.

In Produktion eingesetzt von Tradern, die vor jeder Position Pre-Flight-Checklisten durchführen, und von EA-Systemen, die täglich Tausende von Entscheidungen protokollieren.

Was es tut

  • Vor dem Handel: Fragen Sie Ihr Gedächtnis — was ist beim letzten Mal in dieser Marktsituation passiert? Wie ist es ausgegangen?

  • Nach dem Handel: Ein Aufruf zeichnet alles auf — fünf Gedächtnisebenen werden automatisch aktualisiert

  • Sicherheitsvorkehrungen: Konfidenz-Tracking, Drawdown-Warnungen, Erkennung von Verlustserien — das System sagt Ihnen, wann Sie aufhören sollten

Funktioniert mit jedem Markt (Aktien, Forex, Krypto, Futures), jedem Broker, jeder KI-Plattform. TradeMemory führt keine Trades aus und berührt nicht Ihr Geld — es zeichnet nur auf und ruft ab.

Related MCP server: AgentRecall

Schnellstart

pip install tradememory-protocol

Hinzufügen zu Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "tradememory": {
      "command": "uvx",
      "args": ["tradememory-protocol"]
    }
  }
}

Sagen Sie dann zu Claude: „Zeichne meinen AAPL-Long bei 195 $ auf — Gewinnübertreffung, institutionelle Käufe, hohe Konfidenz."

# Claude Code
claude mcp add tradememory -- uvx tradememory-protocol

# From source
git clone https://github.com/mnemox-ai/tradememory-protocol.git
cd tradememory-protocol && pip install -e . && python -m tradememory

# Docker
docker compose up -d

Vollständige Anleitung: Erste Schritte (Trader-Pfad + Entwickler-Pfad)

Wer TradeMemory nutzt

US-Aktienhändler

Forex-EA-System

Compliance-Team

Markt

Aktien (AAPL, TSLA, ...)

XAUUSD (Gold)

Multi-Asset

Wie

Pre-Flight-Checkliste vor jedem Trade

Automatisierte Synchronisierung von MT5

Vollständiger Entscheidungs-Prüfpfad

Hauptnutzen

Disziplinsystem — Gedächtnis vor jeder Entscheidung

Aufzeichnung, warum Signale blockiert wurden, nicht nur ausgeführte

SHA-256-manipulationssichere Aufzeichnungen für Aufsichtsbehörden

Details

Mehr lesen →

Mehr lesen →

Mehr lesen →

So funktioniert es

  1. Abrufen — Vor dem Handel vergangene Trades abrufen, gewichtet nach Ergebnisqualität, Kontextähnlichkeit, Aktualität, Konfidenz und emotionalem Zustand (OWM-Framework)

  2. Aufzeichnen — Nach dem Handel schreibt ein Aufruf an remember_trade in fünf Gedächtnisebenen: episodisch, semantisch, prozedural, affektiv und Handelsaufzeichnungen

  3. Reflektieren — Tägliche/wöchentliche/monatliche Überprüfungen erkennen Verhaltensdrift, Strategieverfall und Handelsfehler

  4. Prüfen — Jede Entscheidung wird bei der Erstellung mit SHA-256 gehasht. Export jederzeit für Überprüfung oder behördliche Einreichung

MCP-Tools

Kategorie

Tools

Beschreibung

Gedächtnis

remember_trade · recall_memories

Trades aufzeichnen und abrufen mit ergebnisgewichteter Bewertung

Zustand

get_agent_state · get_behavioral_analysis

Konfidenz, Drawdown, Serien, Verhaltensmuster

Planung

create_trading_plan · check_active_plans

Prospektive Pläne mit bedingten Auslösern

Risiko

check_trade_legitimacy

5-Faktoren-Pre-Trade-Gate (voll / reduziert / überspringen)

Prüfung

export_audit_trail · verify_audit_hash

SHA-256-Manipulationserkennung + Massenexport

Kategorie

Tools

Kern-Gedächtnis

get_strategy_performance · get_trade_reflection

OWM-Kognition

remember_trade · recall_memories · get_behavioral_analysis · get_agent_state · create_trading_plan · check_active_plans

Risiko & Governance

check_trade_legitimacy · validate_strategy · compute_dqs

Evolution

evolution_fetch_market_data · evolution_discover_patterns · evolution_run_backtest · evolution_evolve_strategy · evolution_get_log

Prüfung

export_audit_trail · verify_audit_hash · verify_audit_chain · get_daily_root

REST-API: 35+ Endpunkte für Handelsaufzeichnung, Reflexionen, Risiko, MT5-Synchronisierung, OWM, Evolution und Prüfung. Vollständige Referenz →

Analyse von Handelsaufzeichnungen

TradeMemory selbst ist kostenlos und selbst gehostet. Was der Betreuer als kostenpflichtigen Dienst anbietet, ist die statistische Analyse Ihrer eigenen Handelsaufzeichnungen: Exportieren Sie Ihre MT4/MT5-Historie und erhalten Sie einen Bericht mit deskriptiver Statistik — wo sich Ihre Verluste konzentrieren, wie sich Ihre Positionsgrößen nach Verlusten ändern, die Struktur von Zwangsliquidationen und das tatsächliche Risiko, das Sie pro Trade eingegangen sind — gefolgt von einem Durchsprache-Termin.

Nur deskriptive Statistik vergangener Trades: keine Handelssignale, keine Anlageberatung, keine Leistungsversprechen. Ihre Dateien werden nach der Lieferung gelöscht.

dev@mnemox.ai | Termin buchen

Enterprise & Compliance

Jede Handelsentscheidung, die Ihr Agent trifft — einschließlich Entscheidungen, nicht zu handeln — wird als Trading Decision Record (TDR) aufgezeichnet. Pro Datensatz werden SHA-256-Inhalts-Hashes in ein vorwärts verkettetes Prüf-Ledger verknüpft; jeder UTC-Tag wird durch eine Merkle-Wurzel zusammengefasst, die selbst über Tage hinweg verkettet ist. Die Manipulation eines historischen Datensatzes macht jede nachfolgende Verknüpfung ungültig.

Regulierung

Anforderung

TradeMemory-Abdeckung

MiFID II Artikel 17

Jeden algorithmischen Handelsentscheidungsfaktor aufzeichnen

Vollständige Entscheidungskette: Bedingungen, Filter, Indikatoren, Ausführung

EU AI Act Artikel 14

Menschliche Aufsicht über Hochrisiko-KI-Systeme

Erklärbare Begründung + Gedächtniskontext für jede Entscheidung

EU AI Act Artikel 12

Automatische, manipulationssichere Protokolle über die Systemlebensdauer

Verkettete SHA-256-Kette + tägliche Merkle-Wurzeln (RFC 3161 TSA in Phase 1.5)

# Verify a single record hasn't been tampered with
verify_audit_hash(trade_id="MT5-7047640363")
# → {"verified": true, "chain_entry": {"sequence_num": 42, ...}}

# Walk the entire chain (or a slice) end-to-end
verify_audit_chain(from_seq=1, to_seq=None)
# → {"verified": true, "checked_count": 1284, "first_break_at": null}

# Daily Merkle root — single 32-byte anchor over every TDR for that day
get_daily_root(date="2026-05-14")
# → {"verified": true, "root_hash": "a05544...", "record_count": 18}

# Bulk export for regulatory submission
GET /audit/export?strategy=VolBreakout&start=2026-03-01&format=jsonl

Siehe LIMITATIONS.md für die vollständige Reifegrad-Erklärung der Prüfkette, einschließlich dessen, was in v0.5.2 noch fehlt (TSA-Zeitstempel, externe Verankerung, zkML-Beweis der Inferenz).

Benötigen Sie eine kundenspezifische Bereitstellung für Ihren Fonds? → dev@mnemox.ai

Sicherheit

  • Berührt niemals API-Schlüssel. TradeMemory führt keine Trades aus, bewegt keine Gelder und greift nicht auf Wallets zu.

  • Nur lesen und aufzeichnen. Ihr Agent übergibt Entscheidungskontext an TradeMemory. Es speichert ihn. Das ist alles.

  • Lokal zuerst. Der einzige ausgehende Aufruf ist das RFC-3161-vertrauenswürdige Zeitstempeln täglicher Prüf-Wurzeln — ein 32-Byte-Hash, keine Handelsdaten (standardmäßig aktiviert; deaktivieren mit TRADEMEMORY_TSA=off). Nichts anderes verlässt Ihre Maschine.

  • SHA-256-verkettetes Prüf-Ledger. Jeder Datensatz wird bei der Erstellung gehasht und mit dem vorherigen Datensatz verknüpft. Tägliche Merkle-Wurzeln verankern die Kette. Integrität auf Datensatz-, Slice- oder Tagesebene verifizieren. Manipulation ist auf jeder Ebene erkennbar; externe Verankerung (TSA standardmäßig) ist auf der Roadmap.

  • Über 1.400 bestandene Tests. Vollständige Testsuite mit CI.

Forschungsstatus

Das OWM-Framework von TradeMemory basiert auf Kognitionswissenschaft (Tulving 1972) und Reinforcement Learning (Schaul et al. 2015). Aktueller Status:

  • OWM-Fünf-Faktoren-Bewertung: implementiert, getestet (über 1.400 Tests)

  • Statistische Validierung: DSR, MBL implementiert (Bailey-de Prado 2014)

  • Prüfpfad: SHA-256-manipulationssichere TDR

  • Evolutions-Engine: Forschungsphase (Strategiegenerierung funktioniert, statistische Gate-Bestehensquote unter Optimierung)

  • Hybrid-Abruf: OWM-only-Modus aktiv, Vektor-Fusion verfügbar, wenn Embeddings konfiguriert sind

  • Empirische Validierung: laufend (n=40 Trades, Ziel n>=100 für statistische Signifikanz)

Dokumentation

Dokument

Beschreibung

Getting Started

Installation → erster Trade → Pre-Flight-Checkliste

Use Cases

3 reale Produktionsszenarien

API Reference

Alle REST-Endpunkte

OWM Framework

Outcome-Weighted-Memory-Theorie

Architecture

Systemdesign & Schichtentrennung

Tutorial

Detaillierte Schritt-für-Schritt-Anleitung

MT5 Setup

MetaTrader-5-Integration

Research Log

Evolutions-Experimente & Daten

Failure Taxonomy

11 Trading-KI-Fehlermodi

中文版

Traditionelles Chinesisch

Mitwirken

Siehe Contributing Guide · Security Policy


MIT — siehe LICENSE. Nur für Bildungs- und Forschungszwecke. Keine Finanzberatung.

Available Tools

20 tools
check_active_plansA
Idempotent

Check active trading plans against current market context.

Queries all active prospective plans, expires any past their expiry date, and matches remaining plans against the provided context.

ParametersJSON Schema
NameRequiredDescriptionDefault
context_atr_d1NoCurrent ATR(14) on D1 in dollars
context_regimeNoCurrent market regime (trending_up/trending_down/ranging/volatile)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

The description discloses a key behavioral trait: it expires plans past their expiry date. This goes beyond the basic annotations (readOnlyHint=false, idempotentHint=true) by clarifying that the tool mutates state. It also states it queries all active prospective plans, which adds scope. No contradictions with annotations.

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 highly concise, with two sentences that front-load the core purpose and then provide necessary details. There is no filler or redundant phrasing, making it easy to parse quickly.

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?

The description covers the main functionality, side effects, and context requirements. Since an output schema exists, it doesn't need to explain return values. It could mention prerequisites or the matching logic in more depth, but overall it is sufficiently complete.

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 100% for both parameters (context_atr_d1, context_regime) with meaningful descriptions. The tool description only refers to 'provided context' without adding extra detail about the parameters, so it adds minimal value 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 clearly states a specific action: checking active trading plans against current market context, and explicitly mentions the expiration side-effect. This distinguishes it from sibling tools like create_trading_plan or evolution functions, making its purpose 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 reviewing active plans and cleaning up expired ones) but does not explicitly state alternatives or when not to use it. There is no mention of how it relates to other tools or any exclusions, so usage guidance remains implicit.

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

check_trade_legitimacyA
Idempotent

Check if the agent has sufficient data and confidence to trade.

Call this before making any trade decision. Evaluates sample size, memory quality, regime experience, streak state, and drawdown to determine whether the agent has earned the right to trade at full size.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoTrading instrument (default "XAUUSD").XAUUSD
strategy_nameYesStrategy to evaluate (e.g. "VolBreakout").
current_atr_d1NoCurrent ATR(14) on D1 in dollars (informational).
current_regimeNoCurrent market regime (trending_up/trending_down/ranging/volatile).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide idempotentHint=true and destructiveHint=false, so the agent knows repeated calls are safe and non-destructive. The description adds value by listing the specific evaluation criteria (sample size, memory quality, regime experience, streak state, drawdown), which gives behavioral insight beyond the structured annotations. No contradiction exists.

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 purpose and immediately followed by usage guidance and evaluation criteria. Every sentence contributes meaningful information with no redundancy or filler.

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?

The tool has an output schema (as noted) and annotations, so the description need not explain return values. It covers what the tool does, when to call it, and what it evaluates. It lacks explicit exclusions or alternative mentions, but for the tool's complexity, this is complete enough.

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%, so all parameters are well-documented. The description does not add additional parameter-level semantics beyond the schema; the mentioned criteria are internal evaluations, not parameter explanations. Baseline 3 is appropriate since the schema handles parameter meaning.

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 clearly states the tool's function: 'Check if the agent has sufficient data and confidence to trade.' It uses a specific verb ('check') and resource ('trade legitimacy'), and differentiates from siblings by focusing on pre-trade evaluation with explicit criteria (sample size, memory quality, regime experience, streak state, drawdown). This distinguishes it from related tools like check_active_plans or validate_strategy.

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 explicitly instructs 'Call this before making any trade decision,' providing clear context for when to use the tool. It does not mention explicit alternatives or when not to use it, but the instruction is strong and the purpose is distinguishable from siblings, which is sufficient for a 4.

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

compute_dqsA
Idempotent

Compute Decision Quality Score before executing a trade.

Evaluates the quality of the decision process (not outcome) across 5 factors: regime match, position sizing vs Kelly, process adherence (OWM similarity), risk state, and historical pattern.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesTrading instrument (e.g. "XAUUSD").
directionYesIntended direction ("long" or "short").
strategy_nameYesStrategy being considered (e.g. "VolBreakout").
context_atr_d1NoATR(14) on D1 in dollars.
context_regimeNoMarket regime (trending_up/trending_down/ranging/volatile).
market_contextNoDescription of current market conditions.
proposed_lot_sizeNoPlanned position size in lots (default 0.1).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

The description adds valuable behavioral context beyond annotations by listing the five factors it evaluates (regime match, position sizing vs Kelly, OWM similarity, risk state, historical pattern). The annotations already declare idempotentHint=true and destructiveHint=false, so the description does not need to repeat safety aspects. No contradiction exists.

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 tightly written in two sentences. The first sentence front-loads the primary purpose, and the second lists the five evaluation factors without any filler. Every word earns its place.

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?

Given the tool's complexity (7 parameters, output schema present, annotations provided), the description is complete. It explains what the tool does, when to use it, and what factors are considered. The output schema handles return-value details, so no further explanation is needed.

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%, giving the agent complete parameter documentation. The description goes a step further by grouping parameters conceptually: e.g., 'position sizing vs Kelly' connects to proposed_lot_size, and 'regime match' connects to context_regime. This semantic mapping adds value beyond the raw 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 opens with a specific verb+resource: 'Compute Decision Quality Score before executing a trade.' It clearly distinguishes this from sibling tools by emphasizing that it evaluates the decision process (not outcome) across five named factors, which differentiates it from tools like check_trade_legitimacy or validate_strategy.

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 clearly states when to use it: 'before executing a trade.' It provides strong contextual guidance, but it does not explicitly name alternatives or exclusion cases. Sibling tools exist for related purposes (e.g., check_trade_legitimacy, validate_strategy), but no comparison is given, so it falls just short of a 5.

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

create_trading_planA

Create a prospective trading plan that activates when conditions are met.

Stores a rule-based plan in prospective memory. The plan stays active until triggered, expired, or manually cancelled.

ParametersJSON Schema
NameRequiredDescriptionDefault
priorityNoPriority 0-1, higher = checked first (default 0.5)
reasoningYesWhy this plan was created
expiry_daysNoDays until plan expires (default 30)
trigger_typeYesType of trigger (e.g. "market_condition", "drawdown", "time_based")
planned_actionYesJSON string describing what to do (e.g. '{"type": "skip_trade"}')
trigger_conditionYesJSON string describing when to trigger (e.g. '{"regime": "ranging"}')

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

The annotations are all false, so the description carries the burden of behavioral disclosure. It effectively communicates that the plan is stored in prospective memory and remains active until triggered, expired, or cancelled, giving useful lifecycle context beyond the structured schema.

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 three concise sentences with no filler. It opens with the main purpose, then adds storage and lifecycle details, each sentence earning its place.

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?

Given the rich input schema and presence of an output schema, the description adequately covers the tool's core behavior and lifecycle. It lacks examples or edge-case handling, but it is sufficient for a tool of this complexity.

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 input schema has 100% parameter description coverage, so the description does not need to repeat parameter details. It adds no extra parameter-specific semantics beyond the schema, so the baseline score of 3 is appropriate.

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 clearly identifies the tool as creating a prospective trading plan that activates on conditions. It specifies the verb 'create' and the resource 'trading plan', and the activation rule distinguishes it from a general memory tool, though it does not explicitly name sibling alternatives.

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 provides no explicit guidance on when to use this tool versus alternatives. It implies usage for setting up conditional trading plans but lacks exclusions, prerequisites, or comparisons to related tools like remember_trade or check_active_plans.

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

evolution_discover_patternsA

Discover trading patterns from market data using LLM analysis.

Uses Claude to analyze OHLCV data and generate candidate trading patterns with entry/exit conditions. Each pattern can be backtested afterward.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDays of history to analyze (default 90)
countNoNumber of patterns to generate (default 5)
symbolYesTrading pair (e.g. "BTCUSDT")
timeframeNoBar timeframe — "5m", "15m", "1h", "4h", "1d"1h
temperatureNoLLM creativity 0-1 (default 0.7, higher = more diverse)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

The description discloses that the tool uses Claude (LLM) for analysis, which implies non-deterministic behavior and potential API costs. It also notes patterns are 'candidate' and can be backtested later, providing workflow context. However, with all annotations false and no mention of side effects, permissions, or failure modes, the description does not fully carry the transparency burden.

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 compact and front-loaded, using two short sentences to convey purpose and method, followed by a single sentence on the backtesting workflow. Every sentence adds value without repetition, and the structure is clean and scannable.

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?

The description covers the core aspects: what the tool does, how it works (LLM), the input data (OHLCV), output (patterns with entry/exit), and next steps (backtesting). Given that an output schema exists and the parameter schema is fully descriptive, the description is reasonably complete for agent decision-making, though it could mention prerequisites like data availability.

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?

All five parameters are fully documented in the schema (100% coverage), so the description adds little extra meaning. It mentions 'OHLCV data' (relevant to symbol/timeframe) and 'generate candidate patterns' (relevant to count), but these do not significantly enhance understanding beyond the schema descriptions. Baseline 3 is appropriate because the schema already handles parameter semantics.

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 clearly states the tool's purpose: 'Discover trading patterns from market data using LLM analysis.' It specifies the method (LLM/Claude), the input (OHLCV data), and the output (candidate patterns with entry/exit conditions). This distinguishes it from sibling tools like evolution_run_backtest (backtesting) and evolution_evolve_strategy (strategy evolution).

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 a workflow by stating 'Each pattern can be backtested afterward,' but it does not explicitly say when to use this tool versus alternatives, nor does it provide prerequisites or exclusions. There is no direct guidance on choosing between this and the sibling tools, so usage context is only implicit.

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

evolution_evolve_strategyA

Run full evolution loop — generate, backtest, select, eliminate.

Multi-generation strategy evolution: generates candidate patterns via LLM, backtests on in-sample data, validates survivors on out-of-sample data, eliminates weak hypotheses. Returns graduated strategies and graveyard.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDays of history to use (default 90)
symbolYesTrading pair (e.g. "BTCUSDT")
timeframeNoBar timeframe — "5m", "15m", "1h", "4h", "1d"1h
generationsNoNumber of evolution generations (default 3)
population_sizeNoHypotheses per generation (default 10)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations are all false, providing minimal behavioral signal. The description adds useful process details (LLM generation, in-sample/out-of-sample validation, elimination of weak hypotheses) and return value ('graduated strategies and graveyard'). It does not disclose potential side effects like resource usage or persistence, but it does not contradict the annotations.

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 front-loaded with a one-line summary ('Run full evolution loop — generate, backtest, select, eliminate.') followed by a concise elaboration. It contains no fluff and every sentence contributes to understanding the tool's behavior.

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?

The description covers the core workflow, data splits, and return value, and an output schema exists so return format details are covered. It does not mention prerequisites or how it relates to sibling tools (e.g., whether it requires evolution_fetch_market_data first), but for a complex pipeline the description is sufficiently comprehensive.

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 input schema has 100% parameter description coverage, so the schema already explains every parameter. The description adds no direct parameter-level meaning beyond the schema, making the baseline 3 appropriate.

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 explicitly states 'Run full evolution loop' and lists the specific steps (generate, backtest, select, eliminate), making the tool's purpose unmistakable. It also differentiates itself from sibling tools like evolution_run_backtest and evolution_discover_patterns by focusing on the complete multi-generation pipeline rather than individual steps.

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 clearly defines the tool as a full-loop process, implying it should be used when the complete evolution workflow is needed. However, it does not explicitly mention alternatives or say 'use evolution_run_backtest for single backtests,' so it lacks explicit exclusion guidance but provides strong contextual clues.

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

evolution_fetch_market_dataA
Idempotent

Fetch OHLCV market data from Binance for evolution analysis.

Downloads historical price bars for backtesting and pattern discovery. Use this before discover_patterns or run_backtest to get data.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days of history to fetch (default 90)
symbolYesTrading pair (e.g. "BTCUSDT", "ETHUSDT")
timeframeNoBar timeframe — "5m", "15m", "1h", "4h", "1d"1h

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already cover safety profile: idempotentHint=true and destructiveHint=false. The description adds that data is sourced from Binance and that it downloads historical bars, which provides useful context. However, it does not disclose any side effects (e.g., whether data is stored locally) despite readOnlyHint=false, nor does it mention rate limits or data freshness. The annotation prevents a lower score, but the description itself could be richer.

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 and front-loaded. Two sentences convey the core purpose and usage instruction with no wasted words. Every sentence earns its place, and the structure is easy to scan.

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?

The tool is simple and the description, combined with the schema and annotations, gives a clear picture of how to use it. However, a small gap remains: the description does not clarify how the fetched data is made available to downstream tools (e.g., whether it is stored, cached, or returned directly), especially given readOnlyHint=false. With an output schema present, return values are covered, but the side-effect behavior is somewhat ambiguous.

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 provides 100% coverage of parameters, each with clear descriptions and defaults. The description adds no parameter-specific details beyond the schema, so it does not increase understanding beyond what is already structured. Baseline 3 is appropriate given high schema coverage.

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 clearly states the tool's function with a specific verb and resource: "Fetch OHLCV market data from Binance for evolution analysis." It also mentions downloading historical price bars for backtesting and pattern discovery, which distinguishes it from sibling tools like discover_patterns and run_backtest that operate on the data.

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 explicit guidance: "Use this before discover_patterns or run_backtest to get data." This names specific downstream tools and clarifies when this tool should be invoked. However, it does not mention alternative data sources or when not to use it, so it stops short of a full when/when-not/alternatives distinction.

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

evolution_get_logA
Read-onlyIdempotent

Get the log of past evolution runs from this session.

Returns a list of all evolution runs with their results, including graduated strategies, graveyard, token usage, and backtest counts. Data is in-memory (resets on server restart).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses an important behavioral trait not covered by annotations: 'Data is in-memory (resets on server restart).' This adds context about persistence and freshness that annotations (readOnlyHint, idempotentHint) do not provide. It also specifies the return scope ('from this session'), which is useful behavioral information. No contradiction with annotations.

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: the first states the primary action, the second details the return contents and a critical caveat. It is front-loaded, efficient, and every sentence contributes value without redundancy. This is a model of concise structuring.

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?

Given the tool has no parameters, an output schema exists to define the return structure, and annotations cover safety behavior, the description provides all necessary contextual information: what the tool returns and the in-memory limitation. It is complete for a simple log retrieval tool.

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?

With zero parameters, the input schema is trivially complete, and the description need not elaborate on parameter semantics. The baseline for 0 params is 4, and the description appropriately does not attempt to invent parameter details. It adds no parameter-level information, but none is needed.

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 clearly states the tool's function: 'Get the log of past evolution runs from this session.' It specifies the resource (evolution runs log) and the action (get), and the additional details about returned content (graduated strategies, graveyard, token usage) make its purpose unambiguous. It is distinct from sibling tools like evolution_evolve_strategy or evolution_run_backtest, which perform different actions.

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 you need the history of evolution runs) but does not explicitly state alternatives or exclusions. It notes the session-scoped nature, which is a usage hint, but lacks direct comparison to other retrieval tools like get_strategy_performance or get_agent_state. This meets the 'implied usage' level but not explicit guidance.

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

evolution_run_backtestA
Idempotent

Backtest a candidate pattern against historical OHLCV data.

Takes a pattern dict (from discover_patterns) and runs a vectorized backtest. Returns fitness metrics: Sharpe ratio, win rate, trade count, max drawdown, total PnL.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDays of history to backtest against (default 90)
symbolNoTrading pair (e.g. "BTCUSDT")BTCUSDT
timeframeNoBar timeframe — "5m", "15m", "1h", "4h", "1d"1h
pattern_dictYesCandidatePattern as dict (from discover_patterns output)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide idempotentHint=true and destructiveHint=false, establishing that repeated calls are safe and non-destructive. The description adds valuable context by explaining it 'runs a vectorized backtest' and 'Returns fitness metrics: Sharpe ratio, win rate, trade count, max drawdown, total PnL,' which helps the agent understand the tool's behavior and output beyond the annotations.

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 concise—two short sentences that front-load the core purpose ('Backtest a candidate pattern') and then provide necessary detail about the input and output. Every sentence contributes meaningful information with no redundancy.

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?

The description covers the tool's purpose, input origin, and output metrics, making it sufficiently complete for a backtest tool. While it doesn't elaborate on all parameters (days, symbol, timeframe), the schema fully documents those, and the description doesn't need to repeat them. The output schema exists, so detailed return documentation isn't required.

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 description coverage is 100%, so the baseline is 3. The description adds meaning by specifying that pattern_dict is 'from discover_patterns output', clarifying the expected structure and origin of the key required parameter. It doesn't repeat the schema's parameter details, but the added context about the input source is valuable.

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?

Description states a specific verb+resource: 'Backtest a candidate pattern against historical OHLCV data.' It clearly distinguishes from siblings like evolution_discover_patterns (which discovers patterns) and evolution_evolve_strategy (which evolves strategies).

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 indicates the input comes 'from discover_patterns', giving clear context for when to use this tool (after pattern discovery). It doesn't explicitly name alternatives or exclusions, but the context is sufficient for an agent to infer appropriate usage relative to sibling tools.

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

export_audit_trailA
Read-onlyIdempotent

Export Trading Decision Records for audit and compliance review.

Provides a complete, tamper-evident record of trading decisions including the memory context (similar trades, beliefs) that informed each decision.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoEnd date (ISO format, exclusive). E.g., "2026-04-01".
limitNoMaximum records to return (default 50).
startNoStart date (ISO format, inclusive). E.g., "2026-03-01".
strategyNoFilter by strategy name (e.g., "VolBreakout").
trade_idNoGet a single TDR by trade ID (e.g., "MT5-7047640363"). If provided, other filters are ignored.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds behavioral context beyond annotations by emphasizing a 'complete, tamper-evident record' and revealing that exported data includes 'memory context (similar trades, beliefs)', which is valuable for understanding what the output entails.

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 primary purpose, followed by a concise elaboration on the record's content and integrity. Every sentence contributes value with no redundancy or unnecessary detail.

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?

Given the output schema exists and the annotations cover safety, the description is complete enough. It explains what is exported, why (audit/compliance), and critical characteristics (tamper-evident, includes memory context). The optional parameters are fully specified in the schema, so no gaps remain.

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%, so all five parameters are already well-documented with types, defaults, and examples. The description does not add additional parameter-level meaning, and the baseline of 3 applies since the schema handles the heavy lifting.

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 clearly states the tool 'Exports Trading Decision Records' for 'audit and compliance review', which is a specific verb+resource combination. It distinguishes itself from sibling tools like verify_audit_hash and verify_audit_chain, which focus on verification rather than export.

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 clear context ('for audit and compliance review') indicating when this tool is appropriate. However, it does not explicitly mention alternatives or state when not to use it. Sibling tools like verify_audit_hash are not referenced, so it lacks explicit exclusions.

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

get_agent_stateA
Read-onlyIdempotent

Get the current agent affective state (confidence, risk, drawdown).

Returns confidence level, risk appetite, drawdown percentage, win/loss streaks, equity tracking, and a recommended action based on current drawdown severity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable context by specifying the exact output fields (confidence, risk appetite, drawdown, streaks, equity) and a behavior: 'recommended action based on current drawdown severity.' This goes beyond the annotations without contradicting them.

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 purpose, and the second sentence adds concise detail about return values. Every clause contributes meaningful information without 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 zero-parameter read-only tool with a rich output schema (present), the description sufficiently explains what the tool provides and the logic for the recommended action. No additional context is needed given the schema and annotations cover the safety profile.

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?

With zero parameters, the description has no parameter burden. The schema is trivially fully covered. Baseline for 0 params is 4, and the description adds no unnecessary parameter noise.

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 clearly states the tool's purpose: 'Get the current agent affective state' and enumerates specific components (confidence, risk, drawdown). It distinguishes from sibling tools by focusing on the agent's internal state rather than plans, performance, or reflections.

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 this tool: when you need the current affective state. However, it does not explicitly mention alternatives or provide exclusion criteria. Sibling tool names suggest different purposes, but no direct comparison is given.

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

get_behavioral_analysisA
Read-onlyIdempotent

Get behavioral analysis from procedural memory.

Returns aggregate trading behavior stats: hold times, disposition ratio, lot sizing variance, and Kelly criterion comparison.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoFilter by symbol. Returns all if omitted.
strategy_nameNoFilter by strategy name. Returns all if omitted.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by specifying the data source ('procedural memory'), the aggregate nature of the stats, and the exact metrics returned, which is context beyond the structured annotations.

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 efficient sentences. The first sentence states the action and source, and the second lists the specific return values. No unnecessary words or redundant information, and the key verb is front-loaded.

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?

With a read-only, idempotent, non-destructive annotation set, an output schema, and fully documented parameters, the description provides sufficient context for the agent to correctly select and invoke the tool. It explains the source, the aggregate nature, and the key metrics returned, leaving no critical gaps.

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% (both symbol and strategy_name are described with 'Returns all if omitted'). The description itself does not add parameter details or syntax, and the schema already fully documents the parameters. Baseline 3 applies because the schema carries the heavy lifting.

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 clearly states the tool's function with a specific verb ('Get') and a well-defined resource ('behavioral analysis from procedural memory'). It enumerates the specific output metrics (hold times, disposition ratio, lot sizing variance, Kelly criterion comparison), which distinguishes it from sibling tools like get_strategy_performance or get_trade_reflection.

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 usage context by specifying the source (procedural memory) and aggregate nature, but it does not explicitly state when to use this tool over alternatives or provide exclusions. There is no mention of alternative tools or conditions 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.

get_daily_rootA
Idempotent

Get (or rebuild) the daily Merkle root for a UTC date.

The Merkle root summarises every audit_chain entry whose chained_at falls inside the UTC day. Verifying this single 32-byte root proves the integrity of every TDR for that day without re-walking each one.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate in YYYY-MM-DD format (or full ISO datetime).
rebuildNoIf True, recompute and overwrite the stored root.
request_tsaNoWhether to submit the rebuilt root to the configured RFC 3161 TSA (default freetsa.org) and store the returned TimeStampToken. None (default) follows the TRADEMEMORY_TSA env setting — ON unless set to "off". TSA failures are logged but do not abort the rebuild.
include_tokenNoIf True, include a base64-encoded `tsa_token` in the response (default False — the token can be large).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already indicate idempotentHint=true and readOnlyHint=false. The description adds that the root summarises entries by `chained_at` and that rebuilding is possible, but does not disclose side effects such as overwriting the stored root or TSA failure behavior — these details only appear in the schema, not the description.

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 short paragraphs, front-loaded with the core action in the first sentence. It provides concise domain context without repeating parameter schema details.

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 with an output schema and well-documented parameters, the description gives sufficient domain background and use-case context. It lacks explicit guidance on when `rebuild=True` is needed or that overwriting occurs, but the schema covers mechanics and the output schema covers returns — acceptable completeness.

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 crucial meaning by stating the date is a 'UTC date' and that entries are filtered by `chained_at` falling inside the UTC day — this timezone context is absent from the schema's dry 'YYYY-MM-DD format' description.

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 'Get (or rebuild) the daily Merkle root for a UTC date' — a clear verb+resource+scope. It distinguishes itself from sibling verification tools by focusing on obtaining/rebuilding a day-level root, not verifying individual hashes or chains.

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 explains that verifying this root proves integrity of every TDR for that day 'without re-walking each one,' implying the tool is for whole-day integrity checks. It does not explicitly name alternatives or exclusions, but the context separates it from verify_audit_hash/chain.

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

get_strategy_performanceA
Read-onlyIdempotent

Get aggregate performance stats per strategy.

Use this to evaluate which strategies are working and which need adjustment.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoFilter by symbol. Returns all symbols if omitted.
strategy_nameNoFilter by strategy name. Returns all strategies if omitted.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds minimal behavioral detail beyond the tool's name and purpose, so it does not significantly enrich understanding of side effects or execution 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?

The description is two sentences, front-loaded with the core purpose, and contains no filler. Every phrase adds value, making it highly concise and well-structured.

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?

Given the tool's simplicity, full schema coverage, and presence of an output schema, the description is largely sufficient. It could optionally specify whether stats are based on closed trades or open positions, but this is not critical for selection.

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 100% and both parameters (symbol, strategy_name) have descriptions. The description adds no parameter-specific information beyond what the schema provides, so the baseline score of 3 is appropriate.

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 clearly states 'Get aggregate performance stats per strategy,' using a specific verb and resource. It distinguishes the tool from siblings like get_behavioral_analysis or evolution_get_log by focusing on strategy-level performance evaluation.

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 explicit context: 'Use this to evaluate which strategies are working and which need adjustment.' It clearly indicates when to use the tool, though it does not mention alternatives or 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.

get_trade_reflectionA
Read-onlyIdempotent

Get the full context and reflection for a specific trade.

Use this to deep-dive into a particular trade's reasoning and lessons.

ParametersJSON Schema
NameRequiredDescriptionDefault
trade_idYesThe trade ID to look up

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds minimal behavioral context beyond that, only indicating that it returns context and reflection, which is largely implied by the tool name and output schema.

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 exactly two sentences, begins with the action verb 'Get', and includes a practical usage note. Every word earns its place, with no redundant or vague phrasing.

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 simple read-only lookup with one parameter, full schema coverage, a complete set of annotations, and an output schema, the description provides all necessary context: what it does, when to use it, and its safety profile. It does not need to explain return values because the output schema exists.

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 input schema contains a single required parameter trade_id with a clear description, achieving 100% schema description coverage. The description adds no extra parameter semantics, but the schema already fully documents the parameter, so the baseline score of 3 is appropriate.

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 starts with a specific verb 'Get' and names the resource 'full context and reflection for a specific trade', clearly distinguishing it from sibling tools like remember_trade or get_strategy_performance. The second sentence reinforces its unique purpose by framing it as a deep-dive into a trade's reasoning.

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 explicitly states when to use the tool: 'Use this to deep-dive into a particular trade's reasoning and lessons.' This provides clear context, but it does not name alternative tools or mention exclusions, so it stops short of the top score.

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

recall_memoriesA
Idempotent

Recall memories using OWM outcome-weighted scoring.

Queries episodic and semantic memories, scores them by outcome quality, context similarity, recency, confidence, and affective modulation. Returns ranked memories with score breakdown.

Use order="losses_first" right before placing a trade: losing trades taken in similar conditions rank first, and the current mood (a losing streak) no longer pushes them down.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 10)
orderNo"outcome" (default): better outcomes rank higher (by R multiple, where one was recorded), and at least 20% of the results are losses. "losses_first": every losing trade comes before anything else, the bigger losses in similar conditions first; the symbol's recent losing trades are searched as well as its recent trades. For a pre-trade check.outcome
symbolYesTrading instrument (e.g. "XAUUSD")
use_hybridNoIf True (default), enable vector + OWM hybrid scoring when an embedding backend is available. Falls back to pure OWM silently when sentence-transformers is not installed.
hybrid_alphaNoVector vs OWM blend weight [0..1] when hybrid is active. 0.0 = pure OWM, 1.0 = pure vector. Default 0.3 (OWM-dominant).
memory_typesNoTypes to query (default: ["episodic", "semantic"])
strategy_nameNoOptional strategy filter
context_atr_d1NoCurrent ATR(14) on D1 in dollars
context_regimeNoCurrent market regime (trending_up/trending_down/ranging/volatile)
market_contextYesCurrent market conditions to match against

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations cover the safety profile, and the description adds real behavioral context: what signals drive ranking (outcome quality, context similarity, recency, confidence, affective modulation) and the effect of losses_first on mood suppression. It does not explain why readOnlyHint is false or whether a recall mutates any state, which leaves one gap.

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?

Front-loads the core operation in the first line, then scoring behavior, then the one actionable usage tip. Four short sentences with little waste, though the scoring-dimension list is partially jargon that the schema also implies.

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?

Output schema exists so return values need not be described, and annotations cover safety. The description supplies the scoring model and the key usage mode, which is sufficient for a 10-param read tool, though it omits any note on the readOnlyHint=false state change.

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%, so the schema already documents all 10 parameters including order, use_hybrid, and hybrid_alpha. The description restates the order="losses_first" behavior but adds no syntax or semantics beyond what the schema already states, matching the baseline of 3.

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?

States a specific verb and resource ('Recall memories') and elaborates the retrieval+scoring pipeline (episodic/semantic, OWM scoring, ranked results with score breakdown). This clearly separates it from write-side siblings like remember_trade or aggregation tools like get_strategy_performance. It stops short of naming any sibling explicitly, so it lands at 4 rather than 5.

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?

Gives a concrete, situational directive: use order="losses_first" right before placing a trade, with the reason (losing trades in similar conditions rank first, mood no longer suppresses them). It does not say when NOT to use this tool or name alternative memory/analysis tools, so it is clear context but not full when/when-not guidance.

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

remember_tradeA

Store a trade into OWM multi-layer memory with automatic updates.

Writes to episodic memory and automatically updates semantic (Bayesian), procedural (running averages + hold time + Kelly), and affective (EWMA confidence/streaks). Also writes to trade_records for backward compatibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
pnlYesProfit/loss in account currency
pnl_rNoP&L as R-multiple (risk units). Improves OWM scoring quality.
symbolYesTrading instrument (e.g. "XAUUSD")
lot_sizeNoPosition size (lots, shares or contracts). Without it, patterns such as sizing up after a losing streak cannot be seen.
trade_idNoOptional custom ID. Auto-generated if omitted.
directionYes"long" or "short"
timestampNoISO format timestamp. Defaults to now (UTC).
confidenceNoAgent confidence level 0-1 (default 0.5)
exit_priceYesExit price of the trade
reflectionNoLessons learned from this trade
entry_priceYesEntry price of the trade
strategy_nameYesStrategy used (e.g. "VolBreakout")
context_atr_d1NoATR(14) on D1 in dollars
context_regimeNoMarket regime (trending_up/trending_down/ranging/volatile)
exit_timestampNoISO format exit time. Used to compute hold duration.
market_contextYesDescription of market conditions
entry_timestampNoISO format entry time. Used to compute hold duration.
max_adverse_excursionNoMaximum adverse excursion during the trade

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only give the write (readOnlyHint=false) and non-idempotent profile, but the description goes well beyond by naming the exact downstream side effects: episodic write, Bayesian semantic update, procedural running averages/hold time/Kelly, EWMA affective confidence/streaks, and a trade_records backward-compat write. This is rich behavioral disclosure an agent could not infer from structured fields.

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?

Front-loads the verb+resource in the first clause, then layers the side effects, then closes with the compatibility note. Every sentence carries information and there is no filler.

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 an 18-parameter write tool with an output schema (so return values need not be explained) and full schema coverage, the description covers purpose and downstream effects adequately. The only gap is the absence of explicit guidance on when in a trade lifecycle to invoke it.

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%, so the baseline is 3. The description does not add per-parameter meaning beyond the schema; its reference to hold time and Kelly loosely implies use of entry/exit timestamps and pnl_r, but the schema already documents those explicitly.

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 and resource ('Store a trade into OWM multi-layer memory') and enumerates the concrete memory layers touched. No sibling in the list performs a trade write, so the operation is unambiguously distinct from the get_*/check_*/verify_* read tools.

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?

Usage is only implied (you would call this to persist a completed trade). There is no explicit when-to-use statement, no note on prerequisites (e.g. close the trade first), and no comparison to any alternative write path.

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

validate_strategyA
Read-onlyIdempotent

Validate a trading strategy using statistical tests (DSR + Walk-Forward + Regime + CPCV).

For educational and research purposes only. Not financial advice.

Upload a trade log CSV (QuantConnect format) or daily returns CSV. The tool runs four statistical tests:

  1. Deflated Sharpe Ratio (DSR) — detects overfitting from multiple testing

  2. Walk-Forward Validation — checks out-of-sample consistency

  3. Regime Analysis — performance across bull/bear/crisis markets

  4. CPCV — cross-validated Sharpe stability across time periods

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoCSV format — "quantconnect" for trade logs (columns: Entry Time, Exit Time, Direction, Entry Price, Exit Price, Quantity, P&L, Fees, IsWin) or "returns" for daily returns (columns: date,return or single column of returns).quantconnect
file_pathYesAbsolute path to the CSV file on your local machine.
strategy_nameNoName of the strategy (for the report).
num_strategiesNoHow many strategies you tested before picking this one. Higher M = stricter DSR threshold (corrects for selection bias).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful behavioral context beyond annotations: it explains the four tests performed, mentions the input format requirement (trade log or daily returns CSV), and adds educational/research-only and not-financial-advice disclaimers. It does not contradict the annotations.

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 moderately sized but well-structured: a one-line purpose statement, a disclaimer, a sentence on required input, and a numbered list of tests. Each sentence earns its place, though the test list could be slightly more compact. No filler or redundant phrasing is present, but it is not as tight as a two-sentence description.

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 with four statistical tests, an output schema, and full schema/annotation support, the description covers the essential aspects: purpose, tests, input format, and disclaimers. It does not describe the output structure, but the output schema exists and reduces the need to do so. It also does not mention error handling or performance constraints, but the complexity is adequately addressed. A 4 reflects solid completeness without being exhaustive.

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%, so the schema already fully describes all four parameters (file_path, format, strategy_name, num_strategies), including column details and defaults. The description's mention of CSV formats and the four tests adds only minimal extra meaning; it does not substantially deepen understanding beyond the schema. Baseline 3 is appropriate given full schema coverage.

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 ('Validate') and names a concrete resource ('a trading strategy') while enumerating the exact statistical tests performed (DSR, Walk-Forward, Regime, CPCV). This clearly distinguishes it from siblings like evolution_run_backtest or get_strategy_performance, which focus on execution or reporting rather than statistical validation.

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 clear usage context: it is for validating strategies via statistical tests, and explicitly restricts use to educational/research purposes ('Not financial advice'). It does not name alternatives or state when not to use it, but the detailed test list implies the appropriate scenario, and the disclaimer sets boundaries. No alternate tool is mentioned, so a small deduction from 5.

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

verify_audit_chainA
Read-onlyIdempotent

Verify the integrity of the audit chain.

Walks the chain from from_seq (default: 1, the genesis record) to to_seq (default: latest), checking that every record's prev_hash matches the previous record's data_hash, and that each data_hash equals SHA256(prev_hash || content_hash).

Returns a dict with verified, checked_count, first_break_at, reason. A first_break_at of None with verified=True means the chain is intact across the verified range.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_seqNoEnding sequence_num (inclusive). None = through latest.
from_seqNoStarting sequence_num (inclusive). None = from beginning.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint false), the description adds substantial context: the traversal algorithm, the exact hash relationship, and the meaning of return fields. It even clarifies edge semantics like `first_break_at` being None when verified=True, which is valuable for interpreting results.

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 well-structured with three concise parts: a one-sentence purpose, a detailed algorithm explanation, and return value semantics. Every sentence adds necessary information with no redundancy or filler.

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?

Given the rich schema (100% coverage), strong annotations, and an output schema, the description fully round out the tool's behavior: it explains the verification logic, defaults, and return meaning. Nothing essential is missing for an agent to invoke and interpret results 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?

Schema coverage is 100% for both parameters, so the baseline is 3. The description adds meaning by explaining that `from_seq` defaults to 1 (genesis record) and `to_seq` defaults to latest, complementing the schema's null defaults and making the runtime behavior 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 clearly states the tool's purpose: 'Verify the integrity of the audit chain.' It details the exact verification process—walking from `from_seq` to `to_seq`, checking `prev_hash` against `data_hash` and verifying the SHA256 computation—which fully distinguishes it from siblings like `verify_audit_hash`.

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 clear context on how to use the tool: it specifies the default range (genesis to latest) and how to constrain it via `from_seq`/`to_seq`. It does not explicitly mention alternatives or when not to use it, but the unique behavior makes the intended usage apparent.

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

verify_audit_hashA
Read-onlyIdempotent

Verify the integrity of a Trading Decision Record.

Recomputes the SHA256 data_hash from stored inputs and compares with the hash computed at decision time. A mismatch indicates tampering.

ParametersJSON Schema
NameRequiredDescriptionDefault
trade_idYesTrade ID to verify (e.g., "MT5-7047640363").

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by explaining the verification algorithm (recompute SHA256 from stored inputs and compare) and the consequence of a mismatch (tampering). This goes beyond the annotations and gives the agent a clear model of 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?

The description is concise, two sentences, front-loaded with the core purpose. Every sentence earns its place without any fluff.

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?

This is a simple tool with a single required parameter, rich annotations, and an output schema present. The description explains both what it does and the verification logic, making it complete for the given complexity. Return values are already covered by the output schema.

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 input schema has 100% coverage with a clear description of trade_id. The tool description does not add further parameter semantics beyond what the schema already provides, so the baseline of 3 is appropriate.

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 clearly states the tool verifies the integrity of a Trading Decision Record and explains the mechanism: it recomputes the SHA256 data_hash and compares it with the original. This specific verb+resource distinguishes it from sibling tools like verify_audit_chain (which likely verifies the chain) and get_trade_reflection.

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 implies a clear use case: verifying a single record for tampering. The singular 'a Trading Decision Record' provides context, but it does not explicitly name alternatives or exclusion scenarios (e.g., when to use verify_audit_chain instead).

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. 2 tool updatesv0.5.6
    • Changedrecall_memories1 field changed
      • addedInput schema / properties / order
        Added value: +{
        +  "default": "outcome",
        +  "description": "\"outcome\" (default): better outcomes rank higher (by R\nmultiple, where one was recorded), and at least 20% of the\nresults are losses. \"losses_first\": every losing trade comes\nbefore anything else, the bigger losses in similar conditions\nfirst; the symbol's recent losing trades are searched as well as\nits recent trades. For a pre-trade check.",
        +  "type": "string"
        +}
    • Changedremember_trade1 field changed
      • addedInput schema / properties / lot_size
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Position size (lots, shares or contracts). Without it,\npatterns such as sizing up after a losing streak cannot be seen."
        +}
  2. 21 tool updatesv0.5.4
    • Changedcheck_active_plans2 fields changed
      • addedInput schema / properties / context_atr_d1 / description
        Added value: +"Current ATR(14) on D1 in dollars"
      • addedInput schema / properties / context_regime / description
        Added value: +"Current market regime (trending_up/trending_down/ranging/volatile)"
    • Addedcheck_trade_legitimacy
    • Addedcompute_dqs
    • Changedcreate_trading_plan6 fields changed
      • addedInput schema / properties / expiry_days / description
        Added value: +"Days until plan expires (default 30)"
      • addedInput schema / properties / planned_action / description
        Added value: +"JSON string describing what to do (e.g. '{\"type\": \"skip_trade\"}')"
      • addedInput schema / properties / priority / description
        Added value: +"Priority 0-1, higher = checked first (default 0.5)"
      • addedInput schema / properties / reasoning / description
        Added value: +"Why this plan was created"
      • addedInput schema / properties / trigger_condition / description
        Added value: +"JSON string describing when to trigger (e.g. '{\"regime\": \"ranging\"}')"
      • addedInput schema / properties / trigger_type / description
        Added value: +"Type of trigger (e.g. \"market_condition\", \"drawdown\", \"time_based\")"
    • Addedevolution_discover_patterns
    • Addedevolution_evolve_strategy
    • Addedevolution_fetch_market_data
    • Addedevolution_get_log
    • Addedevolution_run_backtest
    • Addedexport_audit_trail
    • Changedget_behavioral_analysis2 fields changed
      • addedInput schema / properties / strategy_name / description
        Added value: +"Filter by strategy name. Returns all if omitted."
      • addedInput schema / properties / symbol / description
        Added value: +"Filter by symbol. Returns all if omitted."
    • Addedget_daily_root
    • Changedget_strategy_performance2 fields changed
      • addedInput schema / properties / strategy_name / description
        Added value: +"Filter by strategy name. Returns all strategies if omitted."
      • addedInput schema / properties / symbol / description
        Added value: +"Filter by symbol. Returns all symbols if omitted."
    • Changedget_trade_reflection1 field changed
      • addedInput schema / properties / trade_id / description
        Added value: +"The trade ID to look up"
    • Changedrecall_memories9 fields changed
      • addedInput schema / properties / context_atr_d1 / description
        Added value: +"Current ATR(14) on D1 in dollars"
      • addedInput schema / properties / context_regime / description
        Added value: +"Current market regime (trending_up/trending_down/ranging/volatile)"
      • addedInput schema / properties / hybrid_alpha
        Added value: +{
        +  "default": 0.3,
        +  "description": "Vector vs OWM blend weight [0..1] when hybrid is active.\n0.0 = pure OWM, 1.0 = pure vector. Default 0.3 (OWM-dominant).",
        +  "type": "number"
        +}
      • addedInput schema / properties / limit / description
        Added value: +"Max results (default 10)"
      • addedInput schema / properties / market_context / description
        Added value: +"Current market conditions to match against"
      • addedInput schema / properties / memory_types / description
        Added value: +"Types to query (default: [\"episodic\", \"semantic\"])"
      • addedInput schema / properties / strategy_name / description
        Added value: +"Optional strategy filter"
      • addedInput schema / properties / symbol / description
        Added value: +"Trading instrument (e.g. \"XAUUSD\")"
      • addedInput schema / properties / use_hybrid
        Added value: +{
        +  "default": true,
        +  "description": "If True (default), enable vector + OWM hybrid scoring when\nan embedding backend is available. Falls back to pure OWM silently\nwhen sentence-transformers is not installed.",
        +  "type": "boolean"
        +}
    • Removedrecall_similar_trades
    • Changedremember_trade17 fields changed
      • addedInput schema / properties / confidence / description
        Added value: +"Agent confidence level 0-1 (default 0.5)"
      • addedInput schema / properties / context_atr_d1 / description
        Added value: +"ATR(14) on D1 in dollars"
      • addedInput schema / properties / context_regime / description
        Added value: +"Market regime (trending_up/trending_down/ranging/volatile)"
      • addedInput schema / properties / direction / description
        Added value: +"\"long\" or \"short\""
      • addedInput schema / properties / entry_price / description
        Added value: +"Entry price of the trade"
      • addedInput schema / properties / entry_timestamp
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "ISO format entry time. Used to compute hold duration."
        +}
      • addedInput schema / properties / exit_price / description
        Added value: +"Exit price of the trade"
      • addedInput schema / properties / exit_timestamp
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "ISO format exit time. Used to compute hold duration."
        +}
      • addedInput schema / properties / market_context / description
        Added value: +"Description of market conditions"
      • addedInput schema / properties / max_adverse_excursion / description
        Added value: +"Maximum adverse excursion during the trade"
      • addedInput schema / properties / pnl / description
        Added value: +"Profit/loss in account currency"
      • addedInput schema / properties / pnl_r / description
        Added value: +"P&L as R-multiple (risk units). Improves OWM scoring quality."
      • addedInput schema / properties / reflection / description
        Added value: +"Lessons learned from this trade"
      • addedInput schema / properties / strategy_name / description
        Added value: +"Strategy used (e.g. \"VolBreakout\")"
      • addedInput schema / properties / symbol / description
        Added value: +"Trading instrument (e.g. \"XAUUSD\")"
      • addedInput schema / properties / timestamp / description
        Added value: +"ISO format timestamp. Defaults to now (UTC)."
      • addedInput schema / properties / trade_id / description
        Added value: +"Optional custom ID. Auto-generated if omitted."
    • Removedstore_trade_memory
    • Addedvalidate_strategy
    • Addedverify_audit_chain
    • Addedverify_audit_hash
  3. 10 tool updatesv0.4.0
    • First observedcheck_active_plans
    • First observedcreate_trading_plan
    • First observedget_agent_state
    • First observedget_behavioral_analysis
    • First observedget_strategy_performance
    • First observedget_trade_reflection
    • First observedrecall_memories
    • First observedrecall_similar_trades
    • First observedremember_trade
    • First observedstore_trade_memory

TDQS

A4/5.0

Scored across 20 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions, and namespaces (evolution_*, verify_audit_*) help group related operations. However, check_trade_legitimacy vs compute_dqs (both pre-trade gates) and get_agent_state vs get_behavioral_analysis (both aggregate state) have overlapping boundaries an agent could misselect between.

Naming Consistency4/5

Nearly all tools follow a predictable snake_case verb_noun pattern (get_*, create_*, verify_*, check_*), with the evolution_* prefix used consistently as a namespace for that subgroup. Minor deviation is the mixed imperative/noun style of remember_trade, recall_memories, and compute_dqs, but the convention remains readable throughout.

Tool Count4/5

20 tools is on the heavier side but justified by the breadth of the domain (memory, planning, strategy evolution, audit, validation). Each tool maps to a distinct capability rather than being redundant, so the count is reasonable though slightly toward the upper bound.

Completeness4/5

Coverage is strong: memory write/recall, planning create/check, a full evolution loop, and a complete audit trail (export, hash, chain, Merkle root). The notable gap is the planning lifecycle—create_trading_plan mentions manual cancellation but no cancel/update plan tool exists, and there is no delete/update for stored trades.

Maintenance

ActivityActive
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides persistent memory for AI agents by storing session snapshots, factual memories, and conversation summaries. It enables seamless continuity between interactions by allowing agents to restore previous emotional states and recall relevant past experiences.
    -
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for persistent, compounding memory that automatically captures corrections and insights across AI sessions, enabling agents to learn and improve over time.
    5
    371
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that provides AI agents with persistent memory, cross-agent sharing, and context management, enabling them to remember conversations, track complex tasks, and evolve skills across tools.
    2
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that captures and stores user decisions during AI-agent interactions, offering structured decision memory, cognitive bias detection, and personalized advice from historical patterns.
    2
    -