Skip to main content
Glama

[!TIP] Впервые здесь? Быстрый старт позволит вам пройти путь от npm install до первой постоянной сессии агента примерно за 60 секунд.


Что такое Waypath?

Waypath — это локально-ориентированный движок знаний для агентов кодинга и индивидуальных разработчиков. Он хранит ваши проектные решения, связи между сущностями и артефакты сессий в одном файле SQLite, а затем предоставляет графовый, ориентированный на истину контекст любому хосту агентов — Claude Code, Codex или MCP-клиенту — через легкий CLI.

В отличие от облачных сервисов памяти, Waypath:

  • работает полностью на вашем компьютере,

  • использует каноническую схему истины вместо векторного блоба,

  • считает каждое воспоминание первоклассным объектом с явными этапами продвижения и проверки,

  • поставляется в виде npm-пакета размером 77 КБ без необходимости в фоновых сервисах.

Related MCP server: noggin

Почему Waypath?

Проблема

Ответ Waypath

Агенты забывают контекст между сессиями

Постоянное ядро истины SQLite

RAG возвращает нерелевантные фрагменты

Гибридное ранжирование FTS5 + RRF с расширением графа

Сервисы памяти галлюцинируют без предупреждения

Явное управление через page → promote → review

Облачная зависимость, утечка данных

Все хранится в одном локальном файле .db, который принадлежит вам

Инструмент под каждый хост (Claude, Codex, Cursor)

Единый фасад, легкие прослойки для хостов, нативный MCP-сервер

Установка

[!IMPORTANT] Требуется Node.js ≥ 22. Node 22.5+ открывает доступ к нативному драйверу node:sqlite; более ранние версии 22.x автоматически переключаются на better-sqlite3.

npm install -g waypath

Проверка:

waypath --help
waypath source-status --json

Быстрый старт

1. Инициализация сессии (пример для Codex):

waypath codex --json \
  --project my-project \
  --objective "ship v2 of the retrieval pipeline" \
  --task  "refactor hybrid ranker" \
  --store-path ~/.waypath/my-project.db

2. Извлечение релевантного контекста:

waypath recall --query "hybrid ranker decisions" --json

3. Захват инсайта и его продвижение через проверку:

waypath page    --subject "hybrid ranker v2 design"
waypath promote --subject "hybrid ranker v2 design"
waypath review-queue --json

4. Запуск в качестве MCP-сервера (для Claude Code, Cursor, любого MCP-клиента):

waypath mcp-server --store-path ~/.waypath/my-project.db

Посмотрите в действии

$ waypath codex --json --project auth-service \
    --objective "migrate to passkeys" --task "design flow"
{
  "host": "codex",
  "session_id": "auth-service:passkey-flow",
  "context_pack": {
    "truth_highlights": {
      "decisions": [
        "Use WebAuthn level 2 with user verification required",
        "Argon2id for password fallback hashing"
      ],
      "entities": ["UserSession", "AuthGateway", "RefreshToken"],
      "contradictions": []
    },
    "recent_pages": [
      "Session storage design — promoted 2026-04-12"
    ]
  }
}

Команды

Область

Команды

Инициализация сессии

codex, claude-code, mcp-server

Извлечение (Recall)

recall, explain, graph-query, history

Страницы (дистиллированные знания)

page, promote, refresh-page, inspect-page

Управление проверкой

review, review-queue, inspect-candidate, resolve-contradiction

Импорт / сканирование

import-seed, import-local, scan

Здоровье системы

source-status, health, db-stats, rebuild-fts

Обслуживание

backup, benchmark, export

Полная справка: waypath --help.

Архитектура

Waypath построен на четырех независимых ядрах за легким фасадом:

