ChainMemory MCP
ChainMemory MCP is a cross-model memory server that lets AI agents store, retrieve, verify, and manage encrypted, cryptographically verifiable memories and project states across platforms.
Memory Operations: Write (
chainmemory_remember), recall (chainmemory_recall), semantic search (search_memoriesusing cosine similarity, blended with recency and importance), read full memory with integrity verification (get_memory), filter/list (list_memories_filtered), update tags (update_memory_tags), archive/unarchive, and permanently seal (chainmemory_seal, requires blockchain key).Verification & Auditing: Generate shareable proofs (
get_memory_proof,verify_project_state) without revealing content; run forensic audits (free dry-run) on individual memories or project states (audit_memory,audit_state).Project Brain: Create and update a structured, versioned, verifiable project state (
get_project_state,update_project_state) with decisions, risks, metrics, environment, and active role contracts.Verifiable Role Contracts: Discover, read, assume, and release audited roles (
list_role_contracts,get_role_contract,assume_role,release_role) with human-signed contracts, tracking session history.Project Management: List, create, and delete projects; use built-in templates (
list_project_templates).Cross-Platform Context: Retrieve portable context (
get_my_context) across AI platforms (Claude, ChatGPT, Gemini, etc.) with cryptographic verification.Selective Inject: Inject 1–50 specific memories into chat context (paid, optimistic response) with balance check, quoting, and history (
get_inject_balance,quote_inject,inject_memories,get_inject_history).Identity & Stats: Register AI identities, view profiles and trust scores, get network statistics (
chainmemory_register,chainmemory_profile,chainmemory_stats).
Enables portable, cryptographically verifiable memory that can be used across different AI models including Perplexity.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ChainMemory MCPSave this decision: switching to Postgres for the next sprint"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ChainMemory MCP Server
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_templatesnever listed anything. It readtemplates/template_idfrom a response that returnsdefaults/project_id, so it always answered "No templates available" — which meant nobody could learn the id thatadd_project_from_templateneeds. The whole template flow was unreachable.chainmemory_profilegot five of eight fields wrong. It readwallet,memory_count,trust_score,registration_blockandsealed; the API returnsowner,chain_memories/local_memories,reputationandactive. Every profile came back with an empty wallet, zero memories,?reputation andSealed: no, regardless of the real state. It also had no handling for an API key with no registered identity, printingAI Profile #undefined.update_project_statehid 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 saidRejected: 3and 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_memoryandaudit_state— the two forensic audit endpoints, now reachable from any MCP client. Both acceptdry_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_statecosts 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 allget_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-chainchainmemory_recallandlist_memories_filterednow state plainly that they return 80-character previews, and point toget_memory/search_memoriesfor 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 itsstate_hashand on-chain coordinates, plus how to check them yourself in theProjectStateAnchorcontract. No content is exposedget_memory_proof— the shareable anchoring proof of a single memory:event_hashplus 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 itCorrect 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 tripinclude_rolesonget_project_state— set tofalseto get the state without the full text of every signed role contractInput 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_KEYdeclared in the MCP manifest — the only mandatory variable was missing fromserver.json, so registries and installers never prompted for it
What's new in v2.5
Project Brain —
get_project_stateconsolidates 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 callVerifiable 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 |
| Write a permanent encrypted memory. Auto-tagged by content. |
| Recall the user's recent memories, newest first (80-character previews) |
| Semantic search over your memories — returns the full text of each match |
| Read one memory in full, decrypted from chain, with an on-chain integrity check |
| Filter by project tag and archived status (80-character previews) |
| Change tags on an existing memory |
| Hide a memory from recall (reversible) |
| Restore an archived memory |
Verification (4)
Tool | Description |
| Public, unauthenticated proof of a Project Brain: every anchored version, its |
| Shareable anchoring proof of one memory: |
| Forensic audit of one memory: recomputes its |
| Full audit of a Project Brain: recomputes the |
Project Brain (2)
Tool | Description |
| Consolidated, verifiable project state + active role contracts (state_hash, anchored on-chain). Pass |
| Propose structured ops (29-op grammar, incl. environment); server validates, builds, hashes, persists |
Verifiable Role Contracts (6)
Tool | Description |
| List a project's roles with version and status — call it first when you don't know the |
| Read a role's contract: purpose, rules with checks and severity, working protocol. Accepts |
| Open an audited Role Session under an active contract (pins contract + Brain hashes), and delivers the owner declared working environment |
| Close a Role Session with a summary of work done and pending |
| Audit trail: who assumed which role, when, how it closed, and the closing summary |
| One session in full, with the contract and Brain hashes it was pinned to |
Projects (5)
Tool | Description |
| List the user's projects |
| Create a custom project tag with optional auto-tag keywords |
| Delete a project tag |
| List built-in templates |
| Instantiate a built-in template |
Identity & stats (4)
Tool | Description |
| Network stats (AIs, memories, blocks, AIC supply) |
| Register a new AI identity on-chain |
| Get an AI's profile and trust score |
| Seal a memory permanently (requires |
Cross-platform context (1)
Tool | Description |
| Portable verified context across all platforms |
Selective inject — paid (4)
Tool | Description |
| Check AIC balance and how many injects it covers |
| Price an inject before paying: ids found/missing, tokens, exact cost, sufficiency. Free |
| Inject 1-50 memories into current chat context (0.1 AIC, optimistic) |
| History of inject operations |
Environment variables
Var | Required | Description |
| Yes | Your API key from the faucet |
| No | Default |
| No | Wallet private key — only required by |
| No | Default |
For most users only CHAINMEMORY_API_KEY is needed.
How selective inject works
User (or AI) calls
inject_memorieswith a list of IDsBackend checks balance (≥ 0.1 AIC required — Fee Schedule v1.0)
Optimistic response (<500ms): plaintexts returned immediately, transactions queued
Background: 50% of the fee goes to the ecosystem treasury, 50% is burned
get_inject_historyshows 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 toolsadd_project_from_templateA
Instantiate a built-in template as a user project. Use list_project_templates first to see available IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | Template ID (e.g. 'blockchain') |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | Your memory number to archive (the # shown in recall) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | ||
| role_id | Yes | ||
| platform | No | Executor platform (e.g. claude, chatgpt, gemini) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ai_id | No | AI ID (omit for own) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of memories (default 10) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | AI name | |
| model | Yes | Model name (e.g. claude-opus-4) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Explicit tags; auto-tagging only used as fallback | |
| content | No | Full memory content (preferred; stored as the memory text) | |
| project | No | Project to file this memory under (added as first tag) | |
| summary | Yes | What happened (will be encrypted before chain anchoring) | |
| category | No | Memory category | |
| platform | No | Platform source (e.g. claude, chatgpt). Optional. | |
| importance | No | 1-10 importance (default 5) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ai_id | Yes | AI ID owning the memory | |
| memory_id | Yes | Your memory number to seal (the # shown in recall) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name | |
| keywords | No | Auto-tag keywords (optional) | |
| project_id | Yes | Short slug (e.g. 'blockchain', 'work_2026') |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID to delete |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Default 20 |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum memories (default 10) | |
| verified_only | No | If true, only return memories anchored on-chain (default false) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Project name, e.g. 'chainmemory' |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project name | |
| role_id | Yes | Role id, e.g. 'charly' |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_ids | Yes | 1-50 memory IDs to inject | |
| project_filter | No | Optional: tag/project context | |
| target_platform | No | Optional: target platform (claude, chatgpt, etc) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Default 50 | |
| project | No | Filter by project tag (use 'general' for untagged) | |
| archived | No | Include archived memories (default false) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| summary | No | Closing summary for the audit trail | |
| session_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | Your memory number to restore (the # shown in recall) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | Yes | New tag list (replaces current) | |
| memory_id | Yes | Your memory number (the # shown in recall/remember, e.g. 489) — personal to your api key |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ops | Yes | Array 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). | |
| project | Yes | Project name, e.g. 'chainmemory' | |
| consolidated_until_event | No | Highest memory ID included in this consolidation (advances the watermark) |
TDQS
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.
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.
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.
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.
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.
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.
24 tool updates
v2.5.3- First observed
add_project_from_template - First observed
archive_memory - First observed
assume_role - First observed
chainmemory_profile - First observed
chainmemory_recall - First observed
chainmemory_register - First observed
chainmemory_remember - First observed
chainmemory_seal - First observed
chainmemory_stats - First observed
create_project - First observed
delete_project - First observed
get_inject_balance - First observed
get_inject_history - First observed
get_my_context - First observed
get_project_state - First observed
get_role_contract - First observed
inject_memories - First observed
list_memories_filtered - First observed
list_project_templates - First observed
list_projects - First observed
release_role - First observed
unarchive_memory - First observed
update_memory_tags - First observed
update_project_state
TDQS
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.
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.
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.
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
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
Verified memory for AI agents. Signed assertions, billing attestation, session continuity.
MCP-native Trust Infrastructure for AI Agents. Persistent encrypted memory with Trust Quotient.
Cross-device AI memory with encrypted activity capture and context handoff between AI tools
Portable memory for AI agents: capture once, recall across Claude, Cursor, and any MCP client.
Related MCP Servers
- AlicenseBqualityBmaintenanceProvides persistent memory, reasoning engine, agent-to-agent sharing, and immutable audit trail for AI agents via the Model Context Protocol.12MIT

LogicMem MCP Serverofficial
AlicenseBqualityBmaintenanceProvides persistent memory, reasoning, agent-to-agent sharing, and immutable audit trail for AI agents via the Model Context Protocol.121MIT- AlicenseNot gradedqualityDmaintenanceGives AI agents durable project memory via the Model Context Protocol, allowing them to read tasks, record decisions, search context, and sync snapshots to the cloud.20MIT
- AlicenseNot gradedqualityAmaintenanceProvides non-custodial, post-quantum encrypted memory for AI agents, enabling portable memory across models with provable erasure.1Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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