memra

Persistent memory for AI agents. EU-hosted, privacy-first, hybrid recall, contradiction detection.

使うべきか

品質と安全性

A
説明の品質
100%
スキーマの完全性
98%
命名の品質
80%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~2,653トークン数(ツール定義)
~4.2 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 2.07%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "memra": {
      "url": "https://usememra.com/mcp"
    }
  }
}

リモートエンドポイント

https://usememra.com/mcpstreamable-http

できること

ツール一覧

ツール(7)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
⚪memra_remember(content, namespace, type, importance, tags, ...)

Store one or many memories in Memra. Single mode: pass content + namespace. Decision mode: pass type=decision with content + namespace (optionally context). Pattern mode: pass type=pattern with title + steps + namespace. Bulk mode: pass entries[]. If the response contains conflicts[], the new fact contradicts those existing memories — review them and use memra_supersede on the outdated one instead of leaving both active.

入力スキーマ

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "maxLength": 10000,
      "description": "Single/decision mode: memory content. Required unless using entries[] or pattern mode."
    },
    "namespace": {
      "type": "string",
      "description": "Tenant namespace. Required for single, decision, and pattern modes."
    },
    "type": {
      "type": "string",
      "enum": [
        "fact",
        "event",
        "pattern",
        "working",
        "decision",
        "preference",
        "context",
        "entity",
        "reference"
      ],
      "default": "fact",
      "description": "Memory type; use decision for decision mode and pattern for pattern mode."
    },
    "importance": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "default": 5
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "metadata": {
      "type": "object"
    },
    "mask": {
      "type": "boolean",
      "default": false
    },
    "project_id": {
      "type": "string",
      "description": "Project ID (required if account has multiple projects)"
    },
    "entries": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Bulk mode: array of memory entries (max 25). When provided, the server routes to batch create."
    },
    "context": {
      "type": "string",
      "description": "Decision mode: reasoning/context for the decision."
    },
    "steps": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Pattern mode: ordered steps. Required with title when type=pattern."
    },
    "gotchas": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Pattern mode: common pitfalls."
    },
    "verify_checklist": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Pattern mode: verification checklist."
    },
    "title": {
      "type": "string",
      "description": "Pattern mode: title. Required with steps when type=pattern."
    }
  }
}

出力スキーマ

{
  "type": "object",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "memory_id": {
          "type": "string"
        },
        "action": {
          "type": "string",
          "enum": [
            "created",
            "duplicate_found"
          ]
        },
        "type": {
          "type": "string"
        },
        "namespace": {
          "type": "string"
        },
        "project_id": {
          "type": "string"
        },
        "revision": {
          "type": "integer",
          "description": "Read-your-writes token — pass to memra_recall as wait_for_revision to guarantee this write is searchable."
        },
        "embedding_status": {
          "type": "string",
          "enum": [
            "pending",
            "complete",
            "failed"
          ]
        },
        "conflicts": {
          "type": "array",
          "description": "Existing memories this new fact contradicts (NLI-scored). Review each and memra_supersede the outdated one.",
          "items": {
            "type": "object",
            "properties": {
              "memory_id": {
                "type": "string"
              },
              "preview": {
                "type": "string"
              },
              "confidence": {
                "type": "number"
              }
            },
            "required": [
              "memory_id",
              "preview",
              "confidence"
            ]
          }
        }
      },
      "required": [
        "memory_id",
        "action"
      ]
    },
    {
      "type": "object",
      "properties": {
        "total": {
          "type": "integer"
        },
        "created": {
          "type": "integer"
        },
        "results": {
          "type": "array",
          "items": {
            "type": "object"
          }
        }
      },
      "required": [
        "total",
        "created",
        "results"
      ]
    }
  ]
}
🟢memra_recall(query, namespace, type, min_confidence, limit, ...)