flowchart TD
    subgraph HOST[" Host Shims "]
        direction LR
        CX["codex"]
        CC["claude-code"]
        MC["mcp-server"]
    end

    Facade["<b>Facade</b><br/><code>createFacade()</code>"]

    TK["<b>Truth Kernel</b><br/>decisions · entities · preferences<br/>temporal validity · supersede"]
    AK["<b>Archive Kernel</b><br/>evidence · content-hash dedup<br/>FTS5 index"]
    ON["<b>Ontology</b><br/>graph traversal<br/>pattern expansion"]
    PR["<b>Promotion Engine</b><br/>candidate review<br/>contradiction detection"]

    HOST --> Facade
    Facade --> TK
    Facade --> AK
    Facade --> ON
    Facade --> PR

    classDef kernel fill:#21262d,color:#c9d1d9,stroke:#30363d,stroke-width:1px
    classDef facade fill:#1f6feb,color:#ffffff,stroke:#58a6ff,stroke-width:2px
    classDef host fill:#161b22,color:#c9d1d9,stroke:#30363d,stroke-width:1px
    class TK,AK,ON,PR kernel
    class Facade facade
    class CX,CC,MC host
  • Ядро истины — канонические решения, сущности, предпочтения, временная актуальность (схема v3 с замещением и историей).

  • Ядро архива — хранилище необработанных данных с дедупликацией по контент-хешу и полнотекстовым индексом FTS5.

  • Слой онтологии — обход графа для расширения контекста сущностей/решений (паттерны: project_context, person_context, system_reasoning, contradiction_lookup).

  • Движок продвижения — проверка кандидатов, обнаружение противоречий, потоки замещения.

Один createFacade() предоставляет 14 глаголов. Прослойки хостов адаптируют его к протоколу загрузки каждого агента.

Конфигурация

Waypath не требует настройки по умолчанию. Чтобы настроить веса поиска, переключатели адаптеров или пороги проверки, создайте файл config.toml в рабочей директории (или укажите путь через WAYPATH_CONFIG_PATH):

[source_adapters]
jarvis-memory-db = true
jarvis-brain-db  = false

[retrieval.source_system_weights]
truth-kernel = 1.2

[retrieval.source_kind_weights]
decision = 0.9
memory   = 0.5

[review_queue]
limit = 12

Переопределение через переменные окружения:

export WAYPATH_RECALL_WEIGHT_SOURCE_SYSTEM_TRUTH_KERNEL=1.8
export WAYPATH_REVIEW_QUEUE_LIMIT=8

Приоритет: переменные окружения > config.toml > встроенные значения по умолчанию.

MCP-сервер

Waypath поставляется с нативным сервером MCP (Model Context Protocol) в виде второго бинарного файла:

waypath-mcp-server

Или через основной CLI:

waypath mcp-server --store-path ~/.waypath/project.db

Инструменты, доступные через MCP: recall, page, promote, review, graph-query, source-status.

Требования

  • Node.js ≥ 22.0 (обязательно)

  • Node.js ≥ 22.5 рекомендуется — открывает доступ к нативному node:sqlite

  • better-sqlite3опциональный запасной вариант, автоматически используемый в версиях 22.0–22.4 или там, где нативный sqlite недоступен

Статус

  • Версия: 0.1.0 — первый публичный релиз

  • Тесты: 131 пройдено (модульные + интеграционные + бенчмарки)

  • Стабильный интерфейс: CLI (26 команд), MCP-сервер, API фасада

  • Отложено: облачное развертывание, многопользовательская синхронизация, адаптивная обратная связь ранжирования

Сравнение с альтернативами

Waypath

Облачная память (mem0, zep)

Только векторный RAG

Локально-ориентированный

зависит

Каноническая схема истины

Графовый поиск

частично

Явный этап проверки

Встроенный MCP-сервер

Установка в один файл

нужен сервис

варьируется

Участие в разработке

Waypath приветствует прослойки для хостов, адаптеры источников и исправления ошибок. Хорошие задачи для начала помечены соответствующим образом.

Прочитайте CONTRIBUTING.md для настройки среды разработки, стиля кода и процесса PR.

Перед отправкой PR:

npm run build
npm test

Лицензия

MIT © TheStack.ai — см. LICENSE.

Available Tools

11 tools
waypath_graph_queryA

