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.txt“PROBE 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-server“PROBE 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.md“The 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.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.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.md“zepctl is a command-line interface for administering Zep projects.”
- [claimed-docs] https://help.getzep.com/threads.md“Chat 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.md“Here's how to delete an edge from a graph: client.graph.edge.delete(uuid_="your_edge_uuid")”
- [probe] https://help.getzep.com/zepctl-cli“official 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.md“The 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.md“Connect 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.md“This 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-server“PROBE 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.md“The 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-server“official MCP server documented at https://help.getzep.com/memory-mcp-server”
- [probe] https://help.getzep.com/memory-mcp-server“PROBE 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.md“Use 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.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.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.md“zepctl is a command-line interface for administering Zep projects.”
- [probe] https://help.getzep.com/zepctl-cli“official 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.md“Add agent memory to your app in three lines of code.”
- [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/performance.md“You can request the Context Block directly in the response to the thread.add_messages() call.”
- [claimed-docs] https://help.getzep.com/threads.md“Chat 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.md“Here's how to delete an edge from a graph: client.graph.edge.delete(uuid_="your_edge_uuid")”
- [probe] https://help.getzep.com/zepctl-cli“official CLI documented at https://help.getzep.com/zepctl-cli”
- [probe] https://help.getzep.com/memory-mcp-server“PROBE 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.md“Use policies when you need least-privilege access to context for agents and Memory MCP users.”
- [claimed-docs] https://help.getzep.com/governance.md“Limit 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.md“Role-based access control governs dashboard users. Attribute-based access control governs API keys and UserGroups.”
- [claimed-docs] https://help.getzep.com/governance.md“Attribute-based access control governs API keys and UserGroups.”
- [probe] https://help.getzep.com/memory-mcp-server“PROBE 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.md“Add agent memory to your app in three lines of code.”
- [claimed-docs] https://help.getzep.com/quick-start-guide.md“Add 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.md“Chat 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.md“Here's how to delete an edge from a graph: client.graph.edge.delete(uuid_="your_edge_uuid")”
- [claimed-docs] https://help.getzep.com/performance.md“You 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/overview“PROBE 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.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.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.md“zepctl is a command-line interface for administering Zep projects.”
- [claimed-docs] https://help.getzep.com/governance.md“Role-based access control governs dashboard users. Attribute-based access control governs API keys and UserGroups.”
- [claimed-docs] https://help.getzep.com/governance.md“Limit 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.md“Chat 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.md“Here'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.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.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.md“zepctl is a command-line interface for administering Zep projects.”
- [claimed-docs] https://help.getzep.com/deleting-data-from-the-graph.md“Here'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.md“Here'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/overview“PROBE 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.md“Deleting 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/graphiti“Graphiti'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/graphiti“Graphiti 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/graphiti“Graphiti is a framework for building and querying temporal context graphs for AI agents.”
- [claimed-docs] https://help.getzep.com/graphiti/getting-started/overview.md“Graphiti 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/overview“PROBE 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/pricing“Deploy 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/pricing“Deploy anywhere CloudYour VPC”
- [probe] https://help.getzep.com/graphiti/getting-started/overview“PROBE 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/graphiti“Graphiti'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/graphiti“Graphiti 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.md“A 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.com“Zep builds a Context Graph from chat messages, business data, documents, and JSON.”
- [claimed-docs] https://help.getzep.com/concepts.md“Custom 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.md“Zep graph search combines semantic similarity with BM25 full-text search.”
- [claimed-docs] https://help.getzep.com/searching-the-graph.md“set 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.md“The 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-server“PROBE 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.”
- [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.md“Deleting 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.md“This 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.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.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