Skip to content

How Zep’s scores are calculated

The full audit trail, recomputed from the verdict data at build time through the same code that produced the leaderboard: verdict × quality × story weight per cell, cells sum to dimension scores, dimensions blend into the PA Score. Every number on the product page is reproducible from this page alone; for why the formula looks like this, see the methodology.

verdict factors: full ×1.0 · partial ×0.6 · disputed ×0.3 · none ×0.0 · n/a excluded from both sides · cell points = weight × quality × factor · cell max = weight × 10

PA Score29/100

Agent-ready 65.8 × 0.30 = 19.74

API quality 0.0 × 0.20 = 0.00

Openness 30.6 × 0.20 = 6.12

Built-in AI 13.3 × 0.15 = 2.00

Automation 9.6 × 0.15 = 1.44

(19.74 + 0.00 + 6.12 + 2.00 + 1.44) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 29.30 ÷ 1.00 = 29.3

Scores are stored to 1 decimal; the product page’s pills round to whole numbers for display. Each dimension below shows the stories, verdicts, and cited evidence behind its number.

Agent-ready65.8/100×0.30 of the PA blend

Outside-in: can YOUR agent reach and drive this product — API, MCP, CLI, headless runs, agent docs.

Point an agent at llms.txt or agent-oriented docsweight 2

2 (weight) × 9 (quality) × 1.0 (full) = 18.0 of 20 max

  • [probe] https://help.getzep.com/llms.txtPROBE llms.txt: HTTP 200 at https://help.getzep.com/llms.txt # Welcome to Zep! > Zep delivers agent memory at enterprise scale — a governed Context Lake of temporal knowledge graph
  • [probe] https://help.getzep.com/docs-mcp-serverPROBE runtime (recorded 2026-09-05): Zep's documentation MCP server at https://help.getzep.com/_mcp/server completed a full keyless JSON-RPC initialize handshake, answering with serverInfo {"name":"fern-docs-mcp-server"} over SSE — open agent access to the docs, no auth required.
  • [claimed-docs] https://help.getzep.com/memory-mcp-server.mdThe Memory MCP Server lets an end user connect an MCP client (Claude, ChatGPT, Claude Code, Codex, Cursor, and others) to their own agent memory in Zep.

Run the product headlessly / in CI for automationweight 2

2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max

  • [claimed-docs] https://help.getzep.com/zepctl-cli.mdzepctl is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.md`zepctl` is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.mdzepctl is a command-line interface for administering Zep projects.
  • [claimed-docs] https://help.getzep.com/threads.mdChat messages are added to threads using `thread.add_messages`, which both adds those messages to the thread history and ingests those messages into the user-level knowledge graph.
  • [claimed-docs] https://help.getzep.com/deleting-data-from-the-graph.mdHere's how to delete an edge from a graph: client.graph.edge.delete(uuid_="your_edge_uuid")
  • [probe] https://help.getzep.com/zepctl-cliofficial CLI documented at https://help.getzep.com/zepctl-cli

Plug MCP servers into this product so it can use their toolsweight 3

n/a — not applicable to this product: excluded from numerator and denominator

  • [claimed-docs] https://help.getzep.com/memory-mcp-server.mdThe Memory MCP Server lets an end user connect an MCP client (Claude, ChatGPT, Claude Code, Codex, Cursor, and others) to their own agent memory in Zep.
  • [claimed-docs] https://help.getzep.com/graphiti/getting-started/mcp-server.mdConnect Graphiti's Context Graphs to Claude, Cursor, and other MCP clients via the Graphiti MCP server.
  • [claimed-docs] https://help.getzep.com/graphiti/getting-started/mcp-server.mdThis enables AI assistants like Claude Desktop, Cursor, and VS Code with Copilot to interact with Graphiti's Context Graph capabilities, providing persistent context and contextual awareness.
  • [probe] https://help.getzep.com/memory-mcp-serverPROBE runtime (recorded 2026-09-05): keyless JSON-RPC initialize POST to the Memory MCP endpoint https://api.getzep.com/mcp returned HTTP 401 with `WWW-Authenticate: Bearer resource_metadata="https://api.getzep.com/.well-known/oauth-protected-resource/mcp"` — the end-user Memory MCP server is live and IdP-gated exactly as documented.

Connect an agent via an official MCP serverweight 3