Read-only traversal of the Waypath knowledge graph from a specific entity id. Returns neighbors, edges, and related facts using one of four traversal patterns. Use this when you already have a resolved entity id (from waypath_recall results or from prior context); for free-text lookup use waypath_recall instead. Does not write to the database.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityIdYesEntity id to expand from, as returned by waypath_recall or waypath_session_start (e.g. "person:alice", "system:auth-svc"). Required.
patternNoTraversal pattern selector. "project_context" surfaces projects/tasks/decisions around the entity. "person_context" surfaces ownership, preferences, and collaborations. "system_reasoning" walks system → dependency → decision chains. "contradiction_lookup" finds conflicting preferences/facts attached to the entity. Optional; defaults to a balanced traversal when omitted.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description explicitly states it is read-only and does not write to the database, which is key behavioral information. However, it could mention any rate limits or permissions, but given the read-only nature, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus a usage note. Every sentence adds value, no redundancy. Highly concise and front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description mentions return types (neighbors, edges, related facts) and traversal patterns. Without an output schema, it could benefit from more details about the result structure or limits, but it covers the essential aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already provides detailed descriptions for both parameters (100% coverage). The tool description adds value by summarizing the traversal patterns and their purposes, enhancing understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb (read-only traversal), resource (Waypath knowledge graph), and output (neighbors, edges, related facts). It also distinguishes from the sibling waypath_recall by specifying it requires a resolved entity id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (when you have a resolved entity id from waypath_recall or prior context) and when not to (use waypath_recall for free-text lookup). Provides clear alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waypath_healthA

Read-only end-to-end health check: SQLite connectivity and migration version, FTS5 index sync status, source adapter probe results, and truth-kernel row counts. Safe to call any time and from any context. Use as a single diagnostic entrypoint before opening a support issue; for adapter-specific detail call waypath_source_status. Takes no parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Declares read-only nature and safety to call any time, listing checks performed. Without annotations, description carries full burden; missing specification of return format (e.g., JSON status object) is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, no fluff. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, usage, safety, and sibling distinction. However, given no output schema, description could specify what the tool returns (e.g., a status object). Still adequate for a simple health check.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so schema coverage is 100%. Baseline set at 4. Description confirms zero parameters but adds no extra value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it is a read-only health check listing specific components (SQLite, FTS5 sync, source adapters, truth-kernel row counts). Distinguishes from sibling waypath_source_status by noting it's a single diagnostic entrypoint vs adapter-specific detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Safe to call any time and from any context' and 'Use as a single diagnostic entrypoint before opening a support issue; for adapter-specific detail call waypath_source_status.' Provides clear when and when-not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waypath_pageA

Synthesize a human-readable knowledge page about a subject by aggregating and summarizing matching truth-kernel and archive entries. Returns a structured page object plus a markdown summary. The synthesis is deterministic for a given store state and does not call out to any LLM or network service. Read-only with respect to promoted memory; may cache synthesis artifacts in the local store. Use for briefings or handoffs when a recall result would be too fragmented; for targeted lookup use waypath_recall instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesSubject to synthesize a page about. Can be an entity id ("project:acme-api") or a natural-language subject ("Q2 billing migration"). Required; 1-300 chars.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: deterministic, no LLM/network call, read-only regarding promoted memory, may cache artifacts. This is comprehensive for a tool of this complexity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no filler. First sentence captures main action and output. Second sentence adds key traits. Third sentence gives usage guidance. Information density is optimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with clear output description and behavior, the description covers everything an agent needs. No missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and schema already describes the parameter with min/max length. Description adds value by giving concrete examples (entity id format, natural-language subject) and emphasizing it is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('Synthesize', 'aggregating', 'summarizing') and clearly identifies the resource ('knowledge page about a subject'). It also distinguishes from the sibling tool 'waypath_recall' by contrasting use cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance: 'Use for briefings or handoffs when a recall result would be too fragmented; for targeted lookup use waypath_recall instead.' Clearly states when and when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waypath_promoteA

