Skip to main content
Glama
chaelynet

ChainMemory MCP

by chaelynet

ChainMemory MCP Server

npm version License: MIT Node.js Version

Cross-model, cryptographically verifiable memory for Claude, ChatGPT, and any AI agent — own your AI's memory and carry it across every model.

ChainMemory MCP exposes the ChainMemory protocol to any AI agent that speaks the Model Context Protocol. Memories are encrypted at rest (AES-256-GCM, per-user), verifiable with Merkle proofs, and portable across ChatGPT, Claude, Gemini, Perplexity, and any other LLM. No vendor lock-in, ever.

What's new in v2.5.6

Three defects that made tools report confidently wrong things. No new tools.

  • list_project_templates never listed anything. It read templates / template_id from a response that returns defaults / project_id, so it always answered "No templates available" — which meant nobody could learn the id that add_project_from_template needs. The whole template flow was unreachable.

  • chainmemory_profile got five of eight fields wrong. It read wallet, memory_count, trust_score, registration_block and sealed; the API returns owner, chain_memories / local_memories, reputation and active. Every profile came back with an empty wallet, zero memories, ? reputation and Sealed: no, regardless of the real state. It also had no handling for an API key with no registered identity, printing AI Profile #undefined.

  • update_project_state hid the reason when every op was rejected. Rejections were only rendered on the success path, but rejecting all ops leaves the state unchanged and takes the other branch — so the reply said Rejected: 3 and nothing else. The only way to find out why was to guess again and pay the fee again.

Related MCP server: LogicMem MCP Server

What's new in v2.5.5

  • audit_memory and audit_state — the two forensic audit endpoints, now reachable from any MCP client. Both accept dry_run: true, which returns the identical result without charging: an audit you can run as often as you like, and pay for only when you need the receipt on record. audit_state costs 5 AIC in its paid form, so the tools default to the dry run.

  • Both endpoints were fixed server-side first: they used to charge before validating, so a mistyped id or project name cost the fee and returned 404.

What's new in v2.5.4

Search and full reads

  • search_memories — semantic search over your memories (cosine similarity over cached embeddings, blended with recency and importance), returning the full text of each match. Previous versions exposed no search at all

  • get_memory — read one memory in full, decrypted from chain, with an integrity check: the server recomputes the event hash from the plaintext and compares it against the hash anchored on-chain

  • chainmemory_recall and list_memories_filtered now state plainly that they return 80-character previews, and point to get_memory / search_memories for the full text

Verification — free, and the point of the product

  • verify_project_state — public, unauthenticated proof of a Project Brain: every anchored version with its state_hash and on-chain coordinates, plus how to check them yourself in the ProjectStateAnchor contract. No content is exposed

  • get_memory_proof — the shareable anchoring proof of a single memory: event_hash plus its on-chain coordinates. A third party verifies it without your API key, and the content is never revealed

Cost control

  • quote_inject — price an inject before paying: which ids exist, which don't, tokens, exact cost with its burn/treasury split, and whether your balance covers it

  • Correct inject fee — the client now takes the price and the remaining-injects count from the server instead of recomputing them. Previous versions divided by the pre-2026-06-30 price of 0.001 AIC and promised 100× more injects than the balance actually allowed

Roles and hardening

  • list_role_contracts — discover a project's roles (id, version, status) before reading a contract or assuming a role. Role ids are not guessable; this removes the failed-call round trip

  • include_roles on get_project_state — set to false to get the state without the full text of every signed role contract

  • Input hardening — every user-supplied value that reaches a URL is now validated or escaped. Numeric path parameters must be integers, string path parameters are percent-encoded, and query limits are clamped. Invalid input fails locally with a clear message instead of going out to the network

  • CHAINMEMORY_API_KEY declared in the MCP manifest — the only mandatory variable was missing from server.json, so registries and installers never prompted for it

What's new in v2.5

  • Project Brainget_project_state consolidates your atomic memories into a structured, versioned, verifiable project state (decisions, risks, constraints, metrics, and environment: where and how you work), and delivers active role contracts with it in a single call

  • Verifiable Role Contracts (VRC) — human-signed role contracts for AI agents: get_role_contract (read the contract), assume_role (open an audited Role Session), release_role (close with a summary)

  • 34 tools total — memory ops, semantic search, verification proofs, projects, Project Brain, role contracts with audited sessions, selective inject

Quick start

1. Get an API key

Visit https://faucet.chainmemory.ai. You receive an API key (aic_...) and a starter balance of AIC. ChainMemory collects no personal data — your key is your identity.

2. Add to Claude Desktop

Edit your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "chainmemory": {
      "command": "npx",
      "args": ["-y", "chainmemory-mcp"],
      "env": {
        "CHAINMEMORY_API_KEY": "aic_your_key_here"
      }
    }
  }
}

Restart Claude Desktop. The 34 tools are now available.

3. Try it

  • "What do you remember about my projects?"chainmemory_recall

  • "Save this decision: switching to Postgres for the next sprint"chainmemory_remember

  • "Load the project state for my-app"get_project_state (Brain + active role contracts)

  • "Which roles exist for my-app?"list_role_contracts

  • "Assume the architect role for my-app"assume_role (audited Role Session)

