Skip to main content
Glama

wallabag MCP

A Model Context Protocol (MCP) server for wallabag, the open-source read-it-later service.

This server gives AI assistants a structured interface for common wallabag workflows:

  • Verify connectivity and authentication with a tiny read-only health check

  • List, filter, and page through saved articles

  • Fetch entry metadata or full extracted content

  • Save new URLs

  • Archive/unarchive and star/unstar entries

  • Reload/refetch article extraction

  • Delete entries

  • List and add tags

  • List, create, and delete annotations

Why this exists

wallabag is widely used in self-hosted setups, but its API is OAuth-based and awkward for general LLM tools. This MCP server wraps the important entry, tag, and annotation operations with an AI-friendly surface and documented parameters.

Related MCP server: Nemo

Installation

pipx install git+https://github.com/rusty4444/wallabag-mcp.git

Or from a checkout:

python -m venv .venv
source .venv/bin/activate
pip install -e .

Configuration

The server reads configuration from environment variables:

Variable

Required

Description

WALLABAG_BASE_URL

Yes

Base URL of your wallabag instance, e.g. https://app.wallabag.it

WALLABAG_ACCESS_TOKEN

Optional

Existing OAuth access token; if set, password grant is skipped

WALLABAG_CLIENT_ID

Required unless access token is set

OAuth client id from wallabag's developer client page

WALLABAG_CLIENT_SECRET

Required unless access token is set

OAuth client secret

WALLABAG_USERNAME

Required unless access token is set

wallabag username

WALLABAG_PASSWORD

Required unless access token is set

wallabag password

WALLABAG_TIMEOUT

No

HTTP timeout in seconds, default 20

Create a wallabag API client from your wallabag instance under Developer / API clients. wallabag's official docs show the password grant against /oauth/v2/token.

MCP client config

{
  "mcpServers": {
    "wallabag": {
      "command": "wallabag-mcp",
      "env": {
        "WALLABAG_BASE_URL": "https://wallabag.example.com",
        "WALLABAG_CLIENT_ID": "your-client-id",
        "WALLABAG_CLIENT_SECRET": "your-client-secret",
        "WALLABAG_USERNAME": "your-username",
        "WALLABAG_PASSWORD": "your-password"
      }
    }
  }
}

Tools

Tool

Purpose

wallabag_health_check

Verify connectivity and authentication with a tiny read-only request

wallabag_list_entries

List entries with pagination and filters

wallabag_get_entry

Fetch one entry, optionally including extracted content

wallabag_add_entry

Save a URL into wallabag

wallabag_update_entry

Update title, URL, archive/starred state, or tags

wallabag_archive_entry

Mark an entry archived/read

wallabag_unarchive_entry

Mark an entry unarchived/unread

wallabag_star_entry

Star/favourite an entry

wallabag_unstar_entry

Remove starred/favourite state

wallabag_reload_entry

Ask wallabag to refetch/reparse the original URL

wallabag_delete_entry

Delete an entry

wallabag_list_tags

List known tags

wallabag_add_tags_to_entry

Add comma-separated tags to an entry

wallabag_delete_tag

Delete a tag globally

wallabag_list_annotations

List annotations for an entry

wallabag_create_annotation

Create an annotation on quoted article text

wallabag_delete_annotation

Delete an annotation

Development and validation

python -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
ruff check .
pytest
python scripts/live_docs_test.py

live_docs_test.py validates wallabag's public API documentation and the hosted API docs page without needing account credentials. Mutation and authenticated request behaviours are covered with mocked HTTP tests.

Safety

Write-capable tools mutate your read-it-later library. Keep OAuth secrets in environment variables or a secret manager, never in source control.

Available Tools

17 tools
wallabag_add_entryC

Save a URL as a wallabag entry.

