Skip to main content
Glama
BezaCore-Labs

never4ga-mcp

Official

Never4gA, short for never forget again, is memory for you and every AI agent you work with. It keeps your notes, decisions and project history as plain Markdown on your machine, and hands each agent session exactly the part it needs before the session starts.

Early days. This is version 0.1, in daily use by the person who built it and new to everyone else. Expect rough edges and interfaces that still move, and tell us when you hit one.

It does that without a model. Finding the right context is lookups, queries and file reads, so it costs no tokens, takes seconds, and gives the same answer every time. Your agent spends its budget on the work, not on searching for what it should already know.

Why it's built this way

Most agent memory asks a model to decide what's relevant, or lets the agent go looking with its own tool calls. Both spend tokens and turns before any work happens. Never4gA does that part first, mechanically:

  • Fewer tokens. In the vault it was built in, 2,153 files and about 3 million tokens of notes, a session starts with a pack of about 10,000 tokens. That's what the agent reads. Nothing else is loaded.

  • Faster starts. That pack is assembled in about four seconds, including live Git and tracker state, with zero model calls.

  • You can see why. Every item in a pack names the reason it was included. The same question gets the same pack.

Related MCP server: mcp-project-context-router

What it does

Remembers across sessions

Each session opens with what the project is, the rules it follows, what was decided, and what the last session left open.

Remembers across tools

Claude Code, Codex, Antigravity and any MCP client read the same memory. Switch tools and nothing is lost.

Writes back what happened

Sessions record progress and decisions as dated logs, so the next one picks up where this one stopped.

Keeps your notes yours

Everything is Markdown in a normal Obsidian vault. Uninstall Never4gA and your notes are exactly as they were.

Starts from the notes you have

Point it at an existing folder. Your files stay where they are, and your notes are searchable on the first run.

Brings in your tracker

Open work items from OpenProject join the pack, and a session can update them.

How it works

flowchart LR
    V[("Your Markdown<br/>vault")] --> I["Local index"]
    subgraph M["Found by lookup, not by a model"]
        direction TB
        S1["Where you are<br/>repo → workspace"] --> S2["Types and metadata"]
        S2 --> S3["Full-text search"]
        S3 --> S4["Links and relations"]
        S4 --> S5["Git and tracker state"]
    end
    I --> M
    M --> P["Context pack<br/>every item says why"]
    P --> A["Claude Code · Codex<br/>Antigravity · MCP"]
    A -. "what the session did" .-> V

A pack is built in stages, and each stage is a query: which workspace this repository belongs to, which documents that workspace holds, what full-text search finds, what those documents link to, and what Git and your tracker say right now. A pack never grows past its budget. A model gets involved when you ask for judgment, and never for work a lookup can do.

In Obsidian: the Never4gA Companion plugin shows the same pack beside the note you're reading, with the reason each item is there. Install it from its latest release or with BRAT; it isn't in Obsidian's community plugin list yet.

Quick start

uv tool install never4ga
export NEVER4GA_VAULT=~/notes

uv installs the Python version Never4gA needs if you don't already have it.

never4ga init                        # a new vault, or around the notes already there
never4ga index
never4ga search "what we decided about auth"

Then connect a project and your agents:

cd ~/code/my-project
never4ga workspace create "My Project" --type project
never4ga workspace map <workspace-id>
never4ga adapters sync --apply --repositories   # skills, and this repository's pointer files
never4ga adapters mcp --apply                    # the MCP server

adapters sync --apply on its own only updates your agents. --repositories also writes a small pointer file into each mapped repository, ignored by Git, so agents working there know to ask Never4gA for context.

Your next agent session in that repository starts with its context pack.