Search memories in Memra by semantic similarity. Returns ranked results by relevance. Replaces memra_search.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query for semantic matching"
    },
    "namespace": {
      "type": "string",
      "description": "Tenant namespace to search within"
    },
    "type": {
      "type": "string",
      "enum": [
        "fact",
        "event",
        "pattern",
        "working",
        "decision",
        "preference",
        "context",
        "entity",
        "reference"
      ],
      "description": "Filter by memory type"
    },
    "min_confidence": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Minimum confidence score"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10,
      "description": "Max results to return"
    },
    "project_id": {
      "type": "string",
      "description": "Filter by project ID"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Filter by tags"
    },
    "wait_for_revision": {
      "type": "integer",
      "minimum": 0,
      "description": "Read-your-writes: pass the revision returned by memra_remember to block (max 5s) until that write is indexed and searchable. Use when recalling something you just stored."
    },
    "max_tokens": {
      "type": "integer",
      "minimum": 100,
      "description": "Token budget: return the best-scoring results that fit within this many tokens (chars/4 heuristic). Combine with a higher limit to fill the budget."
    },
    "not_tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Exclude memories carrying any of these tags."
    },
    "since": {
      "type": "string",
      "description": "Only memories created at or after this ISO-8601 date."
    },
    "until": {
      "type": "string",
      "description": "Only memories created at or before this ISO-8601 date."
    },
    "used_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Feedback: memory IDs from your PREVIOUS recall that you actually used. They gain a small permanent ranking boost — pass these every time to make recall learn."
    }
  },
  "required": [
    "query",
    "namespace"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "memory_id": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          },
          "excerpt": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "score": {
            "type": "number"
          },
          "type": {
            "type": [
              "string",
              "null"
            ]
          },
          "importance": {
            "type": [
              "integer",
              "null"
            ]
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "content_origin": {
            "type": [
              "string",
              "null"
            ]
          },
          "trust_state": {
            "type": "string"
          },
          "full_content_available": {
            "type": "boolean"
          },
          "untrusted_content": {
            "type": "boolean"
          },
          "content_classification": {
            "type": "string"
          },
          "staleness_score": {
            "type": [
              "integer",
              "null"
            ],
            "description": "0 (fresh) to 100 (critical). High values mean the memory may be outdated — verify before relying on it."
          },
          "staleness_status": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "fresh",
              "aging",
              "stale",
              "critical",
              null
            ]
          },
          "last_confirmed": {
            "type": [
              "string",
              "null"
            ],
            "description": "When this memory was last written or refreshed."
          }
        },
        "required": [
          "id",
          "uri",
          "excerpt",
          "score",
          "trust_state",
          "untrusted_content"
        ]
      }
    },
    "total_candidates": {
      "type": "integer"
    },
    "estimated_tokens": {
      "type": "integer"
    }
  },
  "required": [
    "results",
    "total_candidates"
  ]
}
🟢memra_get(memory_id)

Get a single memory by ID with full content. Use when you need the complete text of a memory (search results are truncated).

入力スキーマ

{
  "type": "object",
  "properties": {
    "memory_id": {
      "type": "string",
      "description": "The memory ID to retrieve"
    }
  },
  "required": [
    "memory_id"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "uri": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "importance": {
      "type": [
        "integer",
        "null"
      ]
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "content": {
      "type": "string"
    },
    "metadata": {
      "type": [
        "object",
        "array",
        "null"
      ]
    },
    "project_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "namespace": {
      "type": [
        "string",
        "null"
      ]
    },
    "content_origin": {
      "type": [
        "string",
        "null"
      ]
    },
    "trust_state": {
      "type": "string"
    },
    "verified_by": {
      "type": [
        "string",
        "null"
      ]
    },
    "verification_method": {
      "type": [
        "string",
        "null"
      ]
    },
    "untrusted_content": {
      "type": "boolean"
    },
    "content_classification": {
      "type": "string"
    },
    "created_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "updated_at": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "id",
    "uri",
    "type",
    "content",
    "trust_state",
    "untrusted_content"
  ]
}
🟢memra_list(namespace, type, tags, limit, offset, ...)

List memories in Memra for a namespace. Returns paginated results with filtering options.

入力スキーマ