NameRequiredDescriptionDefault
urlYesURL to save into wallabag
tagsNoOptional comma-separated tags to assign
titleNoOptional title override
archiveNoSet archived state after creation
starredNoSet starred/favourite state after creation

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, yet it only says 'save'. It does not disclose whether this is idempotent, whether re-saving a URL duplicates or updates, what authentication is required, or what side effects the archive/starred flags trigger on creation.

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 short sentence that is front-loaded with the core action. It is efficient, though arguably under-specified rather than truly concise given the tool's five parameters and mutation semantics.

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?

An output schema exists, so return values need no explanation, and the schema fully documents parameters. However, for a mutation tool with zero annotations, the description omits dedup behavior, auth requirements, and default state assumptions, leaving meaningful 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 the schema already documents all five parameters including the optional tags, title, archive, and starred fields. The description adds no parameter-level meaning beyond the schema, so the baseline 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 states a specific verb ('Save') and resource ('a URL as a wallabag entry'), so an agent can immediately tell this creates a new entry. It does not, however, differentiate from siblings like wallabag_update_entry or wallabag_reload_entry, which also touch entries.

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 use this tool versus alternatives, no prerequisites, and no mention of what happens with an already-saved URL (duplicate handling). The agent must infer all usage context.

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

wallabag_add_tags_to_entryC

Add one or more tags to a wallabag entry.

NameRequiredDescriptionDefault
tagsYesComma-separated tags to add to the entry
entry_idYeswallabag entry/article id

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/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 for a mutation operation. It does not disclose whether tags are appended to or replace existing ones, how duplicate tags are handled, what permissions are needed, or whether the call is idempotent — all critical for a write tool. "Add one or more" hints at additive semantics but never confirms it.

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 no padding or redundancy. It is efficient, though its brevity comes at the cost of the behavioral and usage detail noted above rather than being purely economical.

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?

An output schema exists, so return values need not be explained, and both parameters are fully documented in the schema. What is missing is the append-vs-replace semantics and any failure conditions for a write operation with zero annotation coverage.

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 entry_id and tags are already documented in the schema, including the comma-separated format for tags. The description adds no syntax, formatting, or constraint detail beyond what the schema provides, 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?

The description states a specific verb and resource ("Add ... tags to a wallabag entry"), which is immediately distinguishable from siblings like wallabag_delete_tag and wallabag_list_tags. It does not, however, explicitly name the sibling it complements or how it differs in effect from those tools, 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 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 use this tool versus wallabag_list_tags, wallabag_delete_tag, or wallabag_update_entry, and no mention of prerequisites such as the entry needing to exist. The description simply asserts what the call does, leaving all routing decisions to the agent.

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

wallabag_archive_entryC

Mark a wallabag entry as archived/read.

NameRequiredDescriptionDefault
entry_idYeswallabag entry/article id

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but discloses almost nothing behavioral: no idempotency, no reversibility (an unarchive tool exists), no permission/auth requirements. It does add one useful semantic point — that 'archived' means 'read' in wallabag's model — which keeps it above a 1.

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 short sentence that is front-loaded and wastes no words. It is arguably too terse for a state-mutating tool with no annotations, but as a structural matter it is clean.

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?

An output schema exists, so return values need not be explained, and the single parameter is described in the schema. However, for a mutation tool with zero annotation coverage, the description omits behavioral context (reversibility, idempotency) that an agent would want before invoking it.

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?

There is one parameter with 100% schema description coverage ('wallabag entry/article id'), so the schema already documents it fully. The description adds no formatting, lookup, or id-provenance detail, so baseline 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+resource ('Mark a wallabag entry as archived/read') and disambiguates the state change by equating archived with read. It does not, however, differentiate itself from the nearby sibling wallabag_unarchive_entry, which is the obvious inverse an agent must choose between.

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?

No when-to-use guidance, no prerequisites, and no mention of the unarchive alternative for reversing the state. The only signal is the implicit inverse in the tool name.

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

wallabag_create_annotationC

Create an annotation on a wallabag entry.