3 (weight) × 9 (quality) × 1.0 (full) = 27.0 of 30 max

  • [claimed-docs] https://help.getzep.com/memory-mcp-server.mdThe Memory MCP Server lets an end user connect an MCP client (Claude, ChatGPT, Claude Code, Codex, Cursor, and others) to their own agent memory in Zep.
  • [probe] https://help.getzep.com/memory-mcp-serverofficial MCP server documented at https://help.getzep.com/memory-mcp-server
  • [probe] https://help.getzep.com/memory-mcp-serverPROBE runtime (recorded 2026-09-05): keyless JSON-RPC initialize POST to the Memory MCP endpoint https://api.getzep.com/mcp returned HTTP 401 with `WWW-Authenticate: Bearer resource_metadata="https://api.getzep.com/.well-known/oauth-protected-resource/mcp"` — the end-user Memory MCP server is live and IdP-gated exactly as documented.
  • [claimed-docs] https://help.getzep.com/governance.mdUse policies when you need least-privilege access to context for agents and Memory MCP users.

Use an official CLIweight 2

2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max

  • [claimed-docs] https://help.getzep.com/zepctl-cli.mdzepctl is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.md`zepctl` is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.mdzepctl is a command-line interface for administering Zep projects.
  • [probe] https://help.getzep.com/zepctl-cliofficial CLI documented at https://help.getzep.com/zepctl-cli

Drive the product through a documented public APIweight 3

3 (weight) × 9 (quality) × 1.0 (full) = 27.0 of 30 max

  • [claimed-docs] https://help.getzep.com/quick-start-guide.mdAdd agent memory to your app in three lines of code.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.mdzepctl is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.
  • [claimed-docs] https://help.getzep.com/performance.mdYou can request the Context Block directly in the response to the thread.add_messages() call.
  • [claimed-docs] https://help.getzep.com/threads.mdChat messages are added to threads using `thread.add_messages`, which both adds those messages to the thread history and ingests those messages into the user-level knowledge graph.
  • [claimed-docs] https://help.getzep.com/deleting-data-from-the-graph.mdHere's how to delete an edge from a graph: client.graph.edge.delete(uuid_="your_edge_uuid")
  • [probe] https://help.getzep.com/zepctl-cliofficial CLI documented at https://help.getzep.com/zepctl-cli
  • [probe] https://help.getzep.com/memory-mcp-serverPROBE runtime (recorded 2026-09-05): keyless JSON-RPC initialize POST to the Memory MCP endpoint https://api.getzep.com/mcp returned HTTP 401 with `WWW-Authenticate: Bearer resource_metadata="https://api.getzep.com/.well-known/oauth-protected-resource/mcp"` — the end-user Memory MCP server is live and IdP-gated exactly as documented.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.md`zepctl` is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.

Issue scoped/least-privilege API credentials for an agentweight 2

2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max

  • [claimed-docs] https://help.getzep.com/governance.mdUse policies when you need least-privilege access to context for agents and Memory MCP users.
  • [claimed-docs] https://help.getzep.com/governance.mdLimit which actions and context each agent and Memory MCP user can reach with ABAC policies attached to API keys and UserGroups.
  • [claimed-docs] https://help.getzep.com/governance.mdRole-based access control governs dashboard users. Attribute-based access control governs API keys and UserGroups.
  • [claimed-docs] https://help.getzep.com/governance.mdAttribute-based access control governs API keys and UserGroups.
  • [probe] https://help.getzep.com/memory-mcp-serverPROBE runtime (recorded 2026-09-05): keyless JSON-RPC initialize POST to the Memory MCP endpoint https://api.getzep.com/mcp returned HTTP 401 with `WWW-Authenticate: Bearer resource_metadata="https://api.getzep.com/.well-known/oauth-protected-resource/mcp"` — the end-user Memory MCP server is live and IdP-gated exactly as documented.

Build against official SDKsweight 2

2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max

  • [claimed-docs] https://help.getzep.com/quick-start-guide.mdAdd agent memory to your app in three lines of code.
  • [claimed-docs] https://help.getzep.com/quick-start-guide.mdAdd agent memory to your app in three lines of code. This Zep quick start covers users, threads, ingesting data, and retrieving a Context Block in under 200ms.
  • [claimed-docs] https://help.getzep.com/threads.mdChat messages are added to threads using `thread.add_messages`, which both adds those messages to the thread history and ingests those messages into the user-level knowledge graph.
  • [claimed-docs] https://help.getzep.com/deleting-data-from-the-graph.mdHere's how to delete an edge from a graph: client.graph.edge.delete(uuid_="your_edge_uuid")
  • [claimed-docs] https://help.getzep.com/performance.mdYou can request the Context Block directly in the response to the `thread.add_messages()` call. This optimization eliminates the need for a separate `thread.get_user_context()` call.
  • [probe] https://help.getzep.com/graphiti/getting-started/overviewPROBE runtime (recorded 2026-09-05): pypi graphiti-core 0.30.1 (Graphiti, Zep's open-source temporal knowledge-graph engine, 30.6k GitHub stars) installs and `from graphiti_core import Graphiti` imports with no API key — the OSS engine under Zep's Context Graphs is real and pip-installable.