What it won't do

  • Call a model for you. It has no API key and never meters your usage. You bring the AI tools you already pay for.

  • Send your notes anywhere. Everything runs on your machine, and the service only listens on localhost.

  • Take over your files. The index is disposable and rebuilt from your Markdown. Your files are the only source of truth, and nothing is committed to Git for you.

  • Context packs follow repositories. A workspace is attached to a Git repository, and a pack is built for the repository you're in. Notes that aren't tied to one are fully searchable but don't get a pack yet.

  • Platforms. Built and tested on Linux, where the background service runs under systemd. On macOS and Windows, run never4ga serve in a terminal instead.

  • Four ways in. The never4ga CLI, an MCP server (never4ga-mcp), a local HTTP API, and the Obsidian companion. All four run the same code.

Tell us where it's wrong

If something didn't make sense, or didn't work the way this page says it does, open an issue. That's the most useful thing you can send.

GitHub is Never4gA's only public home. Issues and pull requests go there. To report a security problem, see SECURITY.md rather than opening an issue.

Working on Never4gA

The design is written down. docs/specs/ holds the specifications; start with 00-spec-index.md. They're generated from the maintainer's notes, so propose a change in an issue rather than editing them. AGENTS.md is the contract for AI agents working in this repository, and a fair summary of the rules for people too.

uv venv --python 3.14 .venv
VIRTUAL_ENV=.venv uv pip install -e '.[dev]'
.venv/bin/ruff check . && .venv/bin/ruff format --check . && .venv/bin/mypy && .venv/bin/pytest

That last line is the gate, and every pull request runs it.

License

Apache License 2.0. Never4gA, by BezaCore Labs.

Available Tools

15 tools
never4ga_captureA

Put a thought, link or fragment in the Inbox without deciding where it belongs. Use when something is worth keeping and classifying it now would interrupt the work.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesWhat to keep.
titleNoA title; derived from the text otherwise.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose a meaningful behavioral trait: capture defers classification and lands the item in an Inbox rather than a categorized location. However it says nothing about authentication, persistence/durability, duplicate handling, or what the agent gets back, which matters for a write tool.

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 tight sentences with zero filler, and the core action is front-loaded before the usage condition.

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 simple two-parameter capture tool with full schema coverage and no output schema, the description covers purpose and timing adequately. Minor gaps remain around persistence and what happens to the captured item afterward.

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% and both parameters are documented in the schema, so baseline is 3. The description adds only marginal meaning beyond the schema by noting that content may be a 'thought, link or fragment' rather than just the generic 'text' field.

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

Purpose4/5

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

States a concrete action ('Put a thought, link or fragment in the Inbox') and the object it produces ('Inbox'), which distinguishes it from siblings like never4ga_work_create or never4ga_decide. It is clear about the resource, though it never explicitly contrasts itself with those siblings.

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?

Gives an explicit trigger condition with a rationale: 'Use when something is worth keeping and classifying it now would interrupt the work.' This is genuine when-to-use guidance. It stops short of naming alternatives (e.g. use never4ga_decide when classification is warranted) or stating exclusions.

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

never4ga_checkpointA

Record what this session has done so far. Runtime state only: it never touches the vault, so an interruption cannot leave half a log behind.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesWhat happened, briefly.
workNoA work item that may need an update. Reported at wrap, never acted on: act with never4ga_work_update or never4ga_work_comment, passing this session_id so wrap sees it was done.
actionsNoA durable thing that happened.
contextNoA context document this session changed something in, by id or vault path, as '<ref>: what changed'. Update the document itself: wrap reports one whose content did not move.
memoriesNoSomething worth remembering.
decisionsNoSomething decided, to be reported at wrap.
session_idYesThe id context_startup returned.
walkthroughsNoA phase walkthrough this session wrote a step into, by id or vault path, as '<ref>: step N'. Write the step itself: wrap reports one whose content did not move.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose one genuinely non-obvious trait: it is runtime-only, never touches the vault, and cannot leave a partial log on interruption. That is valuable, but it says nothing about required session state, what the checkpoint reports back, or how recorded items flow into wrap.

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 short sentences with zero waste. The core action is front-loaded and the atomicity guarantee follows immediately as supporting context.

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?