NameRequiredDescriptionDefault
textYesAnnotation text/comment
quoteYesExact quoted article text being annotated
entry_idYeswallabag entry/article id
ranges_jsonNoOptional JSON array of wallabag annotation range objects, for example [{"start":"/p[1]","startOffset":0,"end":"/p[1]","endOffset":12}]

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/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 behavioral burden and largely fails it. It does not disclose that this is a mutation requiring auth, that 'quote' must exactly match the article text for the annotation to anchor, what ranges_json does, or whether the operation is idempotent. For a write tool with zero annotation coverage this is a significant gap.

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 no filler or redundancy. It is appropriately sized for what it says, though the brevity is partly under-specification rather than disciplined concision.

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

Completeness2/5

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

An output schema exists so return values need not be explained, and the parameter schema is fully covered. However, for a mutation tool with no annotations the description omits the behavioral and prerequisite context an agent needs, leaving it materially incomplete.

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 schema already documents text, quote, entry_id, and the optional ranges_json with an example. The description adds no parameter-level meaning beyond that, which is the baseline 3 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?

States a specific verb (create) and resource (annotation) scoped to a wallabag entry, which cleanly separates it from wallabag_list_annotations and wallabag_delete_annotation. It stops short of naming those siblings or describing the annotation model, so it is clear but not differentiating.

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 use this tool versus the sibling annotation tools, no stated prerequisites (the entry must exist, the quote must match article text), and no indication of when ranges_json should be supplied. The agent must infer all usage context.

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

wallabag_delete_annotationC

Delete a wallabag annotation.

NameRequiredDescriptionDefault
annotation_idYeswallabag annotation id to delete

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/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 behavioral burden. For a destructive operation it says nothing about irreversibility, required permissions, or whether deletion is soft or hard. Only the bare fact of deletion is conveyed.

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 short, front-loaded sentence with no filler. It is efficient, though its brevity reflects under-specification rather than tight editing of rich content.

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

Completeness2/5

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

An output schema exists, so return values need not be explained. But for a destructive tool with zero annotation coverage, the description omits the behavioral details an agent needs (irreversibility, permissions, error behavior), leaving it incomplete for the operation's risk profile.

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 is fully documented in the schema, so the description correctly relies on structured data. It adds no extra meaning (e.g. where the id comes from or whether invalid ids error), so the baseline 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 ('Delete') and resource ('wallabag annotation'), so the operation is unambiguous. It does not, however, differentiate itself from siblings such as wallabag_list_annotations or wallabag_create_annotation beyond the obvious verb difference.

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?

No when-to-use guidance, no prerequisites, and no mention of alternatives or how to obtain a valid annotation_id (e.g. via wallabag_list_annotations). The agent must infer all of this from the sibling list.

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

wallabag_delete_entryC

Delete a wallabag entry.

NameRequiredDescriptionDefault
entry_idYeswallabag entry/article id

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. 'Delete' implies a destructive, likely irreversible mutation, but the description does not state whether the deletion is permanent, whether associated tags/annotations are removed, or what permissions are required.

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 short sentence with the action front-loaded and zero filler. It is appropriately sized, though its brevity reflects under-specification rather than tight editing.

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

Completeness2/5

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

Output schema exists, so return values need not be explained, but for a destructive tool with no annotations the description should disclose irreversibility, cascade behavior, and error conditions. Those gaps leave the agent under-informed before an irreversible operation.

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?

There is only one parameter and schema description coverage is 100%, so the schema already documents entry_id fully. The description adds no syntax, format, or semantic detail beyond what the schema provides, matching the baseline of 3.

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 ('Delete') and resource ('wallabag entry'), which cleanly separates it from siblings like wallabag_delete_tag and wallabag_delete_annotation by resource. It gives no scope or side-effect detail beyond that, so it is clear but minimally differentiated.

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 indication of when to use this versus alternatives (e.g., wallabag_unarchive_entry or wallabag_reload_entry) and no prerequisites or warnings. The agent gets no routing guidance at all.

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

wallabag_delete_tagB

Delete a wallabag tag globally.