WRITE: submit a candidate for promotion into the Waypath truth-kernel. Creates a new candidate row in the local SQLite review queue — it does NOT promote immediately. A human (or agent with explicit authority) must call waypath_review to accept or reject the candidate before it becomes queryable by waypath_recall. Use when you want to persist a decision, preference, or fact; use waypath_review_queue to list pending candidates and waypath_review to act on them.

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesThe proposed truth statement or fact to promote, as free text. Will be stored verbatim on the candidate record and shown to the reviewer. 1-1000 chars. Required.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It clearly states the tool is a write operation ('WRITE:'), creates a candidate in a local SQLite queue, and requires human or authorized agent review. It does not mention edge cases like duplicate detection, but the core behavior is transparent. A minor gap for a score of 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each adding distinct value. Starts with an action label ('WRITE:'), then explains the asynchronous nature, then provides usage guidance. No unnecessary words, highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (one parameter, no output schema) and the availability of sibling tools, the description is nearly complete. It covers purpose, usage, and behavior. A minor omission is what the tool returns (e.g., candidate ID), but the context suggests the agent can infer it from the schema or review queue. Highly adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds that the subject is stored verbatim and shown to the reviewer, which adds some value beyond the schema's constraints but is not essential. No additional parameter semantics are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it creates a candidate row in a review queue for promotion, not an immediate promotion. It uses a specific verb ('submit') and resource ('candidate for promotion'), and distinguishes from siblings like waypath_review and waypath_review_queue by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool ('persist a decision, preference, or fact') and when not ('does NOT promote immediately'), and directs to sibling tools (waypath_review_queue to list, waypath_review to act). This provides excellent guidance for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waypath_recallA

Read-only hybrid search over the local Waypath SQLite memory store. Runs FTS5 lexical search fused with graph-aware Reciprocal Rank Fusion (RRF) across truth-kernel and archive tables and returns ranked entries with source, score, and snippet. Use before answering any question that may depend on prior decisions, preferences, or project facts; call this instead of waypath_graph_query when you have a free-text query rather than a known entity id. Does not write to the database and does not hit the network.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesFree-text recall query (1-500 chars). Supports natural language; tokens are FTS5-escaped automatically. Prefer specific nouns and project names over vague phrases ("auth service rollout plan" beats "that thing"). Required.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It clearly states read-only behavior ('Does not write to the database') and no network access. Also mentions automatic FTS5 escaping. Could add more detail on concurrency limits or performance expectations, but sufficient for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each serving a distinct purpose: functional definition, usage guidance, and behavioral clarification. No redundant or extraneous text. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description covers purpose, usage, behavior, and parameter hints. It mentions output format ('ranked entries with source, score, and snippet') which is adequate. Could specify result limit or ordering, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the single parameter 'query' with constraints and description. The description adds value by noting automatic token escaping and advising use of specific nouns/project names ('auth service rollout plan' beats 'that thing'), which helps the agent formulate better queries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a 'Read-only hybrid search' over a SQLite memory store using FTS5 and RRF, specifying outputs (ranked entries with source, score, snippet). It distinguishes from sibling waypath_graph_query by noting it is for free-text queries rather than known entity IDs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'before answering any question that may depend on prior decisions, preferences, or project facts'. Also provides a direct alternative: 'call this instead of waypath_graph_query when you have a free-text query rather than a known entity id'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waypath_refresh_pageA

WRITE: rebuild an existing knowledge page against the current store state and update its cached summary/markdown. Use on pages flagged "stale" by waypath_review_queue, or after a large batch of promotions that should be reflected in a briefing page. Idempotent — calling twice with no intervening writes produces the same output. Does not call any external service.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesThe knowledge page id to refresh, as returned by waypath_page or waypath_review_queue. Required; 1-200 chars.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the WRITE nature, idempotency, and that it does not call external services. This is clear behavioral transparency, though additional details like error handling or required permissions could improve it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with purpose and usage, and contains no unnecessary words. Every sentence adds value, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single parameter, no output schema, no annotations), the description is complete. It covers purpose, when to use, idempotency, and external service behavior, leaving no obvious gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter (pageId) already described. The description adds context about the parameter's source ('as returned by waypath_page or waypath_review_queue'), which is helpful but not extensive. Since schema already provides most semantics, the description adds moderate value, earning a baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'rebuild an existing knowledge page against the current store state and update its cached summary/markdown.' It specifies the action (rebuild and update) and the resource (knowledge page), distinguishing it from sibling tools by mentioning when to use it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage scenarios: 'Use on pages flagged "stale" by waypath_review_queue, or after a large batch of promotions that should be reflected in a briefing page.' It also mentions idempotency, but lacks explicit when-not to use or alternatives, so not a perfect 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waypath_resolve_contradictionA