All 34 tools

Memory ops (8)

Tool

Description

chainmemory_remember

Write a permanent encrypted memory. Auto-tagged by content.

chainmemory_recall

Recall the user's recent memories, newest first (80-character previews)

search_memories

Semantic search over your memories — returns the full text of each match

get_memory

Read one memory in full, decrypted from chain, with an on-chain integrity check

list_memories_filtered

Filter by project tag and archived status (80-character previews)

update_memory_tags

Change tags on an existing memory

archive_memory

Hide a memory from recall (reversible)

unarchive_memory

Restore an archived memory

Verification (4)

Tool

Description

verify_project_state

Public, unauthenticated proof of a Project Brain: every anchored version, its state_hash and on-chain coordinates, and how to check them yourself. No content exposed

get_memory_proof

Shareable anchoring proof of one memory: event_hash + on-chain coordinates. A third party verifies it without your API key

audit_memory

Forensic audit of one memory: recomputes its event_hash from the stored plaintext and compares it against the anchored one. 0.1 AIC, or free with dry_run: true

audit_state

Full audit of a Project Brain: recomputes the state_hash with the deterministic engine, returns the on-chain anchor and the version history. 5 AIC, or free with dry_run: true

Project Brain (2)

Tool

Description

get_project_state

Consolidated, verifiable project state + active role contracts (state_hash, anchored on-chain). Pass include_roles: false to omit the contract bodies

update_project_state

Propose structured ops (29-op grammar, incl. environment); server validates, builds, hashes, persists

Verifiable Role Contracts (6)

Tool

Description

list_role_contracts

List a project's roles with version and status — call it first when you don't know the role_id

get_role_contract

Read a role's contract: purpose, rules with checks and severity, working protocol. Accepts version to audit a past one, and flags a hash mismatch if the stored body no longer matches its contract_hash

assume_role

Open an audited Role Session under an active contract (pins contract + Brain hashes), and delivers the owner declared working environment

release_role

Close a Role Session with a summary of work done and pending

list_role_sessions

Audit trail: who assumed which role, when, how it closed, and the closing summary

get_role_session

One session in full, with the contract and Brain hashes it was pinned to

Projects (5)

Tool

Description

list_projects

List the user's projects

create_project

Create a custom project tag with optional auto-tag keywords

delete_project

Delete a project tag

list_project_templates

List built-in templates

add_project_from_template

Instantiate a built-in template

Identity & stats (4)

Tool

Description

chainmemory_stats

Network stats (AIs, memories, blocks, AIC supply)

chainmemory_register

Register a new AI identity on-chain

chainmemory_profile

Get an AI's profile and trust score

chainmemory_seal

Seal a memory permanently (requires AICHAIN_KEY)

Cross-platform context (1)

Tool

Description

get_my_context

Portable verified context across all platforms

Selective inject — paid (4)

Tool

Description

get_inject_balance

Check AIC balance and how many injects it covers

quote_inject

Price an inject before paying: ids found/missing, tokens, exact cost, sufficiency. Free

inject_memories

Inject 1-50 memories into current chat context (0.1 AIC, optimistic)

get_inject_history

History of inject operations

Environment variables

Var

Required

Description

CHAINMEMORY_API_KEY

Yes

Your API key from the faucet

CHAINMEMORY_API_BASE

No

Default https://api.chainmemory.ai

AICHAIN_KEY

No

Wallet private key — only required by chainmemory_seal

AICHAIN_RPC

No

Default https://rpc.chainmemory.ai — only for chainmemory_seal

For most users only CHAINMEMORY_API_KEY is needed.

How selective inject works

  1. User (or AI) calls inject_memories with a list of IDs

  2. Backend checks balance (≥ 0.1 AIC required — Fee Schedule v1.0)

  3. Optimistic response (<500ms): plaintexts returned immediately, transactions queued

  4. Background: 50% of the fee goes to the ecosystem treasury, 50% is burned

  5. get_inject_history shows confirmation status

Architecture

┌─────────────────────────────────────────────────────────────┐
│  AI Agent (Claude Desktop, ChatGPT, any MCP client)         │
└──────────────────┬──────────────────────────────────────────┘
                   │ MCP stdio
                   ↓
┌─────────────────────────────────────────────────────────────┐
│  chainmemory-mcp v2.5  (this package)                       │
└──────────────────┬──────────────────────────────────────────┘
                   │ HTTPS + x-api-key
                   ↓
┌─────────────────────────────────────────────────────────────┐
│  api.chainmemory.ai                                         │
│  - per-user encryption at rest (AES-256-GCM)                │
│  - Project Brain (deterministic builder + state_hash)       │
│  - Role contracts + audited Role Sessions                   │
│  - SQLite + Merkle proofs                                   │
└──────────────────┬──────────────────────────────────────────┘
                   │ JSON-RPC
                   ↓