For an eight-parameter tool with no output schema, the description covers the key safety property but omits what happens after recording and how these entries surface at wrap. The rich per-parameter schema descriptions compensate substantially, keeping this at a minimum-viable level rather than inadequate.

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% and each of the eight parameters carries a detailed description in the schema itself, so the baseline of 3 applies. The prose adds no parameter-level syntax or meaning beyond what the schema already provides.

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

Purpose4/5

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

States a specific verb and resource: recording what the session has done so far. It is clear this is an incremental checkpoint rather than a finalization, but it never names or contrasts against siblings like never4ga_wrap or never4ga_capture, so differentiation is left to inference from the name.

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

Usage Guidelines3/5

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

'What this session has done so far' implies a mid-session, incremental recording moment, but there is no explicit when-to-use or when-not guidance and no routing to never4ga_wrap for the final summary. Usage is implied rather than stated.

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

never4ga_context_focusA

More context about particular terms, at a stated depth. Use when the startup pack was not enough or work moved to an unfamiliar area.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoAn absolute path on this machine.
depthNoHow far the pack reaches. Defaults to focused.
termsYesWhat the pack should be about.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not state whether the operation is read-only, what form the returned 'context' takes, whether depth affects latency or cost, or any caching or rate-limit behavior. The depth semantics in the schema hint at behavioral gradation, but the description adds nothing beyond the phrase 'at a stated depth'.

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 short sentences, front-loaded with the core action and immediately followed by the usage condition. There is no filler or repetition.

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?

The input schema is complete and self-describing, but with no output schema and no annotations, the description leaves the return format, safety profile, and behavioral differences between depth levels unspecified. It is minimally adequate for a context-retrieval tool but has clear 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 every parameter including the depth enum and default value is already documented. The description only vaguely restates 'terms' and 'depth' and adds no syntax, format, or interaction guidance beyond what the schema provides, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific action (fetch more context) on a specific object (particular terms) and notes a scoping parameter (stated depth). It implicitly differentiates from the startup pack by positioning itself as the follow-up step, though it does not name the sibling never4ga_context_startup explicitly.

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?

Gives a clear triggering condition: use it when the startup pack was insufficient or work shifted to an unfamiliar area. It does not name an explicit alternative tool, but the condition itself routes the agent correctly relative to context_startup.

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

never4ga_context_startupB

The smallest useful context for starting a session in a workspace: what it is, what binds it, what the last session did. Opens a session and returns its id.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoAn absolute path on this machine.
taskNoA short description of the task. Becomes retrieval terms; never pass a whole prompt.
clientNoWhich agent client is asking.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the key side effect and return value ("Opens a session and returns its id"), but says nothing about persistence, auth requirements, or whether repeated calls create multiple sessions.

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

Conciseness4/5

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

Two tight sentences with the action front-loaded and zero padding. The clause "what it is, what binds it, what the last session did" is slightly abstract but does convey payload content efficiently.

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?

With no output schema and no annotations, the description should say more about the shape of the returned context and the effect of creating a session. It covers the essentials for calling the tool but leaves the return contract vague.

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 cwd, task, and client are already well documented, including the useful 'never pass a whole prompt' warning. The description adds no parameter-level meaning beyond that baseline.

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

Purpose4/5

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

The description names a concrete verb and resource: it opens a session and returns its id, and it characterizes the payload as minimal startup context. It does not, however, distinguish itself from the closely-named sibling never4ga_context_focus, so an agent must infer the split.

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

Usage Guidelines3/5

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

"For starting a session in a workspace" implies the trigger condition, but no alternative is named and no exclusion is stated (e.g., when to use context_focus or workspace_resolve instead). Usage is only implied.

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

never4ga_decideA