WRITE: resolve a detected contradiction between two or more preferences sharing the same key by keeping exactly one preference and marking the others as superseded. Intended for user-scoped or project-scoped preference collisions surfaced by waypath_review_queue. Use waypath_review_queue first to see active contradictions and their preference ids. This call persists to the local store and is the destructive side of contradiction handling — the non-kept preferences are no longer returned by waypath_recall.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesThe preference key with the contradiction (e.g. "editor.tab_width", "deploy.region"). Must match the key reported by waypath_review_queue. Required.
keepPreferenceIdYesThe preference id to keep as authoritative. All other preferences with the same key (and matching scope) are marked superseded. Required.
scopeRefNoOptional scope reference ("user:dd", "project:acme-api") when the contradiction is scoped rather than global. Omit to resolve across all scopes of the key.
notesNoOptional free-text rationale for the resolution (stored in audit trail). Recommended for non-obvious decisions. 0-2000 chars.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It clearly labels the operation as 'WRITE' and 'destructive', and states that non-kept preferences are no longer returned by waypath_recall. However, it does not mention return value or error cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (4 sentences), front-loaded with the action, and structured logically: purpose, usage, consequences, optional notes. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description adequately explains purpose, usage, and destructive nature, but does not specify return value or error conditions, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds workflow context (e.g., key must match review_queue output) but does not significantly enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'resolve' and the resource 'contradiction between preferences', and explicitly distinguishes its role from siblings like waypath_review_queue and waypath_recall.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use the tool (after reviewing queue), provides the prerequisite step (use waypath_review_queue first), and describes the intended scope (user/project-scoped collisions).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waypath_reviewA

WRITE: decide the fate of a pending promotion candidate. Setting status to "accepted" promotes the candidate into the truth-kernel so it becomes visible to waypath_recall; "rejected" discards it; "superseded" marks it as replaced by a newer candidate; the other states are non-terminal holding states. This call is the governance gate between waypath_promote and durable memory — do not accept without evidence. Call waypath_review_queue first to list candidates and their ids.

ParametersJSON Schema
NameRequiredDescriptionDefault
candidateIdYesCandidate id from waypath_review_queue or the response of waypath_promote. Required.
statusYesDecision to record. "accepted" = promote into truth-kernel (visible to waypath_recall). "rejected" = discard permanently. "needs_more_evidence" = keep pending, signal reviewer needs support. "pending_review" = reset to inbox. "superseded" = replaced by a newer candidate. Required.
notesNoOptional free-text rationale for the decision (shown in audit trail). Recommended for "rejected" and "needs_more_evidence". 0-2000 chars.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden. It discloses the effects of each status (e.g., 'accepted promotes into truth-kernel so it becomes visible to waypath_recall', 'rejected discards permanently', 'superseded marks as replaced'). It also warns that this is a governance gate. However, it does not mention potential side effects like idempotency or whether the action is reversible, but the key consequences are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single well-structured paragraph with no wasted words. It front-loads the purpose and provides essential details efficiently. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (mutation with 3 parameters, no output schema), the description covers the prerequisites (call review_queue first), all status effects, and the source of candidateId. It is sufficiently complete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the meaning of each status beyond the enum values, recommending notes for certain statuses, and specifying the origin of candidateId. This enriches the schema information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'WRITE: decide the fate of a pending promotion candidate' and distinguishes its role from siblings by explicitly mentioning 'governance gate between waypath_promote and durable memory.' It uses specific verbs and resources, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'Call waypath_review_queue first to list candidates and their ids' and 'do not accept without evidence.' It also explains when each status is appropriate, including terminal vs. non-terminal states, which helps the agent decide when to use this tool vs. alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waypath_review_queueA

