{
  "data": {
    "a": {
      "slug": "graphiti",
      "name": "Graphiti",
      "vendor": "Zep",
      "vendorUrl": "https://www.getzep.com",
      "kind": "framework",
      "category": "agent-memory",
      "summary": "Open-source Python framework from Zep that builds a temporal knowledge graph from chat messages, text and JSON.",
      "url": "https://www.anchorterminal.com/tools/graphiti",
      "markdownUrl": "https://www.anchorterminal.com/tools/graphiti.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/graphiti.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/graphiti.json",
      "dns": "graphiti.grade.anchorterminal.com",
      "repo": "https://github.com/getzep/graphiti",
      "license": "Apache-2.0",
      "transports": [
        "streamable-http",
        "stdio"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "graphiti-core"
        }
      ],
      "auth": "none",
      "authNotes": "Runs on your own machine. You supply an LLM key (OPENAI_API_KEY by default) and database settings such as FALKORDB_URI or NEO4J_URI, NEO4J_USER and NEO4J_PASSWORD.",
      "pricing": "free",
      "pricingNotes": "Free under Apache-2.0. You pay for the LLM and embedding calls it makes on every ingest and for running the graph database (https://github.com/getzep/graphiti). Zep sells a hosted memory service from the same team (https://www.getzep.com/pricing/).",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 13,
      "popularity": {
        "githubStars": 29000,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://help.getzep.com/graphiti/getting-started/overview",
      "llmsTxt": "https://help.getzep.com/llms.txt",
      "capabilities": [
        "memory.store",
        "memory.search",
        "memory.graph",
        "memory.delete"
      ],
      "tags": [
        "framework",
        "open-source",
        "self-hosted",
        "local",
        "python",
        "mcp",
        "llms-txt"
      ],
      "lastRelease": "2026-10-20",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.1,
        "grade": "D",
        "agentReady": false,
        "rank": 1064,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 21,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 51,
          "maintenance": 65,
          "payments": 60,
          "reliability": 50,
          "schema": 71,
          "security": 27,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-09-08 and 2026-10-20. Released fixes of Graphiti's own group isolation flaws with no advisory, one term. graphiti-core 0.30.2 (8 September) carries commit 0883460, whose message says concurrent add_episode calls for different group_ids \"manifested in production as episodes leaking across FalkorDB group graphs with no error raised\". 0.31.2 (20 October) carries commit 7153fed, \"apply group filters in fulltext search\", which adds the missing group_id filters to Amazon Neptune full-text searches, with a new isolation test. osv.dev lists no advisory for either (https://github.com/getzep/graphiti/commit/08834609936e85a1bbed4158773b1f4641f48d6f, https://github.com/getzep/graphiti/commit/7153fedd899bf07d5e42c33cbd8c1b307807ab8f, https://osv.dev/list?q=graphiti). -3.",
          "2026-03-12. CVE-2026-32247 (GHSA-gg5m-55jj-8m5g, PYSEC-2026-2504), a Cypher injection through SearchFilters.node_labels that the MCP server's search_nodes could reach by prompt injection. Zep published the repository advisory (CNA GitHub_M, published 12 March 2026, CVSS 3.1 8.1 High), fixed in 0.28.2. A fixed High over two months old, -1 (https://osv.dev/vulnerability/GHSA-gg5m-55jj-8m5g)."
        ],
        "verdict": "Graphiti is an Apache-2.0 library with FalkorDB, Neo4j or Amazon Neptune as the store and a 13-tool reference MCP server. Every add runs LLM extraction, so ingestion costs tokens and time. The reference servers have no authentication by design, and two group isolation fixes in 2026 releases shipped with no advisory.",
        "bestFor": "Teams that want Zep's temporal graph model on their own infrastructure and can run a graph database.",
        "strengths": [
          "Apache-2.0, with FalkorDB, Neo4j or Amazon Neptune as the store",
          "13-tool MCP server over streamable HTTP or stdio, bound to 127.0.0.1 by default since version 1.1.2 (20 October 2026)",
          "Works with OpenAI, Anthropic, Gemini, Groq or a local OpenAI-compatible model",
          "Telemetry documented field by field, matching the source, and off with one environment variable",
          "Five graphiti-core releases tagged between 1 September and 20 October 2026"
        ],
        "weaknesses": [
          "Every add runs LLM extraction, so ingestion costs tokens and time",
          "The reference MCP and REST servers have no authentication by design, and no tool carries readOnlyHint or destructiveHint",
          "Fixes for episodes leaking across group graphs (0.30.2) and unfiltered Neptune full-text search (0.31.2) shipped with no advisory",
          "Still 0.x, with no changelog file in the repository",
          "Kuzu support is deprecated with no removal date"
        ],
        "agentNotes": [
          "Set OPENAI_API_KEY (or another provider's key) and MODEL_NAME before starting the MCP server",
          "Use search_memory_facts for facts and search_nodes for entities instead of reading whole episodes",
          "Never call clear_graph to fix one fact. Use delete_episode or delete_entity_edge",
          "Pass group_ids on every search and add so one user's graph doesn't leak into another's, and run graphiti-core 0.31.2 or later",
          "Keep the MCP server on 127.0.0.1 or behind your own authentication, since it has none"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.1
          }
        ],
        "editorialScores": {
          "ergonomics": 51,
          "maintenance": 65,
          "payments": 60,
          "reliability": 50,
          "schema": 71,
          "security": 27,
          "transparency": 78
        },
        "provenanceScore": 67,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install graphiti-core   # or: pip install graphiti-core[falkordb]",
        "claudeCode": "claude mcp add --transport http graphiti http://localhost:8000/mcp/",
        "config": {
          "mcpServers": {
            "graphiti": {
              "type": "http",
              "url": "http://localhost:8000/mcp/"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/memory.store",
        "tool": "https://letme.dev/graphiti"
      },
      "sameCompany": [
        "zep"
      ],
      "area": "agent-runtime",
      "provenance": {
        "legalEntity": "Zep Software, Inc.",
        "domain": "getzep.com",
        "domainRegistered": "2023-05-08",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/getzep/graphiti/releases",
        "securityTxt": "none",
        "checked": "2026-11-04",
        "notes": [
          "A library and local server, so there's no hosted endpoint. Zep Software, Inc. owns the repository and publishes its docs on help.getzep.com.",
          "SECURITY.md (19 October 2026) covers graphiti-core and routes reports through GitHub private vulnerability reporting, with no stated acknowledgement time. No security.txt is published for the library.",
          "The repository keeps no changelog file. Releases are tags, and the GitHub releases page couldn't be read on 4 November 2026."
        ],
        "score": 67
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/graphiti.json",
      "live": {
        "slug": "graphiti",
        "versions": [
          {
            "registry": "github",
            "name": "getzep/graphiti",
            "version": "v0.31.2",
            "released": "2026-10-20",
            "seenAt": "2026-11-06T23:31:07.28110654Z"
          },
          {
            "registry": "pypi",
            "name": "graphiti-core",
            "version": "0.31.2",
            "released": "2026-10-20",
            "seenAt": "2026-11-06T23:31:07.047409672Z"
          }
        ],
        "githubStars": 32604,
        "pypiWeekly": 207489,
        "securityTxt": {
          "url": "https://getzep.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:51.758691547Z"
        },
        "llmsTxt": {
          "url": "https://help.getzep.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:38.472536044Z"
        },
        "domain": {
          "domain": "getzep.com",
          "registered": "2023-05-08",
          "source": "https://rdap.verisign.com/com/v1/domain/getzep.com",
          "checkedAt": "2026-11-01T14:14:29.416610087Z"
        },
        "pages": [
          {
            "url": "https://www.getzep.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:29:18.99583842Z",
            "changedAt": "2026-11-06T13:50:03.190689926Z",
            "fingerprint": "51a65f0c7a7f"
          }
        ],
        "github": {
          "repo": "getzep/graphiti",
          "checkedAt": "2026-11-02T08:50:22.79529002Z",
          "stars": 32430,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-01T01:05:00Z",
          "openIssues": 255,
          "openPRs": 283,
          "issuesOpened90d": 149,
          "issuesClosed90d": 163,
          "prsMerged90d": 53,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 50,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-11-01T01:05:16Z"
          },
          "advisories": [
            {
              "ghsa": "GHSA-gg5m-55jj-8m5g",
              "cve": "CVE-2026-32247",
              "severity": "high",
              "published": "2026-03-11T17:50:34Z"
            }
          ],
          "replies": {
            "sampled": 25,
            "unanswered": 17,
            "medianDays": 0
          }
        },
        "updatedAt": "2026-11-07T16:00:51.758691547Z"
      }
    },
    "answer": "MemMachine scores 58 (C) on agent readiness against Graphiti's 50.1 (D), and leads in 5 of 7 scored categories. Graphiti leads on payments \u0026 pricing and transparency \u0026 trust.",
    "b": {
      "slug": "memmachine",
      "name": "MemMachine",
      "vendor": "MemVerge, Inc.",
      "vendorUrl": "https://memmachine.ai",
      "kind": "http-api",
      "category": "agent-memory",
      "summary": "MemMachine is an open-source long-term memory layer for AI agents, incubated by MemVerge, with episodic, profile and working memory behind a self-hosted REST server, Python and TypeScript clients and an MCP server, plus a hosted platform.",
      "url": "https://www.anchorterminal.com/tools/memmachine",
      "markdownUrl": "https://www.anchorterminal.com/tools/memmachine.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/memmachine.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/memmachine.json",
      "dns": "memmachine.grade.anchorterminal.com",
      "repo": "https://github.com/MemMachine/MemMachine",
      "license": "Apache-2.0",
      "transports": [
        "http",
        "stdio",
        "streamable-http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "memmachine-server"
        },
        {
          "registry": "pypi",
          "name": "memmachine-client"
        },
        {
          "registry": "npm",
          "name": "@memmachine/client"
        }
      ],
      "auth": "none",
      "authNotes": "The self-hosted server takes no credential; the owner supplies LLM and embedding keys (OpenAI, Bedrock or Ollama) in its config. The hosted MemMachine Platform at api.memmachine.ai uses a bearer API key created and revoked in the console after a browser signup.",
      "pricing": "freemium",
      "pricingNotes": "Free under Apache-2.0 to self-host, with model costs paid to the chosen provider. The hosted platform has a free account per the README, but no prices were found, and the terms bill hosted services by order, monthly or annually.",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the repository, the OpenAPI documents or the docs (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": 3,
      "popularity": {
        "githubStars": 3085,
        "npmWeekly": 28,
        "pypiWeekly": 581,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.memmachine.ai",
      "llmsTxt": "https://docs.memmachine.ai/llms.txt",
      "openapi": "https://github.com/MemMachine/MemMachine/blob/main/docs/openapi.json",
      "capabilities": [
        "memory.store",
        "memory.search",
        "memory.user",
        "memory.graph",
        "memory.delete"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "hosted",
        "apache-2.0",
        "python",
        "typescript",
        "docker",
        "mcp",
        "openapi",
        "llms-txt",
        "no-auth",
        "pre-1.0"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58,
        "grade": "C",
        "agentReady": false,
        "rank": 767,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 16,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 83,
          "payments": 40,
          "reliability": 51,
          "schema": 79,
          "security": 41,
          "transparency": 57
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "MemMachine is an Apache-2.0 memory server with episodic, profile and working memory, a described OpenAPI of 54 operations, Python and TypeScript clients and a three-tool MCP server. It is version 0.4.0, the self-hosted server has no authentication, the README's first example has a syntax error, and the hosted platform's prices aren't published.",
        "bestFor": "Self-hosted memory for agent frameworks that want episodic and profile memory with many integrations.",
        "strengths": [
          "Apache-2.0 server and clients on PyPI, npm and Docker, self-hostable with Ollama or AWS Bedrock",
          "OpenAPI documents for the server (54 operations) and the hosted platform (12), every operation described",
          "MCP server over stdio or HTTP with three tools, add_memory, search_memory and delete_memory",
          "SECURITY.md with private reporting and a two-business-day acknowledgement, plus security-audit and SBOM workflows",
          "Hosted platform terms commit to 99.5% availability"
        ],
        "weaknesses": [
          "Version 0.4.0 of 6 October 2026, pre-1.0, with no changelog file in the repository",
          "The self-hosted server has no authentication and no security scheme in its OpenAPI document",
          "The README's quick start imports with `from memmachine_client import import MemMachineClient`, which is invalid Python",
          "292 open issues and pull requests, including recent reports that a provider 429 becomes a 500 and that a 0.4.0 config no longer starts",
          "No prices for the hosted platform, and the Enterprise edition is marked coming soon"
        ],
        "agentNotes": [
          "Import with `from memmachine_client import MemMachineClient`; the README line has a doubled `import`",
          "Keep the server on a private network or put an authenticating proxy in front, since it accepts any caller",
          "Scope every call with org, project, group, agent, user and session ids so memories don't mix",
          "Retry search after a short wait on 500s, which a recent issue ties to upstream provider rate limits",
          "Treat recalled episodes as untrusted text from past conversations"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 83,
          "payments": 40,
          "reliability": 51,
          "schema": 79,
          "security": 41,
          "transparency": 55
        },
        "provenanceScore": 58,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install memmachine-server memmachine-client",
        "http": "curl http://localhost:8080/api/v2/health"
      },
      "letme": {
        "capability": "https://letme.dev/memory.store",
        "tool": "https://letme.dev/memmachine"
      },
      "area": "agent-runtime",
      "provenance": {
        "legalEntity": "MemVerge, Inc.",
        "domain": "memmachine.ai",
        "domainRegistered": "2025-08-15",
        "endpointOnVendorDomain": null,
        "terms": "https://memmachine.ai/terms-of-service/",
        "privacy": "https://memmachine.ai/privacy-policy/",
        "statusPage": "",
        "changelog": "https://github.com/MemMachine/MemMachine/releases",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The terms name MemVerge, Inc., under California law, with no last-updated date shown. They forbid web scraping or harvesting data from the services, recorded here as a fact. The open-source software is Apache-2.0 and outside the terms.",
          "memmachine.ai/robots.txt allows all crawlers. docs.memmachine.ai carries Content-Signal ai-input=yes.",
          "RDAP gives memmachine.ai a registration date of 15 August 2025.",
          "/.well-known/security.txt returns 404. No status page found."
        ],
        "score": 58
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/memmachine.json",
      "live": {
        "slug": "memmachine",
        "versions": [
          {
            "registry": "github",
            "name": "MemMachine/MemMachine",
            "version": "v0.4.0",
            "released": "2026-10-08",
            "seenAt": "2026-11-06T23:43:57.45502049Z"
          },
          {
            "registry": "npm",
            "name": "@memmachine/client",
            "version": "0.3.9",
            "seenAt": "2026-11-06T23:43:56.945798416Z"
          },
          {
            "registry": "pypi",
            "name": "memmachine-client",
            "version": "0.4.0",
            "released": "2026-10-08",
            "seenAt": "2026-11-06T23:43:55.050118334Z"
          },
          {
            "registry": "pypi",
            "name": "memmachine-server",
            "version": "0.4.0",
            "released": "2026-10-08",
            "seenAt": "2026-11-06T23:43:54.864236924Z"
          }
        ],
        "githubStars": 3085,
        "npmWeekly": 28,
        "pypiWeekly": 54,
        "securityTxt": {
          "url": "https://memmachine.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:09.818703565Z"
        },
        "llmsTxt": {
          "url": "https://docs.memmachine.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:59.84146138Z"
        },
        "pages": [
          {
            "url": "https://memmachine.ai/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:14:11.012100581Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "19edc6281451"
          },
          {
            "url": "https://memmachine.ai/terms-of-service/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:14:13.19202427Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "079364130152"
          }
        ],
        "updatedAt": "2026-11-07T16:00:09.818703565Z"
      }
    },
    "edges": [
      {
        "by": 20,
        "category": "payments",
        "leads": "graphiti",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Free Apache-2.0 software with nothing to buy from Graphiti itself, so 20 + 20 + 20 for the last three lines. No payment protocol (0). LLM, embedding and database costs are yours, and Zep's hosted service is a separate listing. 0 + 20 + 20 + 20 = 60.",
          "b": "Self-hosted rule, with the price lines read for the hosted platform. No x402, MPP or L402 (0 of 40). No hosted prices found on the site or docs (0). Free to self-host with no card (20). An agent can install it from PyPI with no account (20). Total 40."
        },
        "scores": {
          "a": 60,
          "b": 40
        }
      },
      {
        "by": 18,
        "category": "maintenance",
        "leads": "memmachine",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "graphiti-core v0.31.2 tagged on 20 October 2026. The release workflow publishes to PyPI on each v tag, and pypi.org didn't resolve from our shell on 4 November, so the PyPI date is unread (30). Core tags since 6 August are v0.30.0 (1 September), v0.30.2 (8 September), v0.31.0 (14 October), v0.31.1 (15 October) and v0.31.2 (20 October), with MCP server tags mcp-v1.1.0 to mcp-v1.1.3 (20). Responsiveness per the 1 October check, not re-read on 4 November (10 of 25). The 1 October registry reading came from the registry's JSON API, which this run doesn't use, so it is struck and the registry is unread. It earned 0 either way (0). Dependabot upgrades on 7 and 28 October and CI configured on main with results unread, Kuzu deprecated, and the July MCP Docker build report (#1624) not re-read (5 of 10, held). 30 + 20 + 10 + 0 + 5 = 65.",
          "b": "v0.4.0 on PyPI on 8 October 2026, 29 days before the check (30). v0.3.9-post1, v0.4.0, v0.4.1-dev0 and v0.4.1-a1 in 90 days (20). Many open issues and recent reports with few replies (12 of 25). Python and TypeScript clients, both current (12 of 15). uv lock checks, security audit, SBOM and stale-issue workflows (9 of 10). Total 83."
        },
        "scores": {
          "a": 65,
          "b": 83
        }
      },
      {
        "by": 16,
        "category": "transparency",
        "leads": "graphiti",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Apache-2.0 (30). Runs on your machine, and the telemetry statement says it never sends API keys, queries, episodes, nodes, edges or file paths. Your data goes to the LLM provider you configure (20 of 30). Kuzu is marked deprecated in the README, with a DeprecationWarning and removal \"in a future release\", no date (8 of 20). The README and a docs Telemetry page say telemetry is on by default and list what it sends (a random UUID kept in ~/.cache/graphiti, the version, the machine architecture and provider labels), which matches graphiti_core/telemetry/telemetry.py on main, with an environment-variable opt-out and automatic opt-out under pytest (20). 30 + 20 + 8 + 20 = 78.",
          "b": "Apache-2.0 (30). The terms say hosted customer data is destroyed on termination, with no period, and use usage data only in aggregate; the privacy policy wasn't read (12 of 30). No deprecation policy or notices found (3 of 20). No telemetry calls found in the server or client source, and the docs don't address it (10 of 20). Total 55."
        },
        "scores": {
          "a": 73,
          "b": 57
        }
      },
      {
        "by": 14,
        "category": "ergonomics",
        "leads": "memmachine",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "13 MCP tools (15), with no toolsets or read-only subset. Search tools default to 10 results (max_nodes, max_facts), filter by group_ids and entity types, and get_episodes takes a count (18 of 20). Error shapes aren't documented and we didn't test them (8 of 20). None of the 13 tools in graphiti_mcp_server.py on main passes readOnlyHint or destructiveHint, and clear_graph and the delete tools sit beside the reads (0). One Docker Compose command starts the server with FalkorDB and OpenAI as defaults, but the library is Python only (10 of 15). 15 + 18 + 8 + 0 + 10 = 51.",
          "b": "Searches take limit and filter options for episodic and semantic results (20 of 25). Memories can be listed and filtered by scope (15 of 20). Validation errors are typed; other failures are less clear, as the 429-to-500 issue shows (10 of 20). No idempotency keys or safe-retry guidance found (5 of 20). Python and TypeScript clients and a five-line quick start, once the import is fixed (15). Total 65."
        },
        "scores": {
          "a": 51,
          "b": 65
        }
      },
      {
        "by": 14,
        "category": "security",
        "leads": "memmachine",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Scored for a framework you run yourself. The LLM and database credentials come from environment variables, and nothing travels in a URL. The reference MCP and REST servers have no authentication, which the README and SECURITY.md (19 October) now state, and since MCP server 1.1.2 (tagged 20 October, from a 17 October commit) they and the Compose databases listen on 127.0.0.1 by default (15 of 30, held). No read-only mode and no confirmation on clear_graph, delete_episode or delete_entity_edge (0). SECURITY.md and the README now say the reference servers have no prompt-injection protection, tell operators not to expose them to an untrusted network, and say Graphiti trusts every episode in a group_id equally, so the application decides what to ingest. Guidance with no mitigations (5 of 15, was 0). No audit log of tool calls found (0). SECURITY.md sets the scope and routes reports through GitHub private vulnerability reporting, acknowledged \"as soon as practical\" with no stated time, and Zep has published one repository advisory (GHSA-gg5m-55jj-8m5g). No bug bounty or security.txt. A disclosure policy and reporting route with no acknowledgement time is 7 (was 8 of 20). Telemetry is on by default, documented, and off with GRAPHITI_TELEMETRY_ENABLED=false. 15 + 0 + 5 + 0 + 7 = 27.",
          "b": "Framework reading for software the owner runs. The server has no authentication and no security scheme in its OpenAPI document (15 of 30). No read-only mode or confirmation for deletes (5 of 20). No guidance on recalled memories as untrusted text (4 of 15). No audit log on the self-hosted server; the hosted console shows usage (5 of 15). SECURITY.md with GitHub private reporting and a two-business-day acknowledgement, with security-audit and SBOM workflows; no security.txt or certification (12 of 20). Total 41."
        },
        "scores": {
          "a": 27,
          "b": 41
        }
      },
      {
        "by": 8,
        "category": "schema",
        "leads": "memmachine",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "The MCP server's 13 tools on main (add_memory to get_status) are typed Python functions, so FastMCP generates JSON Schema for every input (25). help.getzep.com's v4 llms.txt indexes 19 Graphiti pages, each with a Markdown copy (10). Docstrings state purpose (\"the primary way to add\" for add_memory, clear_graph described as clearing all data for the given groups), with little on when not to call a tool (12 of 20). Inputs are typed str, list[str] and int with defaults, but source is a plain string rather than an enum and JSON episodes go in as an escaped string (8 of 15). README and docs examples. We didn't find documented error responses (8 of 15). Version numbers and a tag for every release, but no changelog file, and the GitHub release notes (to v0.29.2 on 1 October) couldn't be read on 4 November (8 of 15). 25 + 10 + 12 + 8 + 8 + 8 = 71.",
          "b": "OpenAPI documents for the server (54 operations) and the hosted platform (12) (25). llms.txt on docs.memmachine.ai with Markdown pages (10). Every operation has a description, and the docs explain memory types and scoping (15 of 20). Typed request models generated from the server, with search options for limits and filters (12 of 15). Examples for each client and the MCP tools, but only 422 is documented on the server and the README's first example doesn't run (8 of 15). `/api/v2` paths and tagged releases, no changelog (9 of 15). Total 79."
        },
        "scores": {
          "a": 71,
          "b": 79
        }
      }
    ],
    "facts": [
      {
        "a": "Agent framework",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Zep",
        "b": "MemVerge, Inc.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP, stdio",
        "b": "HTTP, stdio, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "13",
        "b": "3",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-20",
        "b": "2026-10-08",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-05-20",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "29k stars",
        "b": "3.1k stars, 28 npm/wk, 581 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "2.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "MemMachine scores 58 (C) on agent readiness against Graphiti's 50.1 (D), and leads in 5 of 7 scored categories. Graphiti leads on payments \u0026 pricing and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Graphiti or MemMachine?"
      },
      {
        "answer": "Graphiti runs on your own machine, with no hosted endpoint listed. MemMachine runs on your own machine, with no hosted endpoint listed.",
        "question": "Can an agent call Graphiti and MemMachine without installing anything?"
      },
      {
        "answer": "Yes. Graphiti is open source (Apache-2.0). MemMachine is open source (Apache-2.0).",
        "question": "Are Graphiti and MemMachine open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 60 against 40",
          "Transparency \u0026 trust, 73 against 57"
        ],
        "also": null,
        "goodFor": "Teams that want Zep's temporal graph model on their own infrastructure and can run a graph database.",
        "slug": "graphiti",
        "watchFor": "Every add runs LLM extraction, so ingestion costs tokens and time"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 79 against 71",
          "Agent ergonomics, 65 against 51",
          "Security \u0026 auth, 41 against 27",
          "Maintenance \u0026 community, 83 against 65"
        ],
        "also": [
          "No incidents deducted, where Graphiti loses 4 points for them"
        ],
        "goodFor": "Self-hosted memory for agent frameworks that want episodic and profile memory with many integrations.",
        "slug": "memmachine",
        "watchFor": "Version 0.4.0 of 6 October 2026, pre-1.0, with no changelog file in the repository"
      }
    ],
    "history": {
      "graphiti": [
        {
          "causes": [
            "product",
            "event"
          ],
          "date": "2026-11-04",
          "delta": -3.3,
          "from": 53.4,
          "fromGrade": "D",
          "to": 50.1,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-28",
          "delta": 0.1,
          "from": 53.3,
          "fromGrade": "D",
          "to": 53.4,
          "toGrade": "D"
        }
      ],
      "memmachine": null
    },
    "job": {
      "capability": "memory.store",
      "name": "Agent memory"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-memory-vs-graphiti.json",
        "title": "Amazon Bedrock AgentCore Memory vs Graphiti",
        "url": "https://www.anchorterminal.com/compare/agentcore-memory-vs-graphiti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-memory-vs-memmachine.json",
        "title": "Amazon Bedrock AgentCore Memory vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/agentcore-memory-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/basic-memory-vs-graphiti.json",
        "title": "Basic Memory vs Graphiti",
        "url": "https://www.anchorterminal.com/compare/basic-memory-vs-graphiti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/basic-memory-vs-memmachine.json",
        "title": "Basic Memory vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/basic-memory-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-mem-vs-graphiti.json",
        "title": "claude-mem vs Graphiti",
        "url": "https://www.anchorterminal.com/compare/claude-mem-vs-graphiti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-mem-vs-memmachine.json",
        "title": "claude-mem vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/claude-mem-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cognee-vs-graphiti.json",
        "title": "Cognee vs Graphiti",
        "url": "https://www.anchorterminal.com/compare/cognee-vs-graphiti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cognee-vs-memmachine.json",
        "title": "Cognee vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/cognee-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/everos-vs-graphiti.json",
        "title": "EverOS vs Graphiti",
        "url": "https://www.anchorterminal.com/compare/everos-vs-graphiti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/everos-vs-memmachine.json",
        "title": "EverOS vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/everos-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-memory-bank-vs-graphiti.json",
        "title": "Agent Platform Memory Bank vs Graphiti",
        "url": "https://www.anchorterminal.com/compare/google-memory-bank-vs-graphiti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-memory-bank-vs-memmachine.json",
        "title": "Agent Platform Memory Bank vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/google-memory-bank-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-hindsight.json",
        "title": "Graphiti vs Hindsight",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-hindsight"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-honcho.json",
        "title": "Graphiti vs Honcho",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-honcho"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-hy-memory.json",
        "title": "Graphiti vs Hy Memory",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-hy-memory"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-langmem.json",
        "title": "Graphiti vs LangMem",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-langmem"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-localghost.json",
        "title": "Graphiti vs LocalGhost",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-localghost"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-mem0.json",
        "title": "Graphiti vs Mem0 Platform + MCP",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-mem0"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-memori.json",
        "title": "Graphiti vs Memori",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-memori"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-memory-reference-server.json",
        "title": "Graphiti vs Memory (MCP reference server)",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-memory-reference-server"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-mempalace.json",
        "title": "Graphiti vs MemPalace",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-mempalace"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-past-dev.json",
        "title": "Graphiti vs past.dev",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-past-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-supermemory.json",
        "title": "Graphiti vs Supermemory API + MCP",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-supermemory"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-tencentdb-agent-memory.json",
        "title": "Graphiti vs TencentDB Agent Memory",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-tencentdb-agent-memory"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-tokenrip.json",
        "title": "Graphiti vs Tokenrip",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-tokenrip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphiti-vs-zep.json",
        "title": "Graphiti vs Zep",
        "url": "https://www.anchorterminal.com/compare/graphiti-vs-zep"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hindsight-vs-memmachine.json",
        "title": "Hindsight vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/hindsight-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/honcho-vs-memmachine.json",
        "title": "Honcho vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/honcho-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hy-memory-vs-memmachine.json",
        "title": "Hy Memory vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/hy-memory-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langmem-vs-memmachine.json",
        "title": "LangMem vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/langmem-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/localghost-vs-memmachine.json",
        "title": "LocalGhost vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/localghost-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mem0-vs-memmachine.json",
        "title": "Mem0 Platform + MCP vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/mem0-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/memmachine-vs-memori.json",
        "title": "MemMachine vs Memori",
        "url": "https://www.anchorterminal.com/compare/memmachine-vs-memori"
      },
      {
        "json": "https://www.anchorterminal.com/compare/memmachine-vs-memory-reference-server.json",
        "title": "MemMachine vs Memory (MCP reference server)",
        "url": "https://www.anchorterminal.com/compare/memmachine-vs-memory-reference-server"
      },
      {
        "json": "https://www.anchorterminal.com/compare/memmachine-vs-mempalace.json",
        "title": "MemMachine vs MemPalace",
        "url": "https://www.anchorterminal.com/compare/memmachine-vs-mempalace"
      },
      {
        "json": "https://www.anchorterminal.com/compare/memmachine-vs-past-dev.json",
        "title": "MemMachine vs past.dev",
        "url": "https://www.anchorterminal.com/compare/memmachine-vs-past-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/memmachine-vs-supermemory.json",
        "title": "MemMachine vs Supermemory API + MCP",
        "url": "https://www.anchorterminal.com/compare/memmachine-vs-supermemory"
      },
      {
        "json": "https://www.anchorterminal.com/compare/memmachine-vs-tencentdb-agent-memory.json",
        "title": "MemMachine vs TencentDB Agent Memory",
        "url": "https://www.anchorterminal.com/compare/memmachine-vs-tencentdb-agent-memory"
      },
      {
        "json": "https://www.anchorterminal.com/compare/memmachine-vs-tokenrip.json",
        "title": "MemMachine vs Tokenrip",
        "url": "https://www.anchorterminal.com/compare/memmachine-vs-tokenrip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/memmachine-vs-zep.json",
        "title": "MemMachine vs Zep",
        "url": "https://www.anchorterminal.com/compare/memmachine-vs-zep"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ai-memory-vs-graphiti.json",
        "title": "AI Memory vs Graphiti",
        "url": "https://www.anchorterminal.com/compare/ai-memory-vs-graphiti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ai-memory-vs-memmachine.json",
        "title": "AI Memory vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/ai-memory-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/context-mode-vs-graphiti.json",
        "title": "Context Mode Engine vs Graphiti",
        "url": "https://www.anchorterminal.com/compare/context-mode-vs-graphiti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/context-mode-vs-memmachine.json",
        "title": "Context Mode Engine vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/context-mode-vs-memmachine"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphicle-vs-graphiti.json",
        "title": "Graphicle vs Graphiti",
        "url": "https://www.anchorterminal.com/compare/graphicle-vs-graphiti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/graphicle-vs-memmachine.json",
        "title": "Graphicle vs MemMachine",
        "url": "https://www.anchorterminal.com/compare/graphicle-vs-memmachine"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 1,
        "edge": "memmachine",
        "graphiti": 50,
        "key": "reliability",
        "memmachine": 51,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 8,
        "edge": "memmachine",
        "graphiti": 71,
        "key": "schema",
        "memmachine": 79,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 14,
        "edge": "memmachine",
        "graphiti": 51,
        "key": "ergonomics",
        "memmachine": 65,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 14,
        "edge": "memmachine",
        "graphiti": 27,
        "key": "security",
        "memmachine": 41,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 20,
        "edge": "graphiti",
        "graphiti": 60,
        "key": "payments",
        "memmachine": 40,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 18,
        "edge": "memmachine",
        "graphiti": 65,
        "key": "maintenance",
        "memmachine": 83,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 16,
        "edge": "graphiti",
        "graphiti": 73,
        "key": "transparency",
        "memmachine": 57,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "MemMachine scores 58 (C) on agent readiness against Graphiti's 50.1 (D), and leads in 5 of 7 scored categories. Graphiti leads on payments \u0026 pricing and transparency \u0026 trust. Both do agent memory.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "graphiti": "Graphiti is an Apache-2.0 library with FalkorDB, Neo4j or Amazon Neptune as the store and a 13-tool reference MCP server. Every add runs LLM extraction, so ingestion costs tokens and time. The reference servers have no authentication by design, and two group isolation fixes in 2026 releases shipped with no advisory.",
      "memmachine": "MemMachine is an Apache-2.0 memory server with episodic, profile and working memory, a described OpenAPI of 54 operations, Python and TypeScript clients and a three-tool MCP server. It is version 0.4.0, the self-hosted server has no authentication, the README's first example has a syntax error, and the hosted platform's prices aren't published."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/graphiti-vs-memmachine",
    "json": "https://www.anchorterminal.com/compare/graphiti-vs-memmachine.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/graphiti-vs-memmachine.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/graphiti-vs-memmachine.min.md"
  },
  "markdown": "MemMachine scores 58 (C) on agent readiness against Graphiti's 50.1 (D), and leads in 5 of 7 scored categories. Graphiti leads on payments \u0026 pricing and transparency \u0026 trust. Both do agent memory.\n\n- Graphiti: grade D, 50.1/100, rank #1064 of 1486. Markdown https://www.anchorterminal.com/tools/graphiti.md · JSON https://www.anchorterminal.com/api/v1/tools/graphiti.json\n- MemMachine: grade C, 58/100, rank #767 of 1486. Markdown https://www.anchorterminal.com/tools/memmachine.md · JSON https://www.anchorterminal.com/api/v1/tools/memmachine.json\n- Best memory layers for AI agents: https://www.anchorterminal.com/best/agent-memory/index.md\n- All 353 memory comparisons: https://www.anchorterminal.com/compare/agent-memory/index.md\n\n## Which one, for what\n\n### Graphiti (D)\n\nGood for: Teams that want Zep's temporal graph model on their own infrastructure and can run a graph database.\n\nAhead on:\n- Payments \u0026 pricing, 60 against 40\n- Transparency \u0026 trust, 73 against 57\n\nWatch for: Every add runs LLM extraction, so ingestion costs tokens and time\n\n### MemMachine (C)\n\nGood for: Self-hosted memory for agent frameworks that want episodic and profile memory with many integrations.\n\nAhead on:\n- Schema \u0026 documentation, 79 against 71\n- Agent ergonomics, 65 against 51\n- Security \u0026 auth, 41 against 27\n- Maintenance \u0026 community, 83 against 65\n\nAlso in its favour:\n- No incidents deducted, where Graphiti loses 4 points for them\n\nWatch for: Version 0.4.0 of 6 October 2026, pre-1.0, with no changelog file in the repository\n\n\n## Why the edge\n\n### Payments \u0026 pricing: Graphiti +20\n\n- Graphiti (60): Free Apache-2.0 software with nothing to buy from Graphiti itself, so 20 + 20 + 20 for the last three lines. No payment protocol (0). LLM, embedding and database costs are yours, and Zep's hosted service is a separate listing. 0 + 20 + 20 + 20 = 60.\n- MemMachine (40): Self-hosted rule, with the price lines read for the hosted platform. No x402, MPP or L402 (0 of 40). No hosted prices found on the site or docs (0). Free to self-host with no card (20). An agent can install it from PyPI with no account (20). Total 40.\n\n### Maintenance \u0026 community: MemMachine +18\n\n- Graphiti (65): graphiti-core v0.31.2 tagged on 20 October 2026. The release workflow publishes to PyPI on each v tag, and pypi.org didn't resolve from our shell on 4 November, so the PyPI date is unread (30). Core tags since 6 August are v0.30.0 (1 September), v0.30.2 (8 September), v0.31.0 (14 October), v0.31.1 (15 October) and v0.31.2 (20 October), with MCP server tags mcp-v1.1.0 to mcp-v1.1.3 (20). Responsiveness per the 1 October check, not re-read on 4 November (10 of 25). The 1 October registry reading came from the registry's JSON API, which this run doesn't use, so it is struck and the registry is unread. It earned 0 either way (0). Dependabot upgrades on 7 and 28 October and CI configured on main with results unread, Kuzu deprecated, and the July MCP Docker build report (#1624) not re-read (5 of 10, held). 30 + 20 + 10 + 0 + 5 = 65.\n- MemMachine (83): v0.4.0 on PyPI on 8 October 2026, 29 days before the check (30). v0.3.9-post1, v0.4.0, v0.4.1-dev0 and v0.4.1-a1 in 90 days (20). Many open issues and recent reports with few replies (12 of 25). Python and TypeScript clients, both current (12 of 15). uv lock checks, security audit, SBOM and stale-issue workflows (9 of 10). Total 83.\n\n### Transparency \u0026 trust: Graphiti +16\n\n- Graphiti (73): Apache-2.0 (30). Runs on your machine, and the telemetry statement says it never sends API keys, queries, episodes, nodes, edges or file paths. Your data goes to the LLM provider you configure (20 of 30). Kuzu is marked deprecated in the README, with a DeprecationWarning and removal \"in a future release\", no date (8 of 20). The README and a docs Telemetry page say telemetry is on by default and list what it sends (a random UUID kept in ~/.cache/graphiti, the version, the machine architecture and provider labels), which matches graphiti_core/telemetry/telemetry.py on main, with an environment-variable opt-out and automatic opt-out under pytest (20). 30 + 20 + 8 + 20 = 78.\n- MemMachine (57): Apache-2.0 (30). The terms say hosted customer data is destroyed on termination, with no period, and use usage data only in aggregate; the privacy policy wasn't read (12 of 30). No deprecation policy or notices found (3 of 20). No telemetry calls found in the server or client source, and the docs don't address it (10 of 20). Total 55.\n\n### Agent ergonomics: MemMachine +14\n\n- Graphiti (51): 13 MCP tools (15), with no toolsets or read-only subset. Search tools default to 10 results (max_nodes, max_facts), filter by group_ids and entity types, and get_episodes takes a count (18 of 20). Error shapes aren't documented and we didn't test them (8 of 20). None of the 13 tools in graphiti_mcp_server.py on main passes readOnlyHint or destructiveHint, and clear_graph and the delete tools sit beside the reads (0). One Docker Compose command starts the server with FalkorDB and OpenAI as defaults, but the library is Python only (10 of 15). 15 + 18 + 8 + 0 + 10 = 51.\n- MemMachine (65): Searches take limit and filter options for episodic and semantic results (20 of 25). Memories can be listed and filtered by scope (15 of 20). Validation errors are typed; other failures are less clear, as the 429-to-500 issue shows (10 of 20). No idempotency keys or safe-retry guidance found (5 of 20). Python and TypeScript clients and a five-line quick start, once the import is fixed (15). Total 65.\n\n### Security \u0026 auth: MemMachine +14\n\n- Graphiti (27): Scored for a framework you run yourself. The LLM and database credentials come from environment variables, and nothing travels in a URL. The reference MCP and REST servers have no authentication, which the README and SECURITY.md (19 October) now state, and since MCP server 1.1.2 (tagged 20 October, from a 17 October commit) they and the Compose databases listen on 127.0.0.1 by default (15 of 30, held). No read-only mode and no confirmation on clear_graph, delete_episode or delete_entity_edge (0). SECURITY.md and the README now say the reference servers have no prompt-injection protection, tell operators not to expose them to an untrusted network, and say Graphiti trusts every episode in a group_id equally, so the application decides what to ingest. Guidance with no mitigations (5 of 15, was 0). No audit log of tool calls found (0). SECURITY.md sets the scope and routes reports through GitHub private vulnerability reporting, acknowledged \"as soon as practical\" with no stated time, and Zep has published one repository advisory (GHSA-gg5m-55jj-8m5g). No bug bounty or security.txt. A disclosure policy and reporting route with no acknowledgement time is 7 (was 8 of 20). Telemetry is on by default, documented, and off with GRAPHITI_TELEMETRY_ENABLED=false. 15 + 0 + 5 + 0 + 7 = 27.\n- MemMachine (41): Framework reading for software the owner runs. The server has no authentication and no security scheme in its OpenAPI document (15 of 30). No read-only mode or confirmation for deletes (5 of 20). No guidance on recalled memories as untrusted text (4 of 15). No audit log on the self-hosted server; the hosted console shows usage (5 of 15). SECURITY.md with GitHub private reporting and a two-business-day acknowledgement, with security-audit and SBOM workflows; no security.txt or certification (12 of 20). Total 41.\n\n### Schema \u0026 documentation: MemMachine +8\n\n- Graphiti (71): The MCP server's 13 tools on main (add_memory to get_status) are typed Python functions, so FastMCP generates JSON Schema for every input (25). help.getzep.com's v4 llms.txt indexes 19 Graphiti pages, each with a Markdown copy (10). Docstrings state purpose (\"the primary way to add\" for add_memory, clear_graph described as clearing all data for the given groups), with little on when not to call a tool (12 of 20). Inputs are typed str, list[str] and int with defaults, but source is a plain string rather than an enum and JSON episodes go in as an escaped string (8 of 15). README and docs examples. We didn't find documented error responses (8 of 15). Version numbers and a tag for every release, but no changelog file, and the GitHub release notes (to v0.29.2 on 1 October) couldn't be read on 4 November (8 of 15). 25 + 10 + 12 + 8 + 8 + 8 = 71.\n- MemMachine (79): OpenAPI documents for the server (54 operations) and the hosted platform (12) (25). llms.txt on docs.memmachine.ai with Markdown pages (10). Every operation has a description, and the docs explain memory types and scoping (15 of 20). Typed request models generated from the server, with search options for limits and filters (12 of 15). Examples for each client and the MCP tools, but only 422 is documented on the server and the README's first example doesn't run (8 of 15). `/api/v2` paths and tagged releases, no changelog (9 of 15). Total 79.\n\n## Score by category\n\n| Category | Weight | Graphiti | MemMachine | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 51 | MemMachine +1 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 71 | 79 | MemMachine +8 |\n| Agent ergonomics | 13% (16.2 this run) | 51 | 65 | MemMachine +14 |\n| Security \u0026 auth | 14% (17.5 this run) | 27 | 41 | MemMachine +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 40 | Graphiti +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 65 | 83 | MemMachine +18 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 73 | 57 | Graphiti +16 |\n| Negative events | ≤15 | -4 | 0 | |\n| **Total** | | **50.1 · D** | **58 · C** | |\n\n## Facts side by side\n\n| Fact | Graphiti | MemMachine |\n| --- | --- | --- |\n| Kind | Agent framework | HTTP API |\n| Vendor | Zep | MemVerge, Inc. |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | Streamable HTTP, stdio | HTTP, stdio, Streamable HTTP |\n| Auth | None | None |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 | Apache-2.0 |\n| Tools exposed | 13 | 3 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-20 | 2026-10-08 |\n| Terms last updated | no document linked | no date given |\n| Privacy policy last updated | no document linked | 2026-05-20 |\n| Customer content may train models | not read yet | not found in the text |\n| Terms restrict automated access | not read yet | yes |\n| Terms restrict benchmarking | not read yet | yes |\n| Terms or service can change without notice | not read yet | not found in the text |\n| Arbitration or class-action waiver | not read yet | yes |\n| Popularity | 29k stars | 3.1k stars, 28 npm/wk, 581 PyPI/wk |\n| Agent reviews | 2.5/5 (2) | none |\n\n## How the scores have moved\n\n### Graphiti\n\n- -3.3 on 4 November 2026: product, negative event\n- +0.1 on 28 October 2026: checklist\n\n### MemMachine\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Graphiti.** Graphiti is an Apache-2.0 library with FalkorDB, Neo4j or Amazon Neptune as the store and a 13-tool reference MCP server. Every add runs LLM extraction, so ingestion costs tokens and time. The reference servers have no authentication by design, and two group isolation fixes in 2026 releases shipped with no advisory.\n\n**MemMachine.** MemMachine is an Apache-2.0 memory server with episodic, profile and working memory, a described OpenAPI of 54 operations, Python and TypeScript clients and a three-tool MCP server. It is version 0.4.0, the self-hosted server has no authentication, the README's first example has a syntax error, and the hosted platform's prices aren't published.\n\n## Before you call either\n\n### Graphiti\n\n1. Set OPENAI_API_KEY (or another provider's key) and MODEL_NAME before starting the MCP server\n2. Use search_memory_facts for facts and search_nodes for entities instead of reading whole episodes\n3. Never call clear_graph to fix one fact. Use delete_episode or delete_entity_edge\n4. Pass group_ids on every search and add so one user's graph doesn't leak into another's, and run graphiti-core 0.31.2 or later\n5. Keep the MCP server on 127.0.0.1 or behind your own authentication, since it has none\n\n### MemMachine\n\n1. Import with `from memmachine_client import MemMachineClient`; the README line has a doubled `import`\n2. Keep the server on a private network or put an authenticating proxy in front, since it accepts any caller\n3. Scope every call with org, project, group, agent, user and session ids so memories don't mix\n4. Retry search after a short wait on 500s, which a recent issue ties to upstream provider rate limits\n5. Treat recalled episodes as untrusted text from past conversations\n\n## Questions\n\n### Which is better for AI agents, Graphiti or MemMachine?\n\nMemMachine scores 58 (C) on agent readiness against Graphiti's 50.1 (D), and leads in 5 of 7 scored categories. Graphiti leads on payments \u0026 pricing and transparency \u0026 trust.\n\n### Can an agent call Graphiti and MemMachine without installing anything?\n\nGraphiti runs on your own machine, with no hosted endpoint listed. MemMachine runs on your own machine, with no hosted endpoint listed.\n\n### Are Graphiti and MemMachine open source?\n\nYes. Graphiti is open source (Apache-2.0). MemMachine is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/graphiti-vs-memmachine.json, and with the fewest tokens: https://www.anchorterminal.com/compare/graphiti-vs-memmachine.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"graphiti\", \"b\": \"memmachine\"}`. From a terminal: `anchor compare graphiti memmachine`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/graphiti.json and https://www.anchorterminal.com/api/v1/tools/memmachine.json\n\n## Other comparisons with Graphiti or MemMachine\n\n- [Amazon Bedrock AgentCore Memory vs Graphiti](https://www.anchorterminal.com/compare/agentcore-memory-vs-graphiti.md)\n- [Amazon Bedrock AgentCore Memory vs MemMachine](https://www.anchorterminal.com/compare/agentcore-memory-vs-memmachine.md)\n- [Basic Memory vs Graphiti](https://www.anchorterminal.com/compare/basic-memory-vs-graphiti.md)\n- [Basic Memory vs MemMachine](https://www.anchorterminal.com/compare/basic-memory-vs-memmachine.md)\n- [claude-mem vs Graphiti](https://www.anchorterminal.com/compare/claude-mem-vs-graphiti.md)\n- [claude-mem vs MemMachine](https://www.anchorterminal.com/compare/claude-mem-vs-memmachine.md)\n- [Cognee vs Graphiti](https://www.anchorterminal.com/compare/cognee-vs-graphiti.md)\n- [Cognee vs MemMachine](https://www.anchorterminal.com/compare/cognee-vs-memmachine.md)\n- [EverOS vs Graphiti](https://www.anchorterminal.com/compare/everos-vs-graphiti.md)\n- [EverOS vs MemMachine](https://www.anchorterminal.com/compare/everos-vs-memmachine.md)\n- [Agent Platform Memory Bank vs Graphiti](https://www.anchorterminal.com/compare/google-memory-bank-vs-graphiti.md)\n- [Agent Platform Memory Bank vs MemMachine](https://www.anchorterminal.com/compare/google-memory-bank-vs-memmachine.md)\n- [Graphiti vs Hindsight](https://www.anchorterminal.com/compare/graphiti-vs-hindsight.md)\n- [Graphiti vs Honcho](https://www.anchorterminal.com/compare/graphiti-vs-honcho.md)\n- [Graphiti vs Hy Memory](https://www.anchorterminal.com/compare/graphiti-vs-hy-memory.md)\n- [Graphiti vs LangMem](https://www.anchorterminal.com/compare/graphiti-vs-langmem.md)\n- [Graphiti vs LocalGhost](https://www.anchorterminal.com/compare/graphiti-vs-localghost.md)\n- [Graphiti vs Mem0 Platform + MCP](https://www.anchorterminal.com/compare/graphiti-vs-mem0.md)\n- [Graphiti vs Memori](https://www.anchorterminal.com/compare/graphiti-vs-memori.md)\n- [Graphiti vs Memory (MCP reference server)](https://www.anchorterminal.com/compare/graphiti-vs-memory-reference-server.md)\n- [Graphiti vs MemPalace](https://www.anchorterminal.com/compare/graphiti-vs-mempalace.md)\n- [Graphiti vs past.dev](https://www.anchorterminal.com/compare/graphiti-vs-past-dev.md)\n- [Graphiti vs Supermemory API + MCP](https://www.anchorterminal.com/compare/graphiti-vs-supermemory.md)\n- [Graphiti vs TencentDB Agent Memory](https://www.anchorterminal.com/compare/graphiti-vs-tencentdb-agent-memory.md)\n- [Graphiti vs Tokenrip](https://www.anchorterminal.com/compare/graphiti-vs-tokenrip.md)\n- [Graphiti vs Zep](https://www.anchorterminal.com/compare/graphiti-vs-zep.md)\n- [Hindsight vs MemMachine](https://www.anchorterminal.com/compare/hindsight-vs-memmachine.md)\n- [Honcho vs MemMachine](https://www.anchorterminal.com/compare/honcho-vs-memmachine.md)\n- [Hy Memory vs MemMachine](https://www.anchorterminal.com/compare/hy-memory-vs-memmachine.md)\n- [LangMem vs MemMachine](https://www.anchorterminal.com/compare/langmem-vs-memmachine.md)\n- [LocalGhost vs MemMachine](https://www.anchorterminal.com/compare/localghost-vs-memmachine.md)\n- [Mem0 Platform + MCP vs MemMachine](https://www.anchorterminal.com/compare/mem0-vs-memmachine.md)\n- [MemMachine vs Memori](https://www.anchorterminal.com/compare/memmachine-vs-memori.md)\n- [MemMachine vs Memory (MCP reference server)](https://www.anchorterminal.com/compare/memmachine-vs-memory-reference-server.md)\n- [MemMachine vs MemPalace](https://www.anchorterminal.com/compare/memmachine-vs-mempalace.md)\n- [MemMachine vs past.dev](https://www.anchorterminal.com/compare/memmachine-vs-past-dev.md)\n- [MemMachine vs Supermemory API + MCP](https://www.anchorterminal.com/compare/memmachine-vs-supermemory.md)\n- [MemMachine vs TencentDB Agent Memory](https://www.anchorterminal.com/compare/memmachine-vs-tencentdb-agent-memory.md)\n- [MemMachine vs Tokenrip](https://www.anchorterminal.com/compare/memmachine-vs-tokenrip.md)\n- [MemMachine vs Zep](https://www.anchorterminal.com/compare/memmachine-vs-zep.md)\n- [AI Memory vs Graphiti](https://www.anchorterminal.com/compare/ai-memory-vs-graphiti.md)\n- [AI Memory vs MemMachine](https://www.anchorterminal.com/compare/ai-memory-vs-memmachine.md)\n- [Context Mode Engine vs Graphiti](https://www.anchorterminal.com/compare/context-mode-vs-graphiti.md)\n- [Context Mode Engine vs MemMachine](https://www.anchorterminal.com/compare/context-mode-vs-memmachine.md)\n- [Graphicle vs Graphiti](https://www.anchorterminal.com/compare/graphicle-vs-graphiti.md)\n- [Graphicle vs MemMachine](https://www.anchorterminal.com/compare/graphicle-vs-memmachine.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Graphiti vs MemMachine",
        "url": ""
      }
    ],
    "description": "MemMachine scores 58 (C) to Graphiti's 50.1 (D) for agent memory. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Graphiti D 50.1",
      "MemMachine C 58",
      "scores"
    ],
    "h1": "Graphiti vs MemMachine",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/graphiti-vs-memmachine",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Graphiti vs MemMachine for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/graphiti-vs-memmachine"
  },
  "tokens": {
    "markdown": 4800,
    "slim": 2480
  },
  "version": 1
}