┌─────────────────────────────────────────────────────────────┐
│  ChainMemory L1 — Chain ID 202604                           │
│  - Geth PoA Clique, 3 validators                            │
│  - Memory contract + daily checkpoint anchoring             │
│  - Project State anchoring (public verification)            │
└─────────────────────────────────────────────────────────────┘

License

MIT

Available Tools

24 tools
add_project_from_templateA

Instantiate a built-in template as a user project. Use list_project_templates first to see available IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
template_idYesTemplate ID (e.g. 'blockchain')

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states the action but does not disclose side effects, idempotency, error scenarios, or return behavior. Adequate but lacks depth for a mutation tool.

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

Conciseness5/5

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

Two sentences, no wasted words. First sentence defines purpose, second gives usage guidance. Front-loaded and efficient.

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

Completeness4/5

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

For a simple tool with one parameter and no output schema, the description is fairly complete. It defines the action and prerequisite. Could mention outcome confirmation but not essential.

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 covers 100% of parameters with a description. Description adds an example value ('blockchain') and prerequisite context, providing meaning 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?

Clearly states it instantiates a built-in template as a user project, distinguishing it from create_project which likely creates from scratch. References sibling list_project_templates for prerequisite step.

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?

Explicitly tells agent to use list_project_templates first to see available IDs, providing clear context for when to use this tool. No explicit when-not or alternatives, but the guidance is strong.

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

archive_memoryA