Draft a decision record. It is written as PROPOSED and is not in effect: an agent never authors an accepted decision, and only the maintainer moves one to accepted.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesWhat the decision is about. Leave the ADR number out: it is allocated from the folder.
seriesNoWhich of the folder's ADR series it belongs to, when it has more than one.
numberedNoNumber it even though its folder has no numbered decisions yet. A folder that numbers them always does.
descriptionNoOne line summarising it.
workspace_idNoThe workspace it belongs to.

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden, and it does disclose the key trait: the record is created as PROPOSED and is not in effect, with acceptance reserved for the maintainer. It stops short of stating permissions, error behavior, or side effects such as number allocation from the folder.

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 short sentences with no filler; the state-of-the-draft constraint is front-loaded immediately after the purpose so an agent knows the outcome before reading anything else.

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 5-parameter draft tool with a fully documented schema and no output schema, the description supplies the one thing structured fields cannot: the lifecycle guarantee. Only minor gaps remain (return value shape, what happens if title collides).

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 every parameter (including the numbering, series, and workspace semantics) is already documented in the schema. The description adds no parameter-level detail beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Draft a decision record') and immediately adds the lifecycle state the draft lands in. It is clearly distinguishable from write-ish siblings like never4ga_capture or never4ga_checkpoint, though no sibling is named explicitly.

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?

The description gives a firm usage rule: an agent never authors an accepted decision, and only the maintainer promotes one. That is real when/when-not guidance for the drafting workflow, but it does not point to a specific alternative tool for capturing non-decision content.

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

never4ga_doctorA

Check vault health. Reports findings with repair hints and never repairs anything itself.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoValidation level. Defaults to strict.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose one important trait: the tool is diagnostic and non-mutating ('never repairs anything itself'). However, it says nothing about permissions, cost/duration of a full vault scan, or whether findings are blocking, which a doctor-style tool would benefit from stating.

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 short sentences with zero filler, and the core purpose plus the critical non-repair constraint are front-loaded. Nothing is redundant.

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 one-optional-parameter diagnostic with no output schema, the description covers what it does and what it returns in outline ('findings with repair hints'). It is close to complete; only the level semantics and return granularity are left entirely to the schema.

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% and the single 'level' parameter is fully documented in the schema, including its default of 'strict'. The description adds no meaning beyond that, so the baseline 3 applies.

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?

States a specific verb and resource ('Check vault health') and adds a scope-defining clause ('Reports findings with repair hints'). It is unmistakably distinct from all listed siblings, which are capture/search/work/context/checkpoint tools rather than diagnostics.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance, no prerequisites, and no named alternative. The clause 'never repairs anything itself' hints that repair happens elsewhere, but no sibling is pointed to, so the agent must infer the workflow.

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

never4ga_get_conceptB

One concept by its Never4gA id: its frontmatter, its body, and the relations the projection knows about.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe concept's UUIDv7.

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It usefully discloses the shape of the result (frontmatter, body, relations), which tells the agent this is a read operation with no mutation, but it says nothing about auth needs, not-found/error behavior, or whether relations are resolved inline or lazily.

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

Conciseness4/5

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

A single compact sentence with the key payload description front-loaded after the colon. Slightly awkward opening ('One concept by its Never4gA id') but no wasted clauses.

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?

With no output schema, the description does the work of describing the return payload, which is the right instinct. However, for a lookup tool it omits failure modes (unknown id, missing body) and whether relation traversal is bounded, leaving an agent with gaps when the call returns unexpectedly.

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?

One parameter at 100% schema coverage, where the schema already documents it as 'The concept's UUIDv7.' The description repeats the id-based lookup without adding format, aliasing, or fallback behavior, so it matches the baseline for schema-documented params.

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

Purpose4/5

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

Names a specific verb-resource pair (get a concept) and enumerates what is returned: frontmatter, body, and relations. That distinguishes it from search or list siblings, though it never names an alternative explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisite (e.g., where the id comes from), and no mention of alternatives such as never4ga_search for when the id is unknown. The 'by its id' phrasing merely restates the required parameter.

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