Subscribe to events via webhooksweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Agent-ready = 118.4 ÷ 180 × 100 = 65.8

API quality0.0/100×0.20 of the PA blend

The programmable surface once an agent is there — machine-readable spec, interactive docs, sandbox, versioning discipline.

Explore an interactive API reference with runnable examplesweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Download a machine-readable API spec (OpenAPI or equivalent)weight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Test against a sandbox environment without touching production dataweight 1

1 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 10 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Rely on versioned APIs with a documented deprecation policyweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

API quality = 0.0 ÷ 70 × 100 = 0.0

Openness30.6/100×0.20 of the PA blend

Can you leave, inspect, or self-host — data export, open source, portability.

Do everything through the API that I can do in the UIweight 2

2 (weight) × 7 (quality) × 0.6 (partial) = 8.4 of 20 max

  • [claimed-docs] https://help.getzep.com/zepctl-cli.mdzepctl is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.md`zepctl` is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.mdzepctl is a command-line interface for administering Zep projects.
  • [claimed-docs] https://help.getzep.com/governance.mdRole-based access control governs dashboard users. Attribute-based access control governs API keys and UserGroups.
  • [claimed-docs] https://help.getzep.com/governance.mdLimit which actions and context each agent and Memory MCP user can reach with ABAC policies attached to API keys and UserGroups.
  • [claimed-docs] https://help.getzep.com/threads.mdChat messages are added to threads using `thread.add_messages`, which both adds those messages to the thread history and ingests those messages into the user-level knowledge graph.
  • [claimed-docs] https://help.getzep.com/deleting-data-from-the-graph.mdHere's how to delete an edge from a graph: client.graph.edge.delete(uuid_="your_edge_uuid")

Export all of my data in open formats and leaveweight 3

3 (weight) × 4 (quality) × 0.6 (partial) = 7.2 of 30 max

  • [claimed-docs] https://help.getzep.com/zepctl-cli.mdzepctl is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.md`zepctl` is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.mdzepctl is a command-line interface for administering Zep projects.
  • [claimed-docs] https://help.getzep.com/deleting-data-from-the-graph.mdHere's how to delete an edge from a graph: client.graph.edge.delete(uuid_="your_edge_uuid")
  • [claimed-docs] https://help.getzep.com/deleting-data-from-the-graph.mdHere's how to delete an edge from a graph: ... client.graph.edge.delete(uuid_="your_edge_uuid")
  • [probe] https://help.getzep.com/graphiti/getting-started/overviewPROBE runtime (recorded 2026-09-05): pypi graphiti-core 0.30.1 (Graphiti, Zep's open-source temporal knowledge-graph engine, 30.6k GitHub stars) installs and `from graphiti_core import Graphiti` imports with no API key — the OSS engine under Zep's Context Graphs is real and pip-installable.
  • [claimed-docs] https://help.getzep.com/users-and-user-graphs.mdDeleting a User will delete all Threads and thread artifacts associated with that User with a single API call, making it easy to handle Right To Be Forgotten requests.

Read the product's source under an open licenseweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [github] https://github.com/getzep/graphitiGraphiti's context graphs track how facts change over time, maintain provenance to source data, and support both prescribed and learned ontology
  • [github] https://github.com/getzep/graphitiGraphiti is a framework for building and querying temporal context graphs for AI agents. Unlike static knowledge graphs, Graphiti's context graphs track how facts change over time
  • [github] https://github.com/getzep/graphitiGraphiti is a framework for building and querying temporal context graphs for AI agents.
  • [claimed-docs] https://help.getzep.com/graphiti/getting-started/overview.mdGraphiti is the open-source temporal knowledge graph framework. Use it to build and query a single Context Graph per subject locally
  • [probe] https://help.getzep.com/graphiti/getting-started/overviewPROBE runtime (recorded 2026-09-05): pypi graphiti-core 0.30.1 (Graphiti, Zep's open-source temporal knowledge-graph engine, 30.6k GitHub stars) installs and `from graphiti_core import Graphiti` imports with no API key — the OSS engine under Zep's Context Graphs is real and pip-installable.
  • [claimed-docs] https://www.getzep.com/pricingDeploy anywhere CloudYour VPC