NameRequiredDescriptionDefault
tag_idYeswallabag tag id to delete globally

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds only the word 'globally' beyond the schema's parameter description, and does not state that the operation is irreversible, destructive, or requires particular 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?

The description is a single efficient sentence with no wasted words, and the action and scope are front-loaded.

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 deletion tool with an output schema, the description identifies the action and global scope. However, it omits usage guidance and safety context, leaving the agent with only minimum viable information.

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 single tag_id parameter is already fully documented. The description adds no syntax, format, or constraint details beyond what the schema provides, making the baseline 3 appropriate.

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 states a specific verb ('Delete'), resource ('wallabag tag'), and scope ('globally'). It is clearly distinguishable from sibling deletion tools like wallabag_delete_entry and wallabag_delete_annotation by resource type.

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 use this tool versus alternatives, such as removing a tag from a single entry. It also does not state prerequisites or when not to use it.

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

wallabag_get_entryC

Get a wallabag entry/article by id.

NameRequiredDescriptionDefault
entry_idYeswallabag entry/article id
include_contentNoInclude extracted HTML content in the output; false returns metadata only

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/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 behavioral burden. Beyond the implicit read semantics of 'Get', it discloses nothing about side effects, required auth, whether the call is safe/idempotent, or pagination, leaving only a bare verb+resource restatement.

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 short sentence with no filler and the resource identifier front-loaded. It is efficient, though the terseness borders on under-specification for a tool with a non-obvious sibling set.

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 100% schema coverage and an output schema present, return values and parameters need not be explained, so the description is adequate. It still omits any usage context or behavioral note that an agent would want when choosing among the many sibling entry tools.

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 entry_id and include_content (including its default and metadata-vs-content behavior) are already documented in the schema. The description adds no syntax, format, or meaning beyond that, making the flat baseline 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 (Get) and resource (wallabag entry/article) scoped by id, so an agent can distinguish it from collection-style siblings. It does not, however, explicitly differentiate itself from wallabag_list_entries or the other entry-mutation tools, and leans on the name for the 'single item' distinction.

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 gives no when-to-use guidance, no prerequisites, and never names an alternative. A reader can only infer that it fetches one entry by id rather than listing or mutating; nothing routes the agent among the 17 siblings.

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

wallabag_health_checkA

Verify wallabag API connectivity and authentication with a tiny read-only request.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does state the important behavioral traits itself: 'read-only' (no mutation, side-effect free) and 'tiny' (cheap, low-cost). It could be richer about failure behavior (e.g. whether it errors vs returns a status), but that is partly covered by the output schema.

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?

A single sentence with the action front-loaded and zero filler. Every word (connectivity, authentication, read-only, tiny) earns its place by conveying distinct information.

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 zero-parameter, read-only health check with an output schema present, nothing an agent needs to invoke it correctly is missing. The description covers purpose, safety profile, and cost profile, leaving return details to the output schema.

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 tool takes zero parameters, so there is no parameter semantics to document; per the baseline for 0-param tools this is a 4. The description correctly implies no inputs are 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?

States a specific verb (verify) plus the exact resources being checked (wallabag API connectivity and authentication). This is unmistakably distinct from every sibling, which are all entry/tag/annotation CRUD operations, so an agent can select it on name+description alone.

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 stated purpose implies the usage context clearly — call it to validate connectivity/auth, typically before or when other calls fail. It does not spell out explicit when-not conditions or warn against calling it per-request, so it falls short of a full 5.

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

wallabag_list_annotationsB

List annotations for a wallabag entry.

NameRequiredDescriptionDefault
entry_idYeswallabag entry/article id

Output Schema

NameRequiredDescription
resultYes

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 carries the full behavioral burden. The verb 'List' implies a read-only, non-mutating operation, but the description does not explicitly state safety, permissions, pagination, or side-effect behavior.

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?