never4ga_work_commentA

Comment on a work item, or replace a comment already made. Describes the change and sends nothing unless apply is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoAn absolute path in the workspace.
bodyYesThe comment's text.
applyNoActually send it. Without this the change is only described.
amendsNoAn existing comment's id to replace.
work_itemYesThe tracker's id for the item.
session_idNoThe id context_startup returned. Pass it so wrap sees this write happened.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the critical dry-run behavior: nothing is sent unless `apply` is true. It omits authorization requirements, whether an amendment is reversible, and what the describe-only response contains.

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 with no filler, and the dry-run constraint is stated up front where it most affects agent behavior.

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?

For a six-parameter mutation tool with no annotations and no output schema, the definition covers the core call semantics but not the write's side effects, permissions, or preview result. Adequate but with visible 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 all six parameters are already documented, including `apply`, `amends`, and `session_id`. The description adds no syntax or format detail beyond the schema, making the baseline 3 appropriate.

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

Purpose4/5

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

States a specific verb (comment) and resource (work item), plus the alternate mode of replacing an existing comment. It is clearly distinguishable from work_create/work_update by resource, though it never names a sibling to sharpen the boundary.

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

Usage Guidelines3/5

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

The description implies the usage context through the apply/describe distinction, telling the agent the default is a no-op preview. It does not say when to reach for this over work_update or when replacement is appropriate versus posting a new comment.

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

never4ga_work_createB

Create a work item on the workspace's tracker. Describes the change and sends nothing unless apply is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoAn absolute path in the workspace.
applyNoActually send it. Without this the change is only described.
titleYesThe item's title.
fieldsNoOther fields to set.
session_idNoThe id context_startup returned. Pass it so wrap sees this write happened.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, and it does disclose the important dry-run default: nothing is sent unless `apply` is true. However, it says nothing about permissions, idempotency, duplicate-title behavior, side effects on the tracker, or what the call returns after a successful write.

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 short sentences with no filler, and the core action is front-loaded before the dry-run caveat. Every clause earns its place.

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?

For a mutation tool with no annotations and no output schema, the description covers the essential dry-run behavior but omits post-write behavior and what `fields` can carry beyond the schema's terse note. It is adequate but not complete.

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 all five parameters are already documented in the schema, including `apply`, `cwd`, `fields`, and `session_id`. The description restates the `apply` semantics but adds no new meaning beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

The description gives a specific verb and resource: 'Create a work item on the workspace's tracker.' An agent can distinguish it from read/update siblings like never4ga_work_update or never4ga_work_get. It stops short of explicitly naming those siblings, so it lands at 4 rather than 5.

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

Usage Guidelines2/5

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

There is no guidance on when to create versus update, comment on, or search for work items, and no stated prerequisites or exclusions. The only routing information is implicit in the word 'Create'. This is essentially no usage guidance.

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

never4ga_work_getB

Read one work item from the workspace's tracker.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoAn absolute path in the workspace.
work_itemYesThe tracker's id for the item.

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It conveys read-only semantics via 'Read', which is the key safety signal, but says nothing about behavior on a missing/invalid id, permissions, or whether the cwd context affects resolution.

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

Conciseness4/5

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

A single front-loaded sentence with zero filler. It is efficient, though the extreme brevity leaves room for the missing usage and failure-mode context noted elsewhere.

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?

For a simple two-parameter, single-required read tool, the description is minimally sufficient. With no output schema, however, the agent gets no hint about what a work item contains or how a not-found id behaves.

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 both parameters (cwd, work_item) are already documented in the schema. The description adds no syntax, format, or id-derivation detail beyond that baseline.

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

Purpose4/5

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

States a specific verb (read) and resource (one work item) scoped to the workspace's tracker. The singular 'one work item' implicitly distinguishes it from the list-style sibling never4ga_work_search, though the distinction is not made explicit.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is for fetching a single known item rather than searching. No when-to-use, when-not-to-use, or named alternative (e.g. never4ga_work_search) is given.

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