Self-host the core productweight 3

3 (weight) × 5 (quality) × 0.6 (partial) = 9.0 of 30 max

  • [claimed-docs] https://www.getzep.com/pricingDeploy anywhere CloudYour VPC
  • [probe] https://help.getzep.com/graphiti/getting-started/overviewPROBE runtime (recorded 2026-09-05): pypi graphiti-core 0.30.1 (Graphiti, Zep's open-source temporal knowledge-graph engine, 30.6k GitHub stars) installs and `from graphiti_core import Graphiti` imports with no API key — the OSS engine under Zep's Context Graphs is real and pip-installable.
  • [github] https://github.com/getzep/graphitiGraphiti's context graphs track how facts change over time, maintain provenance to source data, and support both prescribed and learned ontology
  • [github] https://github.com/getzep/graphitiGraphiti is a framework for building and querying temporal context graphs for AI agents. Unlike static knowledge graphs, Graphiti's context graphs track how facts change over time
  • [claimed-docs] https://help.getzep.com/zepctl-cli.md`zepctl` is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.

Openness = 30.6 ÷ 100 × 100 = 30.6

Built-in AI13.3/100×0.15 of the PA blend

Inside-out: how agentic the product itself is for its users — built-in assistants, autonomous features.

Get AI-generated insights and suggestions from my data inside the productweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://help.getzep.com/thread-summaries.mdA thread summary is a natural-language summary of the messages in a single thread, generated and incrementally updated by Zep.
  • [claimed-docs] https://help.getzep.comZep builds a Context Graph from chat messages, business data, documents, and JSON.
  • [claimed-docs] https://help.getzep.com/concepts.mdCustom Entity/Edge Types | Feature allowing use of Pydantic-like classes to customize creation/retrieval of entities and relations in the Context Graph.
  • [claimed-docs] https://help.getzep.com/searching-the-graph.mdZep graph search combines semantic similarity with BM25 full-text search.
  • [claimed-docs] https://help.getzep.com/searching-the-graph.mdset scope="auto" and let Zep dynamically compose the most relevant context across edges, nodes, episodes, observations, and thread summaries into a single ready-to-use block.

Set up automations that run autonomously in the backgroundweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Delegate tasks to a built-in AI assistant inside the productweight 3

3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Operate the product with natural-language commandsweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://help.getzep.com/memory-mcp-server.mdThe Memory MCP Server lets an end user connect an MCP client (Claude, ChatGPT, Claude Code, Codex, Cursor, and others) to their own agent memory in Zep.
  • [probe] https://help.getzep.com/memory-mcp-serverPROBE runtime (recorded 2026-09-05): keyless JSON-RPC initialize POST to the Memory MCP endpoint https://api.getzep.com/mcp returned HTTP 401 with `WWW-Authenticate: Bearer resource_metadata="https://api.getzep.com/.well-known/oauth-protected-resource/mcp"` — the end-user Memory MCP server is live and IdP-gated exactly as documented.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.mdzepctl is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.md`zepctl` is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.

Built-in AI = 12.0 ÷ 90 × 100 = 13.3

Automation9.6/100×0.15 of the PA blend

Depth of automation primitives — rules, scheduling, bulk operations, webhooks.

Perform bulk operations across many items at onceweight 2

2 (weight) × 4 (quality) × 0.6 (partial) = 4.8 of 20 max

  • [claimed-docs] https://help.getzep.com/users-and-user-graphs.mdDeleting a User will delete all Threads and thread artifacts associated with that User with a single API call, making it easy to handle Right To Be Forgotten requests.
  • [claimed-docs] https://help.getzep.com/users-and-user-graphs.mdThis single-operation approach makes it simple to handle Right To Be Forgotten (RTBF) requests and comply with privacy regulations.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.mdzepctl is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.
  • [claimed-docs] https://help.getzep.com/zepctl-cli.md`zepctl` is a command-line interface for administering Zep projects. It provides full access to Zep, enabling you to manage users, threads, Context Graphs, and data operations from the terminal.

Define rules that trigger actions automatically on eventsweight 3

3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Schedule recurring jobs or workflowsweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Version, review, and roll back my automationsweight 1

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Automation = 4.8 ÷ 50 × 100 = 9.6