A single sentence with no redundancy, front-loaded with the verb and resource. It is appropriately sized for a simple list tool.

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 low-complexity list tool with full schema coverage and an output schema that documents return values, the description is nearly sufficient. The only material gap is the absence of explicit read-only/permission context, which is minor for a simple retrieval operation.

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% and the single parameter entry_id is fully documented in the schema, so the description adds no parameter detail beyond what is already structured. Per the rubric, this yields the baseline of 3.

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 clear verb ('List') and resource ('annotations') scoped to a wallabag entry, making the tool's purpose immediately understandable. It does not explicitly contrast itself with sibling tools like wallabag_create_annotation or wallabag_delete_annotation, but the operation type is unambiguous from the verb.

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 use this tool versus alternatives, nor any prerequisites or exclusions. A reader must infer that it is appropriate whenever annotations for a specific entry are needed, which is the minimum viable context.

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

wallabag_list_entriesC

List wallabag entries/articles with filters and pagination.

NameRequiredDescriptionDefault
pageNoPage number to fetch from wallabag, starting at 1
sortNoSort field supported by wallabag, commonly created, updated, archived, starred, reading_time, domain_namecreated
tagsNoOptional comma-separated tag filter
orderNoSort order: asc or descdesc
unreadNoFilter unread entries; true unread, false read, null no filter
starredNoFilter starred entries; true starred, false unstarred, null no filter
archivedNoFilter archived entries; true archived, false not archived, null no filter
per_pageNoEntries per page, usually 1-100
domain_nameNoOptional domain_name filter, for example example.com

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/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 adds almost nothing: it confirms listing plus filters and pagination, but says nothing about read-only semantics, auth requirements, pagination limits, or how many entries come back per page. The mention of 'pagination' is the only behavioral signal.

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 waste. It is efficient, though its brevity edges toward under-specification rather than tightness.

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?

An output schema exists so return values needn't be explained, and the schema fully covers the nine parameters. However, for a tool with no annotations, the description should at least flag read-only behavior and pagination shape; it is minimally 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 the schema already documents all nine parameters (sort fields, tag filters, unread/starred/archived tri-states, per_page range). The description adds no meaning beyond 'filters and pagination', so baseline 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 (List) and resource (wallabag entries/articles) plus the two capability areas (filters, pagination). It's clearly distinguishable from mutating siblings like wallabag_add_entry or wallabag_delete_entry, though it never names a sibling to route against.

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?

No when-to-use guidance, no prerequisites, no alternatives. An agent can infer this is the browse/query tool versus wallabag_get_entry, but the description provides nothing explicit about the conditions that select it.

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

wallabag_list_tagsA

List tags known to the wallabag account.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description must carry the full behavioral burden. It does not state that the operation is read-only, whether authentication is required, whether the list is paginated, or what side effects (if any) occur. Only the implicit 'List' hints at a read operation.

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?

A single, front-loaded sentence with no wasted words. The purpose and scope are communicated immediately.

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 of a zero-parameter list operation and the presence of an output schema, the description is nearly sufficient for invocation. It could still mention read-only status or authentication, but the core information is present.

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 tool has zero parameters, so there is nothing for the description to clarify beyond the schema. Per the rubric, a parameterless tool receives a baseline of 4.

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 ('List') and resource ('tags') with scope ('known to the wallabag account'). It is easily distinguished from sibling tools like wallabag_add_tags_to_entry and wallabag_delete_tag, which perform different operations on tags.

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?

No indication of when to use this tool instead of alternatives, nor whether tags should be discovered before adding or deleting them. The description only restates the operation; no context or exclusions are provided.

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

wallabag_reload_entryC

Ask wallabag to refetch/reparse the original article URL.