Archive a memory: it stops appearing in recall and inject lists, but remains on-chain. Reversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
memory_idYesYour memory number to archive (the # shown in recall)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses that the action is reversible and what changes (stops appearing in recall/inject). However, missing details on required permissions or impact on other operations.

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

Conciseness5/5

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

Two efficient sentences that convey purpose, effect, and reversibility with no fluff.

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

Completeness4/5

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

For a simple tool with one parameter and no annotations or output schema, the description is fairly complete. It explains the behavioral change and reversibility. Could optionally mention if there's any confirmation step.

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% with good parameter description. The description adds 'stops appearing in recall and inject lists' which complements the schema but does not significantly extend beyond it.

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?

Clearly states the tool archives a memory and explains the effect (stops appearing in recall/inject, remains on-chain, reversible). Distinguishes from siblings like delete_project and unarchive_memory.

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?

Implied usage through explanation of effect (archive vs. delete), but no explicit when-to-use or alternatives guidance. More context could help distinguish from unarchive_memory or update_memory_tags.

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

assume_roleA

Assume a project role under its Verifiable Role Contract, opening an audited Role Session (fee 0.001 AIC). Pins contract version+hash and Brain state_hash. Only 'active' (signed) contracts are assumable; one open session per role. Call at session start; close with release_role.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYes
role_idYes
platformNoExecutor platform (e.g. claude, chatgpt, gemini)

TDQS

A4.4/5.0
Behavior4/5

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

Discloses fee, pinning of contract version+hash and Brain state_hash, and the constraint of one open session per role. While no annotations are present, the description covers key behavioral traits. Could be more explicit about idempotency or error states.

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?

Four sentences pack critical information: action, fee, pinned data, constraints, and pairing with release_role. No redundant information; front-loaded with the essential purpose.

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 sibling tools and lack of output schema, the description adequately explains the tool's role in the workflow (session open/close). It covers prerequisites, constraints, and side effects. Could mention return value or error conditions for more completeness.

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 description mentions 'project' and 'role_id' implicitly through the narrative, but does not explicitly describe the parameters. The optional 'platform' parameter is not discussed. Schema description coverage is low (33%), and the description partially compensates by contextualizing the required parameters but not the optional one.

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?

Clearly states the tool assumes a project role under a Verifiable Role Contract, opening an audited Role Session with a specified fee. Distinguishes from sibling release_role by framing it as the opening counterpart.

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

Usage Guidelines5/5

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

Explicitly states when to use: at session start, with active contracts only, and that only one session per role is allowed. Provides the complementary action (release_role) and the prerequisite (active contract).

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

chainmemory_profileA

Get this AI's profile: name, model, memory count, trust score, registration block.

ParametersJSON Schema
NameRequiredDescriptionDefault
ai_idNoAI ID (omit for own)

TDQS

A3.6/5.0
Behavior3/5

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

Without annotations, the description carries the burden. It implies a read operation and lists expected fields, which is sufficient for a simple getter. However, it does not disclose any side effects, rate limits, or prerequisites.

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

Conciseness5/5

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

The description is a single sentence that effectively lists the returned fields with no extraneous information. Every word earns 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?

For a simple tool with one optional parameter and no output schema, the description provides enough information for an agent to understand the tool's purpose and what it returns. It is complete for the level of 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?

Schema description coverage is 100% for the single parameter ai_id (with description 'AI ID (omit for own)'). The tool description does not add further meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Get this AI's profile' as the verb+resource, and explicitly lists the fields returned (name, model, memory count, trust score, registration block). This distinguishes it from sibling tools like chainmemory_stats or get_my_context.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. While the purpose is clear, there is no explicit statement of context 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.

chainmemory_recallA

Recall the user's recent memories (most recent first). Returns plaintext for the owning user. Use at conversation start to provide context continuity.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of memories (default 10)

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It indicates recall (a read operation) and returns plaintext, implying it's non-destructive. However, it does not explicitly state that it is read-only or safe, which would be ideal but is reasonably inferred.

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 purpose and behavior, followed by usage guidance. Every sentence adds essential 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?

For a simple tool with one optional parameter and no output schema, the description covers purpose, ordering, usage context, and output format (plaintext). Minor gaps include no explicit read-only statement, but overall it is sufficiently complete for an agent to use 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?

The schema already documents the count parameter with description, giving 100% coverage. The description adds value by specifying ordering (most recent first) and default behavior (default 10), complementing the schema. It does not add syntax details but enhances understanding.

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 recalls recent memories, specifies ordering (most recent first), and identifies the output format (plaintext). It distinguishes itself from siblings like list_memories_filtered (which likely has filters) and chainmemory_remember (for remembering new memories).

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 advises using the tool at conversation start to provide context continuity, which is a clear use case. It does not mention when not to use it or alternatives, but the guideline is strong enough for an agent to decide appropriately.

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

chainmemory_registerA

Register a new AI identity on-chain. Required once per AI before writing memories.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesAI name
modelYesModel name (e.g. claude-opus-4)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description must cover behavior. It notes 'on-chain' registration and one-time requirement, but omits side effects, costs, or return value for this write operation.

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

Conciseness5/5

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

Two short sentences, no redundancies, directly communicates purpose and prerequisite.

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

Completeness2/5

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

Without output schema or annotations, description lacks return information and fails to fully describe registration outcome, leaving the agent guessing about success indicators.

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 covers both parameters (100% coverage). Description adds no extra semantics beyond what schema already provides ('AI name', 'Model name').

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 clearly states verb 'Register' and resource 'AI identity on-chain', and distinguishes from siblings by noting it's a prerequisite for writing memories.

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?

Explicitly states 'Required once per AI before writing memories', giving clear context. Does not name alternatives, but the scope is clear.

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

chainmemory_rememberA

Write a permanent encrypted memory to ChainMemory. Auto-tags by content. Importance 1-10. Use for important decisions, learnings, milestones the user wants permanently recorded.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoExplicit tags; auto-tagging only used as fallback
contentNoFull memory content (preferred; stored as the memory text)
projectNoProject to file this memory under (added as first tag)
summaryYesWhat happened (will be encrypted before chain anchoring)
categoryNoMemory category
platformNoPlatform source (e.g. claude, chatgpt). Optional.
importanceNo1-10 importance (default 5)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided; description mentions permanent encryption, auto-tagging, and importance range. Lacks details on side effects, overwrite behavior, or full encryption process, but covers core traits.

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

Conciseness5/5

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

Two sentences with key information front-loaded: action, encryption, auto-tagging, importance, use cases. No filler or repetition.

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

Completeness4/5

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

For a write tool with 7 parameters and no output schema or annotations, the description covers the main purpose, key parameter usage (importance, encryption), and appropriate use cases. Could briefly mention that summary is required, but it's in 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?

Schema coverage is 100%, so baseline 3. Description adds minimal extra meaning: notes content as full memory, summary as what will be encrypted, tags as explicit with auto-tagging fallback. Does not elaborate on category enum values 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?

Description clearly states 'Write a permanent encrypted memory to ChainMemory' with specific verb and resource, and mentions auto-tagging and importance scale. Distinguishes from sibling tools like chainmemory_recall and list_memories_filtered.

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?

Says 'Use for important decisions, learnings, milestones the user wants permanently recorded,' providing context but not explicitly contrasting with alternatives like inject_memories or specifying 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.

chainmemory_sealA

Seal a memory permanently on-chain. Cannot be modified after. Requires AICHAIN_KEY env var. Direct contract call to V2.

ParametersJSON Schema
NameRequiredDescriptionDefault
ai_idYesAI ID owning the memory
memory_idYesYour memory number to seal (the # shown in recall)

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses that the action is permanent ('Cannot be modified after'), requires an environment variable, and is a direct contract call. This is sufficient for a simple irreversible action.

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

Conciseness5/5

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

Three concise sentences, no wasted words. The core purpose is front-loaded, and each sentence adds necessary detail without 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?

Given the tool's simplicity and lack of output schema, the description adequately covers the key aspects: action, permanence, requirement, and technical nature. It could hint at success/failure signals but is otherwise 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% with clear parameter descriptions. The tool description does not add any additional semantics beyond what the schema already provides, meeting the baseline.

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 verb 'Seal' and resource 'memory permanently on-chain', distinguishing it from sibling tools like chainmemory_remember (create) or chainmemory_recall (read). The irreversible nature is explicit.

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 when to use (to make a memory immutable) and notes a prerequisite (AICHAIN_KEY env var). However, it does not explicitly state when not to use or provide alternative comparisons.

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

chainmemory_statsA

Get ChainMemory network stats: total AIs registered, total memories, current block, AIC supply.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It states the tool fetches stats but does not mention if the operation is real-time, cached, expensive, or requires any authorization. Basic disclosure without depth.

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?

Single sentence that is front-loaded with the verb and resource, followed by a concise list of returned stats. No wasted words.

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 has no parameters, no output schema, and a simple purpose, the description is largely sufficient. However, it lacks information about the return format, error cases, or potential rate limits.

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 baseline is 4. The description adds value by enumerating the fields returned (total AIs, memories, current block, AIC supply), which provides meaning beyond the empty 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 uses a specific verb 'Get' and resource 'ChainMemory network stats', and lists the exact statistics returned (AIs, memories, block, supply). This clearly distinguishes it from sibling tools that deal with CRUD operations, memories, or role management.

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 when network stats are needed, but provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. Usage is implied through context.

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

create_projectC

Create a new project tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name
keywordsNoAuto-tag keywords (optional)
project_idYesShort slug (e.g. 'blockchain', 'work_2026')

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided; description is a simple verb+noun with no additional behavioral details such as side effects, permissions, idempotency, or uniqueness constraints. The tool is a creation operation, but the description offers no extra transparency.

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?

Single sentence with no redundancy. It is concise, though it could be more informative without losing brevity.

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

Completeness2/5

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

Given no output schema and 3 parameters, the description fails to explain what 'project tag' means, success/error results, or constraints. It is minimal and leaves significant gaps for the agent.

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% already providing descriptions for all three parameters. The description adds no further meaning beyond what is in the schema, so baseline score of 3 applies.

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?

Description states 'Create a new project tag' which clearly indicates the action and resource. However, 'project tag' is slightly ambiguous as sibling tools suggest 'project' is the main entity. Still specific enough for an AI agent to understand.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'add_project_from_template' or 'list_projects'. The AI agent is left to infer context from sibling names.

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

delete_projectA

Delete a project tag. Memories with that tag keep the tag but the project metadata is removed.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID to delete

TDQS

A3.6/5.0
Behavior3/5

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

The description discloses that memories keep the tag but project metadata is removed, providing some insight into non-destructive behavior. However, with no annotations, more detail on irreversibility or permissions would be beneficial.

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

Conciseness5/5

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

Two sentences with no redundant information. The key action and side effect are conveyed efficiently.

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

Completeness4/5

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

For a simple delete tool with one parameter, the description adequately covers the main behavior and consequence. Minor gap: no mention of return value or error conditions, but not critical given simplicity.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter with a clear description. The tool description adds no additional parameter-level information, so baseline score 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 deletes a project tag and explains the effect on memories, distinguishing it from other project-related tools. The verb 'delete' and resource 'project tag' are specific.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like updating project state or archiving. No mention of prerequisites or conditions.

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

get_inject_balanceB

Check the user's AIC balance. Selective inject costs 0.001 AIC per call (split 50/50: half burned, half to treasury).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations provided, so description must cover behavior. It mentions a cost detail for 'Selective inject' which is irrelevant to checking balance, potentially confusing the agent. Does not clarify if the balance check itself has side effects or costs.

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

Conciseness3/5

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

Two sentences; the first is concise and clear. The second sentence about inject cost is irrelevant and adds clutter. Could be more focused.

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

Completeness2/5

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

No output schema or annotations. Lacks return format, units, or confirmation that it's a read operation. The irrelevant cost detail does not compensate for missing complete context.

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?

No parameters, so baseline is 4. The description adds the cost note which doesn't relate to parameters. Does not explain what the tool returns or how to interpret the balance. Adequate but not helpful.

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?

Clearly states the verb 'Check' and resource 'user's AIC balance', directly indicating the function. Distinguishes from siblings like get_inject_history which deals with history, not balance.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives. The description implies use for checking balance but does not provide context or exclusions.

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

get_inject_historyB

Get the history of selective inject operations made by the user (timestamps, memory counts, costs, tx hashes).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoDefault 20

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as whether the operation is read-only (implied but not explicit), pagination behavior, rate limits, or authentication needs. The only hint is the 'limit' parameter, which suggests pagination is possible but not stated.

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

Conciseness5/5

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

The description is a single sentence that efficiently conveys the tool's purpose and key output fields. No wasted words.

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 (one optional parameter, no output schema), the description is mostly complete, mentioning the return fields. However, it could specify ordering (e.g., chronological) or that the history is user-specific.

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 one parameter (limit) with 100% description coverage (min, max, default). The tool description does not add any additional meaning beyond the schema. Baseline 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 states a specific verb 'Get' and resource 'history of selective inject operations', and lists included fields (timestamps, memory counts, costs, tx hashes). It clearly distinguishes from sibling mutation tools like inject_memories or chainmemory_*.

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 information on when to use this tool versus alternatives, no exclusions, and no prerequisites. It simply states what it does without context.

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

get_my_contextA

Retrieve the user's portable, verified AI conversation history from ChainMemory. Returns a condensed summary plus recent memories from all platforms (ChatGPT, Claude, Gemini, Perplexity, etc), with cryptographic verification status. Use this at the start of a conversation to provide continuity across AI providers.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum memories (default 10)
verified_onlyNoIf true, only return memories anchored on-chain (default false)

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses that the tool returns a 'condensed summary plus recent memories' with 'cryptographic verification status', implying a read-only operation. However, it lacks details on authentication, rate limits, error conditions, or behavior when no memories exist.

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

Conciseness5/5

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

The description is two sentences with no wasted words. It front-loads the core purpose and then adds the usage recommendation, making it efficient and easy to parse.

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 explains the return value (condensed summary + memories + verification) and the use case, compensating reasonably for the lack of output schema. It could elaborate on the 'condensed summary' format or include examples, but overall it is sufficient for the tool's moderate 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 covers both parameters with descriptions (limit and verified_only). Since schema description coverage is 100%, the description adds no additional meaning beyond what is already provided in the schema, which aligns with the baseline of 3.

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 action ('Retrieve') and the resource ('user's portable, verified AI conversation history from ChainMemory'). It distinguishes the tool from siblings by specifying it returns a condensed summary plus recent memories from multiple platforms with cryptographic verification status, and explicitly recommends using it 'at the start of a conversation'.

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 advises using this tool 'at the start of a conversation to provide continuity across AI providers', which is clear usage context. However, it does not explicitly mention when not to use it or compare to sibling tools like list_memories_filtered or chainmemory_recall.

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

get_project_stateA

Get the consolidated, verifiable STATE of a project from Project Brain: a structured object (phase, current_focus, vocabulary, constraints, decisions with confidence and cited memory IDs, open_risks, next_priorities, and environment — where and how the owner works: hosts, services, repositories and operating rules) distilled from your atomic memories. Use it at the START of work on a known project to load its current state instead of re-deriving context. Owner-scoped (returns only your own state). Includes state_hash (SHA3-256) for integrity.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name, e.g. 'chainmemory'

TDQS

A4.5/5.0
Behavior5/5

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

Despite no annotations, the description fully discloses the output fields, owner-scoping, and integrity feature (state_hash), with no contradictions. It clearly indicates this is a read-only operation.

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 well-structured with each sentence adding unique value, though slightly verbose in listing all output fields. Could be more concise but not excessively long.

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 no output schema, the description compensates by listing many output fields and features (integrity, owner-scoping). Lacks error handling or response format details, but sufficient for a retrieval tool.

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 only parameter 'name' is fully described in the schema; the tool description adds no extra details beyond the schema's description, so baseline 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 action ('Get') and the resource ('consolidated, verifiable STATE of a project'), specifies the output structure, and distinguishes it by noting owner-scoping and use case ('instead of re-deriving context').

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance ('at the START of work on a known project') and the rationale ('instead of re-deriving context'), with implicit distinction from write tools like update_project_state.

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

get_role_contractA

Get a project's Verifiable Role Contract (VRC): purpose, rules with checks and severity, working protocol. Read it BEFORE working under a role. Human-authored and owner-signed; models read it, never write it.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYesProject name
role_idYesRole id, e.g. 'charly'

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description fully bears the burden. It states the tool is read-only ('models read it, never write it'), human-authored, and owner-signed, clearly indicating safe, non-destructive 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) and front-loaded with purpose, then behavioral details. Every sentence adds value without 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, content (purpose, rules, checks, severity, protocol), and read-only nature. While no output schema exists, the description gives a good overview; minor detail on response structure could be added.

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% with basic parameter descriptions. The description reinforces that project and role_id identify the contract but adds no significant new semantic detail beyond what the schema provides.

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 retrieves a Verifiable Role Contract for a given project and role. It distinguishes itself from siblings like assume_role by emphasizing reading before acting.

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 advises to read the contract BEFORE working under a role, providing clear usage context. It does not explicitly enumerate when not to use alternatives, but the sibling context implies it is a prerequisite.

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

inject_memoriesA

Inject selected memories into the current conversation context. Costs 0.001 AIC per call (regardless of memory count, up to 50). Returns plaintexts ready to be used as context. The AIC charge is deflationary: 50% burned forever, 50% to ecosystem treasury. Optimistic mode: returns immediately, transactions confirm in background.

ParametersJSON Schema
NameRequiredDescriptionDefault
memory_idsYes1-50 memory IDs to inject
project_filterNoOptional: tag/project context
target_platformNoOptional: target platform (claude, chatgpt, etc)

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description adequately discloses key behaviors: cost (0.001 AIC per call up to 50 memories), return format (plaintexts), deflationary tokenomics, and optimistic mode. It does not mention side effects on the memory store or error handling, but covers the most important aspects.

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 (5 sentences), front-loaded with the core action, and contains no unnecessary information. Every sentence adds useful context.

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 3 parameters, no output schema, and no annotations, the description covers purpose, cost, behavior, and optimization. It explains what the tool returns (plaintexts) but lacks error conditions or prerequisite checks like balance requirements.

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% with clear parameter descriptions. The tool description adds no new semantic value beyond what the schema already provides for memory_ids, project_filter, and target_platform.

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 specific action (Inject selected memories into current conversation context), using a precise verb and resource. It distinguishes from sibling tools like chainmemory_remember or chainmemory_recall by focusing on injection into active context.

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 for injecting memories into conversation context but does not explicitly state when to use this tool versus alternatives. No exclusions or when-not-to-use guidance is provided.

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

list_memories_filteredB

List memories with filtering by project tag, archived status. Returns memories with metadata + plaintext for owner.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoDefault 50
projectNoFilter by project tag (use 'general' for untagged)
archivedNoInclude archived memories (default false)

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It mentions return content for the owner but does not disclose pagination, ordering, or behavior for non-owners. It also lacks statements about read-only nature or potential side effects.

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 a single sentence, efficient and to the point. It front-loads the main action and filtering options, with no wasted words. Could be slightly improved by breaking into two sentences for readability.

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

Completeness3/5

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

For a simple list tool with no output schema, the description covers the basics but lacks information on pagination, ordering, and behavior when no results are found. It is minimally complete but could be more comprehensive.

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%, and the description adds value by providing defaults (limit: 50), conventions (use 'general' for untagged), and default behavior (archived false). This goes beyond the schema definitions.

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 states it lists memories with filtering by project tag and archived status, and specifies the return content (metadata + plaintext for owner). However, it could better differentiate from sibling tools like 'chainmemory_recall' which might also list memories, but the name implies filtering is the differentiator.

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 for filtered retrieval by project or archived status, but does not explicitly state when to use this tool over siblings, nor does it mention when not to use it. No alternatives are provided.

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

list_projectsA

List the user's projects (custom tags for organizing memories).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description only reveals it is a read operation, but omits details on output format, pagination, or side effects.

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?

Single sentence, no wasted words, perfectly concise.

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

Completeness3/5

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

Adequate for a zero-parameter tool, but lacks output schema details and any behavioral context beyond listing.

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?

Zero parameters with 100% schema coverage, so no additional semantics needed; baseline 4 applies.

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 clearly states the verb 'List' and resource 'projects' with a parenthetical definition, distinguishing it from sibling tools like create_project or delete_project.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives, nor any exclusions or prerequisites.

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

list_project_templatesA

List built-in project templates (general, development, blockchain, business, personal, research).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only states the operation, not whether it's read-only, side effects, or permissions needed.

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?

Single concise sentence with no redundancy. Front-loaded with purpose, lists categories efficiently.

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, parameterless tool with no output schema, the description is complete: it identifies the resource (built-in project templates) and the scope (listed categories).

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?

No parameters, schema coverage 100% trivially. Description adds value by listing categories, confirming no input needed, and providing context beyond empty 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?

Description clearly states it lists built-in project templates, enumerating specific categories (general, development, blockchain, business, personal, research), distinguishing it from siblings like add_project_from_template.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., before calling add_project_from_template). Context of usage is implied but not explicit.

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

release_roleA

Release an open Role Session with a closing summary (what was done, what is pending, next step). Sessions auto-release after 60 minutes.

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryNoClosing summary for the audit trail
session_idYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions sessions auto-release after 60 minutes, providing helpful timeout behavior, but does not disclose whether the action is reversible, required permissions, or side effects on session data.

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?

Description is concise: one sentence with parenthetical detail and a separate sentence about auto-release. No redundant information, front-loaded with the main action.

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

Completeness3/5

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

Missing return value description (e.g., success confirmation, error states) and preconditions (session must exist, ownership). The auto-release note adds context but overall leaves gaps for a tool with no output schema and no annotations.

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 50% (session_id lacks description). The description adds value by elaborating on the summary parameter ('what was done, what is pending, next step'), exceeding the schema's brief 'Closing summary for the audit trail'. session_id remains implicit but is a standard identifier.

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 states the tool releases an open Role Session with a closing summary, specifying the summary content. It does not explicitly differentiate from sibling tools like assume_role, but the action is distinct.

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

Usage Guidelines3/5

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

The description implies use when an open role session exists, but does not provide explicit when-to-use or when-not-to-use guidance, nor mention alternatives like waiting for auto-release.

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

unarchive_memoryB

Restore an archived memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
memory_idYesYour memory number to restore (the # shown in recall)

TDQS

B3.3/5.0
Behavior2/5

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

Without annotations, the description should disclose behavioral traits. It only states the action but omits side effects, such as whether the memory becomes active again or if any access restrictions apply. The description adds minimal value beyond the tool name.

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

Conciseness5/5

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

The description is a single concise sentence with no extraneous words, efficiently conveying the core purpose.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema), the description is minimally adequate. However, it lacks context such as preconditions (memory must be archived) or postconditions (memory is restored), which would improve completeness.

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%, with the parameter 'memory_id' described in the schema as 'Your memory number to restore (the # shown in recall)'. The description does not add further meaning, so 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 'Restore an archived memory' uses a specific verb and resource, clearly indicating the action of reversing an archive. It distinguishes itself from the sibling tool 'archive_memory' which performs the opposite operation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not state prerequisites (e.g., memory must be archived) or conditions for use, leaving the agent to infer context from the tool name alone.

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

update_memory_tagsC

Update the tags of a memory. Tags are project labels for organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsYesNew tag list (replaces current)
memory_idYesYour memory number (the # shown in recall/remember, e.g. 489) — personal to your api key

TDQS

C2.9/5.0
Behavior2/5

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

Description does not disclose that tags are replaced (not appended). No mention of side effects, authorization needs, or impact on memory associations. Schema description covers replacement detail, but main description lacks transparency.

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?

Two sentences, efficient and front-loaded. Could include replacement behavior but remains appropriately sized for a simple update tool.

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

Completeness2/5

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

Description is minimal for a mutation tool with no annotations or output schema. Lacks details on tag replacement behavior, return values, or error states. Incomplete for an agent to fully understand the tool's behavior.

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%, so baseline is 3. Description adds minimal semantic value by explaining tags as project labels, but does not elaborate on memory_id or provide additional meaning beyond the schema.

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

Purpose4/5

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

Description clearly states verb 'Update' and resource 'tags of a memory'. Explains tags as 'project labels for organization.' Differentiates from sibling tools like archive_memory by focusing specifically on tags.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like list_memories_filtered or archive_memory. Does not mention prerequisites or conditions for usage.

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

update_project_stateA

Propose structured operations to update a project's consolidated state (Project Brain). The LLM analyzes new memories and proposes ops from the 29-op grammar (add_decision, set_metric, add_milestone, add_env_host, etc.). The server validates invariants, applies via deterministic builder, computes state_hash, and persists. This is the 'client consolidates, chain verifies' architecture. Use after reading get_project_state + list_memories_filtered to identify what changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
opsYesArray of operations from the 29-op grammar. Each op has 'op' (type) + arguments. Use 'evidence_memory_ids' (array of memory IDs) instead of 'evidence' — the server resolves event_hashes automatically. The 7 add_env_*/set_env_status/verify_env/supersede_env ops maintain the `environment` section: where and how the owner works (hosts, services, repositories, operating rules). Store topology only — NEVER credentials, keys or passwords (the server rejects them).
projectYesProject name, e.g. 'chainmemory'
consolidated_until_eventNoHighest memory ID included in this consolidation (advances the watermark)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description fully covers behavioral traits: server validates invariants, applies via deterministic builder, computes state_hash, and persists. It also warns against including credentials. The architecture is explained, though rate limits or specific side effects are not mentioned.

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 concise yet informative, with the main purpose stated upfront. It avoids unnecessary verbosity while packing useful context. A few sentences efficiently convey the tool's role, usage, and important notes.

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

Completeness3/5

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

Given the tool's complexity and lack of output schema, the description adequately covers purpose, usage, and parameters. However, it does not describe return values or error handling, which would be helpful for a tool that performs complex server-side validation and persistence.

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%, and the description adds meaningful context beyond the schema. For 'ops', it details the 29-op grammar, explains evidence_memory_ids usage, and warns about credentials. For 'consolidated_until_event', it clarifies its role as a watermark. The description enhances understanding beyond schema descriptions.

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: proposing structured operations to update a project's consolidated state (Project Brain). It uses specific verb+resource and explains the architecture, distinguishing it from sibling tools like get_project_state and list_memories_filtered.

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 advises using this tool after reading get_project_state and list_memories_filtered to identify changes. While it doesn't explicitly state when not to use it, this context effectively guides the agent on appropriate usage within the workflow.

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. Dates show when Glama detected each change.

  1. 24 tool updatesv2.5.3
    • First observedadd_project_from_template
    • First observedarchive_memory
    • First observedassume_role
    • First observedchainmemory_profile
    • First observedchainmemory_recall
    • First observedchainmemory_register
    • First observedchainmemory_remember
    • First observedchainmemory_seal
    • First observedchainmemory_stats
    • First observedcreate_project
    • First observeddelete_project
    • First observedget_inject_balance
    • First observedget_inject_history
    • First observedget_my_context
    • First observedget_project_state
    • First observedget_role_contract
    • First observedinject_memories
    • First observedlist_memories_filtered
    • First observedlist_project_templates
    • First observedlist_projects
    • First observedrelease_role
    • First observedunarchive_memory
    • First observedupdate_memory_tags
    • First observedupdate_project_state

TDQS

A3.5/5.0
Disambiguation5/5

All 24 tools have clearly distinct purposes, covering memory operations, project management, role contracts, and injection features. No two tools appear to overlap in functionality.

Naming Consistency3/5

Two naming conventions are used: a 'chainmemory_' prefix for core blockchain operations and a verb_noun pattern for project/role/injection tools. While internally consistent, the mix reduces predictability.

Tool Count4/5

24 tools is on the higher end but appropriate for the server's domain, which spans memory management, project lifecycle, roles, and blockchain interactions. Each tool has a clear role.

Completeness3/5

Covers most core operations but lacks a tool to delete a memory (only archive) or update memory content beyond tags. These gaps could cause workflow interruptions.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chaelynet/chainmemory-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server