Read-only snapshot of everything awaiting human attention: pending promotion candidates, stale knowledge pages past their refresh threshold, and detected preference contradictions. Use at the start of a review or maintenance session to see outstanding work; then call waypath_review, waypath_refresh_page, or waypath_resolve_contradiction as appropriate. Takes no parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses read-only nature ('Read-only snapshot') and no-parameter requirement. Without annotations, description carries burden; it sufficiently conveys safety but could add details about data freshness or access permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences: function, usage guidance, parameters. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no params, no output schema), the description fully covers purpose, contents, usage context, and follow-up actions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0 parameters, description correctly states 'Takes no parameters.' Baseline 4 for no-param tools; no additional semantics needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it's a read-only snapshot of pending items (promotion candidates, stale pages, contradictions), and distinguishes from sibling tools by naming them as follow-up actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises use at start of review/maintenance sessions and names specific alternatives (waypath_review, waypath_refresh_page, waypath_resolve_contradiction).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waypath_session_startA

Read-only context pack builder for the beginning of a coding or planning session. Assembles a prioritized brief from recent decisions, active preferences, seed entities, and related graph context. Does not write to the database. Call once per session before substantive work; for mid-session lookups use waypath_recall or waypath_graph_query instead. All parameters are optional — pass what is known; omitted fields fall back to project defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNoProject identifier or slug (e.g. "acme-api"). Optional; when omitted the store is queried across all projects.
objectiveNoOne-sentence goal for this session ("land the stripe webhook refactor"). Optional; biases ranking toward relevant truth-kernel entries.
activeTaskNoCurrent task identifier or short label (e.g. "PROJ-412" or "fix flake in payments_test"). Optional; scopes the pack toward this task's neighborhood.
seedEntitiesNoOptional list of known entity ids (people, files, systems) to expand from. Useful when you already know the starting points; omit to let Waypath infer seeds from project/objective/activeTask.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses read-only nature ('Does not write to the database') and overall optionality of parameters, but lacks detail on output structure since no output schema is provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four concise sentences efficiently cover purpose, function, behavioral note, and parameter guidance with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately covers usage, read-only nature, parameter optionality, and sibling distinctions; minor gap in output format description but mitigated by low complexity and schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds value beyond schema by explaining fallback behavior ('omitted fields fall back to project defaults') and usage context for seedEntities, despite 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'assembles' and resource 'context pack builder', and explicitly distinguishes from siblings by naming alternatives (waypath_recall, waypath_graph_query) for different use cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to call ('once per session before substantive work'), provides alternatives for mid-session lookups, and clarifies read-only behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waypath_source_statusA