NameRequiredDescriptionDefault
entry_idYeswallabag entry/article id

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/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 behavioral burden. 'Ask wallabag to refetch/reparse' hints at a server-side action that may be asynchronous, but it never says whether existing content or user edits are overwritten, whether it needs the entry to be reachable online, or whether the operation is reversible.

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 no filler or repetition of the tool name. It is efficient, though it is so terse that it omits information an agent would benefit from.

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 one fully documented parameter and an output schema covering return values, the core call mechanics are complete. What is missing is the action's side effects and its placement among the archive/update/edit siblings.

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%, with entry_id already documented as 'wallabag entry/article id'. The description adds no further meaning about the identifier, 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 ('refetch/reparse') and resource ('the original article URL'), so an agent knows this triggers a content refresh rather than a read or metadata edit. It does not explicitly contrast itself with siblings like get_entry or update_entry, but the action is distinct enough to be inferred.

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 statement of when to use this tool versus alternatives (e.g., get_entry for reading, update_entry for manual edits), nor any prerequisite or exclusion. Usage is only implied by the word 'reload'.

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

wallabag_star_entryC

Mark a wallabag entry as starred/favourite.

NameRequiredDescriptionDefault
entry_idYeswallabag entry/article id

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/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 behavioral burden. It implies a mutation but does not disclose idempotency, what happens if the entry is already starred, permission requirements, or rate limits — significant gaps for a state-changing tool with zero annotation coverage.

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 short, front-loaded sentence with no waste. It is efficiently sized, though almost too terse to carry any additional useful 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?

An output schema exists, so return values need not be explained, and the tool is a simple single-parameter action. However, the near-absent behavioral context (idempotency, state handling) leaves the definition barely 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 the single entry_id parameter is already documented as 'wallabag entry/article id'. The description adds no format, type, or sourcing detail beyond what the schema provides, matching the baseline 3.

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 ('Mark as starred/favourite') and resource ('wallabag entry'), making the effect unambiguous. It is implicitly distinct from the sibling wallabag_unstar_entry, but does not explicitly name or differentiate against it or any other sibling.

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 gives no guidance on when to use this versus wallabag_unstar_entry or other entry tools, no prerequisites, and no alternatives. Usage is only inferable from the verb itself, which is minimal for a state-changing action.

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

wallabag_unarchive_entryB

Mark a wallabag entry as unarchived/unread.

NameRequiredDescriptionDefault
entry_idYeswallabag entry/article id

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/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 states the state change but omits idempotency, required permissions, and whether 'unarchived' and 'unread' are actually the same state — the slash phrasing is ambiguous for a mutating tool.

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 tight sentence with the action front-loaded and no filler. Only the compressed 'unarchived/unread' phrasing costs it perfection.

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?

An output schema exists, so return values needn't be documented. For a state-mutating tool with no annotations, the description lacks idempotency and permission context, leaving it minimally 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% and the single entry_id parameter is fully documented in the schema, so the baseline of 3 applies. The description adds no extra meaning about the identifier format or source.

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 ('Mark ... as unarchived/unread') and resource (wallabag entry). Its inverse relationship to the sibling wallabag_archive_entry is obvious from the name, though the description itself doesn't call out the sibling.

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?

No explicit when-to-use or when-not-to-use guidance. Usage is only implied by the tool name being the inverse of wallabag_archive_entry; an agent can infer it but the description does not state it.

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

wallabag_unstar_entryB

Remove starred/favourite state from a wallabag entry.

NameRequiredDescriptionDefault
entry_idYeswallabag entry/article id

Output Schema

NameRequiredDescription
resultYes

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 carries the disclosure burden. It makes the mutation direction clear and, being the inverse of star, implies reasonable reversibility, but says nothing about idempotency, error behavior on unstarred entries, or required 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?

A single front-loaded sentence with zero filler. Every word earns its place.

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 low-complexity state-toggle tool with a fully documented schema and an output schema that covers return values, the description is nearly complete. Only edge-case behavior (non-starred entries) is unaddressed.

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% for the single entry_id parameter, so the schema already documents it fully. The description adds no format, range, or sourcing 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 and state change ('Remove starred/favourite state') on a named resource ('wallabag entry'). It is easily distinguished from the obviously inverse sibling wallabag_star_entry, though it never names that sibling 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 guidance on when to use this versus wallabag_star_entry, nor on what happens if the entry is already unstarred. Usage is only inferable from the tool name and the symmetric sibling.

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