{
  "type": "object",
  "properties": {
    "namespace": {
      "type": "string",
      "description": "Tenant namespace"
    },
    "type": {
      "type": "string",
      "enum": [
        "fact",
        "event",
        "pattern",
        "working",
        "decision",
        "preference",
        "context",
        "entity",
        "reference"
      ],
      "description": "Filter by memory type"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Filter by tags"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "Max results"
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "description": "Pagination offset"
    },
    "project_id": {
      "type": "string",
      "description": "Filter by project ID"
    },
    "min_importance": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Minimum importance"
    }
  },
  "required": [
    "namespace"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "memories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "importance": {
            "type": "integer"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "created_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ]
      }
    },
    "total": {
      "type": "integer"
    }
  },
  "required": [
    "memories",
    "total"
  ]
}
🟡memra_supersede(memory_id, content, importance, tags, metadata)

Replace a memory with new content. The old memory is marked superseded and stops appearing in search; the new memory inherits the old memory's type, importance, tags, source and metadata unless overridden. Works for all memory types (use this instead of memra_add when you are correcting or updating existing knowledge).

入力スキーマ

{
  "type": "object",
  "properties": {
    "memory_id": {
      "type": "string",
      "description": "ID of the memory to supersede"
    },
    "content": {
      "type": "string",
      "maxLength": 10000,
      "description": "New content that replaces the old memory"
    },
    "importance": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Override importance (defaults to old memory's importance)"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Override tags (defaults to old memory's tags)"
    },
    "metadata": {
      "type": "object",
      "description": "Override metadata (defaults to old memory's metadata)"
    }
  },
  "required": [
    "memory_id",
    "content"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "new_memory_id": {
      "type": "string"
    },
    "superseded_memory_id": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "revision": {
      "type": "integer",
      "description": "Read-your-writes token — pass to memra_recall as wait_for_revision."
    },
    "embedding_status": {
      "type": "string",
      "enum": [
        "pending",
        "complete",
        "failed"
      ]
    }
  },
  "required": [
    "new_memory_id",
    "superseded_memory_id",
    "type"
  ]
}
🟡memra_history(memory_id)

View the full supersession chain for a memory (oldest to newest). Use this when you need to audit how a fact or decision evolved over time — e.g., the user asks "why did we change X?", you need to understand prior reasoning before proposing another change, or you spotted a superseded_by reference and need the full timeline. Given any memory ID in the chain, returns every predecessor and successor.

入力スキーマ

{
  "type": "object",
  "properties": {
    "memory_id": {
      "type": "string",
      "description": "Any memory ID in the chain"
    }
  },
  "required": [
    "memory_id"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "chain": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "superseded_by": {
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "status"
        ]
      }
    },
    "length": {
      "type": "integer"
    }
  },
  "required": [
    "chain",
    "length"
  ]
}
⚪memra_bootstrap(namespace, agent_id, max_tokens, include_types, exclude_types, ...)

Load agent bootstrap context from Memra. Returns priority-ordered memories for agent session initialization.

入力スキーマ

{
  "type": "object",
  "properties": {
    "namespace": {
      "type": "string",
      "description": "Tenant namespace"
    },
    "agent_id": {
      "type": "string",
      "description": "Agent identifier, defaults to API key ID"
    },
    "max_tokens": {
      "type": "integer",
      "default": 500,
      "description": "Token budget for bootstrap payload"
    },
    "include_types": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Only include these memory types"
    },
    "exclude_types": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Exclude these memory types"
    },
    "recency_days": {
      "type": "integer",
      "default": 7,
      "description": "Include context from last N days"
    },
    "project_id": {
      "type": "string",
      "description": "Project ID (required if account has multiple projects)"
    }
  },
  "required": [
    "namespace"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "memories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "uri": {
            "type": "string"
          },
          "content_origin": {
            "type": [
              "string",
              "null"
            ]
          },
          "untrusted_content": {
            "type": "boolean"
          },
          "content_classification": {
            "type": "string"
          },
          "trust_state": {
            "type": "string"
          }
        },
        "required": [
          "uri",
          "untrusted_content",
          "content_classification"
        ]
      }
    },
    "token_estimate": {
      "type": "integer"
    },
    "health_warnings": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "revision": {
      "type": "integer"
    }
  },
  "required": [
    "memories",
    "token_estimate"
  ]
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 7 件
検証済みバージョンは記録されていませんツール 7 件