Read-only probe of the local source adapters Waypath can ingest from (filesystem snapshots, git repos, JCP live reader, etc.). Returns each adapter's availability, last-scan timestamp, and any configuration errors. Use to diagnose "why is my recall empty" or before running a large ingest. Does not write and does not hit the network. Takes no parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It explicitly states 'Read-only probe', 'Does not write', 'Does not hit the network', and 'Takes no parameters'. Missing error handling details, but sufficient for intended use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded, with no wasted words. Every sentence adds value: first explains purpose and output, second gives usage and safety info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description covers return values ('availability, last-scan timestamp, configuration errors'). Complete for a diagnostic probe tool given its simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters and schema coverage is 100%. Description adds 'Takes no parameters' to confirm, which is clear and sufficient for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a 'read-only probe of the local source adapters' and specifies it returns 'availability, last-scan timestamp, and any configuration errors'. It is distinct from sibling tools like waypath_recall or waypath_graph_query, and explicitly links to diagnosing recall issues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Use to diagnose why is my recall empty or before running a large ingest.' It does not explicitly state when not to use, but implies safe and lightweight behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv0.1.2
    • Changedwaypath_graph_query4 fields changed
      • addedInput schema / properties / entityId / description
        Added value: +"Entity id to expand from, as returned by waypath_recall or waypath_session_start (e.g. \"person:alice\", \"system:auth-svc\"). Required."
      • addedInput schema / properties / entityId / maxLength
        Added value: +200
      • addedInput schema / properties / entityId / minLength
        Added value: +1
      • addedInput schema / properties / pattern / description
        Added value: +"Traversal pattern selector. \"project_context\" surfaces projects/tasks/decisions around the entity. \"person_context\" surfaces ownership, preferences, and collaborations. \"system_reasoning\" walks system → dependency → decision chains. \"contradiction_lookup\" finds conflicting preferences/facts attached to the entity. Optional; defaults to a balanced traversal when omitted."
    • Changedwaypath_page3 fields changed
      • addedInput schema / properties / subject / description
        Added value: +"Subject to synthesize a page about. Can be an entity id (\"project:acme-api\") or a natural-language subject (\"Q2 billing migration\"). Required; 1-300 chars."
      • addedInput schema / properties / subject / maxLength
        Added value: +300
      • addedInput schema / properties / subject / minLength
        Added value: +1
    • Changedwaypath_promote3 fields changed
      • addedInput schema / properties / subject / description
        Added value: +"The proposed truth statement or fact to promote, as free text. Will be stored verbatim on the candidate record and shown to the reviewer. 1-1000 chars. Required."
      • addedInput schema / properties / subject / maxLength
        Added value: +1000
      • addedInput schema / properties / subject / minLength
        Added value: +1
    • Changedwaypath_recall3 fields changed
      • changedInput schema / properties / query / description
        Previous value: -"Recall query text."New value: +"Free-text recall query (1-500 chars). Supports natural language; tokens are FTS5-escaped automatically. Prefer specific nouns and project names over vague phrases (\"auth service rollout plan\" beats \"that thing\"). Required."
      • addedInput schema / properties / query / maxLength
        Added value: +500
      • addedInput schema / properties / query / minLength
        Added value: +1
    • Changedwaypath_refresh_page3 fields changed
      • changedInput schema / properties / pageId / description
        Previous value: -"The knowledge page ID to refresh."New value: +"The knowledge page id to refresh, as returned by waypath_page or waypath_review_queue. Required; 1-200 chars."
      • addedInput schema / properties / pageId / maxLength
        Added value: +200
      • addedInput schema / properties / pageId / minLength
        Added value: +1
    • Changedwaypath_resolve_contradiction10 fields changed
      • changedInput schema / properties / keepPreferenceId / description
        Previous value: -"The preference ID to keep."New value: +"The preference id to keep as authoritative. All other preferences with the same key (and matching scope) are marked superseded. Required."
      • addedInput schema / properties / keepPreferenceId / maxLength
        Added value: +200
      • addedInput schema / properties / keepPreferenceId / minLength
        Added value: +1
      • changedInput schema / properties / key / description
        Previous value: -"The preference key with the contradiction."New value: +"The preference key with the contradiction (e.g. \"editor.tab_width\", \"deploy.region\"). Must match the key reported by waypath_review_queue. Required."
      • addedInput schema / properties / key / maxLength
        Added value: +200
      • addedInput schema / properties / key / minLength
        Added value: +1
      • changedInput schema / properties / notes / description
        Previous value: -"Optional resolution notes."New value: +"Optional free-text rationale for the resolution (stored in audit trail). Recommended for non-obvious decisions. 0-2000 chars."
      • addedInput schema / properties / notes / maxLength
        Added value: +2000
      • changedInput schema / properties / scopeRef / description
        Previous value: -"Optional scope reference."New value: +"Optional scope reference (\"user:dd\", \"project:acme-api\") when the contradiction is scoped rather than global. Omit to resolve across all scopes of the key."
      • addedInput schema / properties / scopeRef / maxLength
        Added value: +200
    • Changedwaypath_review6 fields changed
      • addedInput schema / properties / candidateId / description
        Added value: +"Candidate id from waypath_review_queue or the response of waypath_promote. Required."
      • addedInput schema / properties / candidateId / maxLength
        Added value: +200
      • addedInput schema / properties / candidateId / minLength
        Added value: +1
      • addedInput schema / properties / notes / description
        Added value: +"Optional free-text rationale for the decision (shown in audit trail). Recommended for \"rejected\" and \"needs_more_evidence\". 0-2000 chars."
      • addedInput schema / properties / notes / maxLength
        Added value: +2000
      • addedInput schema / properties / status / description
        Added value: +"Decision to record. \"accepted\" = promote into truth-kernel (visible to waypath_recall). \"rejected\" = discard permanently. \"needs_more_evidence\" = keep pending, signal reviewer needs support. \"pending_review\" = reset to inbox. \"superseded\" = replaced by a newer candidate. Required."
    • Changedwaypath_session_start9 fields changed
      • addedInput schema / properties / activeTask / description
        Added value: +"Current task identifier or short label (e.g. \"PROJ-412\" or \"fix flake in payments_test\"). Optional; scopes the pack toward this task's neighborhood."
      • addedInput schema / properties / activeTask / maxLength
        Added value: +500
      • addedInput schema / properties / objective / description
        Added value: +"One-sentence goal for this session (\"land the stripe webhook refactor\"). Optional; biases ranking toward relevant truth-kernel entries."
      • addedInput schema / properties / objective / maxLength
        Added value: +500
      • addedInput schema / properties / project / description
        Added value: +"Project identifier or slug (e.g. \"acme-api\"). Optional; when omitted the store is queried across all projects."
      • addedInput schema / properties / project / maxLength
        Added value: +200
      • addedInput schema / properties / seedEntities / description
        Added value: +"Optional list of known entity ids (people, files, systems) to expand from. Useful when you already know the starting points; omit to let Waypath infer seeds from project/objective/activeTask."
      • addedInput schema / properties / seedEntities / items / maxLength
        Added value: +200
      • addedInput schema / properties / seedEntities / maxItems
        Added value: +32
  2. 11 tool updates
    • First observedwaypath_graph_query
    • First observedwaypath_health
    • First observedwaypath_page
    • First observedwaypath_promote
    • First observedwaypath_recall
    • First observedwaypath_refresh_page
    • First observedwaypath_resolve_contradiction
    • First observedwaypath_review
    • First observedwaypath_review_queue
    • First observedwaypath_session_start
    • First observedwaypath_source_status