wallabag_update_entryC

Update metadata/state for a wallabag entry.

NameRequiredDescriptionDefault
urlNoOptional new URL
tagsNoOptional comma-separated tag list to set/add depending on wallabag version
titleNoOptional new title
starredNoSet starred/favourite state
archivedNoSet archived/read-later state
entry_idYeswallabag entry/article id

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/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 behavioral burden. It does not disclose that this is a partial update (omitted fields presumably preserved), whether it overwrites or appends tags, what permissions are required, or that it mutates remote state irreversibly. For a mutation tool with zero annotation coverage this is a significant gap.

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 short sentence with no filler and the core verb/resource front-loaded. It is efficient, though arguably too terse to serve a six-parameter mutation tool.

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

Completeness2/5

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

Given no annotations, six parameters, and many overlapping siblings, the description should clarify partial-update semantics and its relationship to the field-specific update tools. The output schema's existence relieves it of return-value detail, but the mutation/selection gaps remain.

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 quirky 'tags' behavior ('set/add depending on wallabag version') is already documented in the schema. The description adds no parameter meaning beyond that, so baseline 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 ('Update') and resource ('wallabag entry') with scope narrowed to 'metadata/state'. It is clear what the tool does, but it does not distinguish itself from dedicated siblings like wallabag_star_entry, wallabag_archive_entry, wallabag_unstar_entry or wallabag_add_tags_to_entry, which perform the same state/metadata changes for individual fields.

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 use this general updater versus the field-specific siblings (star_entry, archive_entry, add_tags_to_entry). No prerequisites, no mention that it is a partial update, and no when-not-to-use conditions are given.

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. 17 tool updatesv0.2.0
    • First observedwallabag_add_entry
    • First observedwallabag_add_tags_to_entry
    • First observedwallabag_archive_entry
    • First observedwallabag_create_annotation
    • First observedwallabag_delete_annotation
    • First observedwallabag_delete_entry
    • First observedwallabag_delete_tag
    • First observedwallabag_get_entry
    • First observedwallabag_health_check
    • First observedwallabag_list_annotations
    • First observedwallabag_list_entries
    • First observedwallabag_list_tags
    • First observedwallabag_reload_entry
    • First observedwallabag_star_entry
    • First observedwallabag_unarchive_entry
    • First observedwallabag_unstar_entry
    • First observedwallabag_update_entry

TDQS

B3.4/5.0

Scored across 17 tools

Disambiguation4/5

Each tool targets a distinct resource+action (entries, tags, annotations, health), and the archive/unarchive and star/unstar pairs are clearly differentiated. The only mild overlap is between wallabag_update_entry and the specialized state tools (archive/star/reload), but descriptions help distinguish them.

Naming Consistency5/5

Every tool follows a uniform wallabag_ prefix plus a consistent verb_noun pattern (list_entries, get_entry, delete_annotation, unarchive_entry). Even paired opposites (archive/unarchive, star/unstar) are named symmetrically.

Tool Count4/5

17 tools is slightly above the ideal 3-15 range, but each tool earns its place across three domains (entries, tags, annotations) plus a health check. No redundant tools bloat the surface.

Completeness4/5

Entries have full CRUD plus state and reload operations, and annotations cover list/create/delete. Minor gaps exist: no tool to remove a specific tag from an entry, and no annotation update, but core workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    An MCP server enabling AI assistants to store, retrieve, and manage contextual information across conversations with features like persistent memory, advanced search, tagging, and privacy controls.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables users to transform AI conversations into a structured, searchable knowledge base by saving ideas, code snippets, bookmarks, and reminders. It supports persistent storage through Supabase or PostgreSQL and includes webhook integrations for automating workflows with external tools.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that enables AI assistants to manage Context Repo prompts, documents, and collections with semantic search and progressive disclosure navigation.
    12 npm
    1
    MIT