never4ga_workspace_resolveB

Which Never4gA workspace a directory belongs to, and why. Mechanical: it refuses to guess rather than picking one.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoAn absolute path on this machine.

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses that the tool is mechanical and will refuse to guess rather than arbitrarily pick a workspace, which is an important non-obvious trait. However, it does not state whether the operation is read-only, what happens when no workspace matches, or what the 'why' output actually contains.

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

Conciseness4/5

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

The description is two short sentences, front-loaded with the main purpose followed by a behavioral note. Every sentence adds value, though 'Mechanical:' is slightly jargon-like; the structure is efficient and easy to parse.

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?

For a simple one-parameter, no-output-schema tool, the description covers the core purpose and a key behavioral trait. It is incomplete on important details: it does not explain what happens if 'cwd' is omitted, what the return value or 'why' looks like, or how ambiguity is surfaced. These gaps matter for correct invocation but are less severe than for a complex mutation tool.

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%, and the single parameter 'cwd' already has a clear description in the schema. The tool description adds no additional meaning about the parameter's format, default behavior when omitted, or how it is used in resolution. A baseline of 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the core function: determining which Never4gA workspace a directory belongs to, plus the reason. It identifies the resource and the relation, though it lacks an explicit verb like 'resolve'. It is distinct from all listed siblings, none of which handle workspace resolution.

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

Usage Guidelines2/5

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

The description offers no explicit guidance on when to use this tool versus alternatives, nor any when-not conditions. The phrase 'refuses to guess rather than picking one' hints at a preference for authoritative resolution, but it does not tell the agent when to call this instead of other workspace-related tools.

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

never4ga_work_updateA

Change fields on a work item. Describes the change and sends nothing unless apply is true; a change to nothing is refused either way.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoAn absolute path in the workspace.
applyNoActually send it. Without this the change is only described.
fieldsYesFields to change.
work_itemYesThe tracker's id for the item.
session_idNoThe id context_startup returned. Pass it so wrap sees this write happened.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose two non-obvious traits: writes are suppressed unless `apply` is true, and a no-op field change is rejected in either mode. It still omits permission/auth requirements, reversibility, and what happens on a partially failing update, which matters for a mutation tool.

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 tight sentences with the mutation scope front-loaded and the dry-run/validation caveat immediately after; nothing is padded or redundant.

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?

For a mutation tool with no annotations and no output schema, the description covers the dry-run contract and the no-op guard, which are the most important behaviors. It is still thin on session/permission context and on error or partial-update outcomes, leaving gaps an agent might need before calling.

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 all five parameters are already documented in the schema and the baseline is 3. The description reinforces the semantics of `apply` and the `fields` payload but adds no syntax, format, or constraint detail beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource ('Change fields on a work item'), which an agent can clearly separate from read siblings like never4ga_work_get/never4ga_work_search and from never4ga_work_create/never4ga_work_comment. It does not, however, explicitly contrast itself with any sibling by name, so it stops short of a 5.

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

Usage Guidelines3/5

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

Usage is implied by the verb 'change' and by the dry-run default ('sends nothing unless `apply` is true'), so an agent can infer this is the mutation path when edit intent exists. There is no explicit statement of when to prefer this over never4ga_work_create or never4ga_work_comment, nor any prerequisites.

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

never4ga_wrapA

Close a session: write the one activity log it leaves behind, and report what was declared along the way -- decisions, things worth remembering, work items that may need an update, and the context documents the session was given, with the question whether it changed anything they assert. It writes nothing but the log. Idempotent: wrapping twice updates one document rather than writing two, and a title given the second time replaces the first and renames the file.