TDQS

A4.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose. For example, waypath_recall is for free-text search while waypath_graph_query is for entity-based traversal; waypath_promote, waypath_review, and waypath_review_queue form a distinct workflow. Descriptions clearly differentiate overlapping tools.

Naming Consistency4/5

All tools start with 'waypath_' and use snake_case. Most follow a verb_noun pattern (e.g., refresh_page, resolve_contradiction), but a few like session_start and source_status are noun_verb or noun_noun. Overall consistent enough for predictable navigation.

Tool Count5/5

With 11 tools, the set is well-scoped for a knowledge management system. It covers query, search, page generation, promotion workflow, health checks, and session context without being bloated or too sparse.

Completeness4/5

Major workflows are covered: submit candidates (waypath_promote), review (waypath_review, waypath_review_queue), retrieve (waypath_recall, waypath_graph_query), and page synthesis (waypath_page, waypath_refresh_page). Minor gaps include no explicit delete tool, but rejection and superseding serve similar purposes.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Persistent local memory for Claude Code that indexes every session's JSONL file verbatim into SQLite + ChromaDB. Exposes 17 MCP tools for semantic recall, deterministic file replay, and fuzzy "do you remember when..." queries across your entire session history — no API calls, nothing leaves the machine.
    17
    13
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Local-first knowledge base that ingests activity from Slack, GitHub, agent sessions, and CLI, stores provenance in SQLite, and exposes the brain via MCP, CLI, Slack, and dashboard for recall and skill proposals.
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Local-first, auditable memory for Codex, Claude Code, and MCP clients. It stores scoped user/project memory in SQLite or Postgres, serves read-only recall and inspection tools by default, and supports opt-in governed writeback with review and forget controls.
    8
    262
    17
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Persistent memory for AI agents built on the LLM Wiki pattern: a plain-Markdown brain (also a valid Obsidian vault) with SQLite metadata, local semantic search via fastembed (no API keys), one-call session context with project auto-detection, and a decision log with rationale. Works with Claude Code, Claude Desktop, Cursor, and any MCP client.
    31
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheStack-ai/waypath'

If you have feedback or need assistance with the MCP directory API, please join our Discord server