ParametersJSON Schema
NameRequiredDescriptionDefault
intoNoWhere the log belongs when the session's workspace no longer exists: the id of the workspace it became, or of the life area that now holds it. An archived workspace needs nothing passed.
titleNoWhat the session was about. Passed again on a later wrap, it retitles the log and renames it.
session_idYesThe id context_startup returned.

TDQS

A3.6/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 and does well: "It writes nothing but the log" scopes the write precisely, and the idempotency rule (wrapping twice updates one document; a re-passed title replaces and renames the file) is detailed behavior no structured field provides. It omits permissions/auth requirements, keeping it short of a 5.

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

Conciseness3/5

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

The key action is front-loaded, but the second sentence is an overlong, convoluted run-on ("with the question whether it changed anything they assert") that costs more reading effort than the information it delivers. The final idempotency sentence pulls its weight.

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 no-output-schema mutation tool, the description explains the single side effect and summarizes what is reported back (decisions, memories, work items, context documents). Return semantics are adequately conveyed; only auth/permission context is missing.

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 the baseline is 3. The description largely restates what the schema already documents for title and into (retitling/renaming, archived-workspace case) rather than adding syntax or format details beyond it.

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

Purpose4/5

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

Opens with a specific verb+resource: "Close a session" and "write the one activity log it leaves behind." That distinguishes it from siblings like checkpoint or context_startup, though the trailing clause about reporting declarations is wordy enough to dilute the core action. No sibling is named explicitly.

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

Usage Guidelines3/5

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

Usage is only implied by "Close a session" – an agent can infer end-of-session timing, but there is no explicit when-to-use vs. alternative guidance (e.g. checkpoint vs. wrap) and no stated prerequisites. The idempotency note helps but is behavioral, not routing.

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.

  1. 1 tool update
    • Changednever4ga_checkpoint1 field changed
      • addedInput schema / properties / walkthroughs
        Added value: +{
        +  "description": "A phase walkthrough this session wrote a step into, by id or vault path, as '<ref>: step N'. Write the step itself: wrap reports one whose content did not move.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
  2. 15 tool updatesv0.1.0
    • First observednever4ga_capture
    • First observednever4ga_checkpoint
    • First observednever4ga_context_focus
    • First observednever4ga_context_startup
    • First observednever4ga_decide
    • First observednever4ga_doctor
    • First observednever4ga_get_concept
    • First observednever4ga_search
    • First observednever4ga_work_comment
    • First observednever4ga_work_create
    • First observednever4ga_work_get
    • First observednever4ga_work_search
    • First observednever4ga_work_update
    • First observednever4ga_workspace_resolve
    • First observednever4ga_wrap

TDQS

A3.6/5.0

Scored across 15 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: session lifecycle (startup, checkpoint, wrap), vault retrieval (search, get_concept, context_focus), and work tracker operations (search, get, create, update, comment) are separated by domain prefixes and descriptions. Overlap is minimal, and the descriptions clarify boundaries.

Naming Consistency4/5

All tools share the never4ga_ prefix and snake_case, which makes them groupable, but the action ordering varies: some use noun_verb (work_get, workspace_resolve), others verb_noun (get_concept), and several are bare verbs/nouns (wrap, decide, search). This is mostly consistent with minor deviations.

Tool Count5/5

15 tools is at the upper end of the ideal range, but each tool maps to a distinct operation in session management, vault access, and work tracking. The set is well-scoped with no obvious redundancy.

Completeness4/5

Core lifecycle and retrieval workflows are covered, including session start/checkpoint/wrap, vault search and concept retrieval, and work item create/read/update/comment. Minor gaps exist (e.g., no work item delete or direct concept update/delete), but these may be intentional or manageable via other tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides persistent, local-first memory for coding agents with Markdown as the source of truth, exposed via CLI, loopback API, MCP, and Codex hooks for context retrieval and durable writes.
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Enables AI coding agents to maintain persistent project context, including rules, decisions, environment intelligence, and Git history, using a local-first MCP server with automatic project detection and token-efficient retrieval.
    13
    MIT