Skip to main content
Glama

aik-mcp turns a directory of Markdown files into a live, queryable knowledge base for any MCP-compatible AI agent — opencode, Claude Code, Cline, Codex, GitHub Copilot, and more.

Write your team's conventions, reusable workflows, and agent prompts as plain .md files with YAML frontmatter. aik-mcp serves them on demand — your agent can discover, read, search, and install them at runtime, across any project.

No database. No API to build. Just Markdown.

Features

Icon

Feature

Why it matters

📝

Knowledge as Markdown

Plain .md files with frontmatter. Version them with git. Review them in PRs.

⚡

Zero config

npx aik-mcp runs immediately. Point it at a folder of Markdown files. Done.

🔎

Full-text search

Fuzzy search across every rule, skill, and template — powered by Fuse.js.

📦

Install on demand

Push knowledge directly into your agent's runtime config with a single tool call.

👀

Live sync

A file watcher detects changes instantly. No restart. No downtime.

🔌

Universal MCP

Works with opencode, Claude Code, Cline, Codex, Copilot, and any MCP-compatible client.

Related MCP server: mcp-wiki-server

Quick start

1. Create a rule

mkdir -p my-knowledge/rules
cat > my-knowledge/rules/typescript.md << 'EOF'
---
title: TypeScript Conventions
description: Coding standards for TypeScript projects
tags: [typescript, conventions]
version: "1.0.0"
compatibility: [opencode, claude-code, cline, codex, copilot]
---

## TypeScript Conventions

- Use explicit types for public API surfaces
- Prefer `interface` over `type` for object shapes
- Use `const` assertions for literal values
EOF

2. Start the server

AIK_CONTENT_DIR=./my-knowledge npx aik-mcp

3. Ask your agent

"Find and apply the TypeScript conventions rule for this project."

Your agent calls aik_search, reads the rule, and applies it — all transparently through MCP.

Docs

Full documentation is available at openhoat.github.io/aik-mcp.

How it works

graph LR
    Agent[AI Agent<br>opencode / Claude Code / Cline / Codex / Copilot] -->|MCP JSON-RPC| Server(aik-mcp)
    Server --> Store[Content Store<br>in memory]
    Store --> Files[Markdown files<br>rules/ skills/ workflows/ ...]
    Server --> Watcher[File Watcher<br>live sync on change]
    Server --> Tools[MCP Tools<br>list, get, search, write,<br>install, uninstall]

Your agent speaks MCP on one side. aik-mcp speaks your file system on the other. Everything is cached in memory for fast lookups, and a file watcher keeps the cache up to date.

Client configuration

opencode

Add to opencode.jsonc or .opencode/opencode.jsonc in your project:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "aik": {
      "type": "local",
      "command": ["npx", "-y", "aik-mcp"],
      "enabled": true,
      "environment": {
        "AIK_CONTENT_DIR": "/path/to/your/knowledge",
        "LOG_LEVEL": "info",
      },
    },
  },
}

Claude Code

Add to .mcp.json or ~/.claude/settings.json:

{
  "mcpServers": {
    "aik": {
      "command": "npx",
      "args": ["aik-mcp"],
      "env": {
        "AIK_CONTENT_DIR": "/path/to/your/knowledge",
        "LOG_LEVEL": "info"
      }
    }
  }
}

Cline

Add to cline.json or project .mcp.json:

{
  "mcpServers": {
    "aik": {
      "command": "npx",
      "args": ["aik-mcp"],
      "env": {
        "AIK_CONTENT_DIR": "/path/to/your/knowledge",
        "LOG_LEVEL": "info"
      }
    }
  }
}

Codex

Add to ~/.codex/config.toml or project .codex/config.toml:

[mcp]
"aik" = { command = ["npx", "aik-mcp"], env = { AIK_CONTENT_DIR = "/path/to/your/knowledge", LOG_LEVEL = "info" } }

GitHub Copilot

Configure the MCP server in your IDE settings (VS Code, JetBrains, etc.) and add project instructions to .github/copilot-instructions.md:

## MCP servers

aik-mcp provides knowledge management. Use `aik_list`, `aik_get`, `aik_search`, `aik_install`, and related tools to manage rules, skills, workflows, and agents.

Tip: Set AIK_CONTENT_DIR to a shared path (Dropbox, git repo, team NAS, etc.) to use the same knowledge base across projects and agents.

Content structure

Content items are organized by category as bundles — a directory with a README.md entry file plus optional supporting assets:

Directory

Purpose

rules/

Coding standards, conventions, quality gates

skills/

Reusable instruction blocks (prompts, recipes)

workflows/

Multi-step process definitions

agents/

Specialized agent configurations

content/
  skills/generate-changelog/
    README.md                 # entry file — carries the frontmatter
    assets/changelog.mjs      # supporting asset, referenced relatively

The README.md entry file is a Markdown document with YAML frontmatter:

---
title: "My Rule"
description: "What this rule enforces"
tags: [tag1, tag2]
version: "1.0.0"
compatibility: [opencode, claude-code, cline, codex, copilot]
---

## My Rule

Content here...

Supporting assets are listed by aik_get and read via aik_get_asset. When a skill is installed, its assets are copied alongside SKILL.md.

MCP tools

Tool

Description

aik_list

List content items, optionally filtered by category or tag

aik_get

Retrieve a specific item by path (e.g. rules/typescript)

aik_search

Full-text fuzzy search across all content

aik_write

Create or update a content item from the agent

aik_delete

Delete a content item

aik_install

Install an item into the project's agent config

aik_reinstall

Reinstall the latest version of an installed item

aik_uninstall

Remove an installed item from the project

aik_uninstall_all

Remove all aik-installed items from the project

aik_list_installed

List items currently installed in the project

Resources

URI

Description

aik://{category}

List all items in a category (e.g. aik://rules)

aik://search?q=...

Search items by keyword

CLI options

Flag

Default

Description

--http

—

Start in HTTP/SSE mode instead of stdio

--port <n>

3456

HTTP server port (only with --http)

--no-watch

—

Disable file watching

Environment variables

Variable

Default

Description

AIK_CONTENT_DIR

.

Path to the content directory

LOG_LEVEL

info

Log level: trace, debug, info, warn, error, silent

Development

npm install
npm run build
npm run test
npm run qa

Scripts

Script

Description

npm run build

Compile TypeScript to build/

npm test

Run the unit test suite (Vitest)

npm run test:unit

Run the unit tests only (--project unit)

npm run test:e2e

Run the e2e tests only (--project e2e)

npm run qa

Lint, format, architecture and docs checks

npm run qa:fix

Auto-fix lint and formatting issues

npm run typecheck

TypeScript type checking (tsc --noEmit)

npm run validate

Full pipeline: qa → typecheck → build → tests

Contributing

Contributions are welcome! Open an issue or submit a PR.

See the changelog for release history.

Full documentation at openhoat.github.io/aik-mcp.

License

MIT

Available Tools

13 tools
check_updatesB

Check for installed content items that have newer versions available in the knowledge base.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentYesTarget AI agent (opencode, claude-code, cline, codex, or copilot).
scopeNoScope to check (project or global).project
projectDirNoProject directory (defaults to current working directory). Config files are found by walking up.

TDQS

B3.3/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 disclosure burden. It doesn't say whether this is a read-only operation, whether it contacts a remote knowledge base or needs network/auth, or whether it mutates local state; the word 'check' hints at read-only but nothing is confirmed.

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 filler. The resource and the condition ('newer versions available') come first, so the agent gets the gist immediately.

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 annotations and no output schema, the description should say more about what a 'check' returns (e.g., a list of outdated items) and whether anything is affected. It is minimally adequate for a simple 3-parameter tool but leaves the result shape and side-effect profile to inference.

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 agent and scope carrying enum descriptions and defaults, so the schema already documents all parameters. The description adds no syntax, defaults, or meaning beyond what the schema states, 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 ('Check') and resource ('installed content items that have newer versions available in the knowledge base'), which clearly separates it from siblings like list_installed and update. It stops short of naming alternatives, but the scope is unambiguous.

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 use case (checking for outdated items before updating), but never states when to call it versus update, list_installed, or reinstall. No prerequisites or exclusions are given, leaving the agent to infer the workflow.

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

deleteB

Delete a content item by its path

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the content item to delete (e.g. "rules/coding-standards")

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Merely states 'Delete' without disclosing irreversibility, safety, or confirmation requirements.

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?

Single sentence, no waste, but could benefit from additional behavioral context without losing conciseness.

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?

Minimal viable for a simple delete tool, but missing return value, error handling, and behavioral caveats given no output schema or annotations.

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 has 100% coverage with parameter description for 'path'. Tool description adds no extra meaning beyond what schema already provides.

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

Purpose5/5

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

Description states 'Delete a content item by its path', using a specific verb ('delete') and resource ('content item'), clearly distinguishing from sibling tools like 'uninstall' (packages).

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?

Implies when to use (deleting content items by path), but no explicit guidance on when not to use or alternatives among siblings.

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

getA

Retrieve a specific content item by its path (e.g. "rules/coding-standards")

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the content item (e.g. "rules/coding-standards")

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 full burden but only states 'Retrieve', implying a read-only operation. It lacks disclosure of behavioral traits such as error handling, return format, or edge cases, though the simplicity of a 'get' tool makes the description minimally adequate.

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, front-loaded sentence with no superfluous words. Every word is necessary to convey the action and parameter, making it highly concise.

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 tools with one parameter and no output schema, the description explains the action and parameter usage well. It is mostly complete but could enhance by specifying return value format or common error scenarios.

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 the 'path' parameter. The description adds an example ('rules/coding-standards') but does not provide additional semantic depth beyond what the schema offers.

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

Purpose5/5

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

The description uses a specific verb 'Retrieve' and resource 'content item', with clear method 'by its path'. It effectively distinguishes from siblings like 'delete', 'update', and 'search', which have different purposes.

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 does not provide guidance on when to use this tool versus alternatives (e.g., 'search' for unknown paths). There is no mention of prerequisites or exclusions, leaving the agent to infer usage context.

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

get_assetB

Read a supporting asset file bundled with a content item (e.g. an example, script, or template referenced by its README).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the content item (e.g. "skills/generate-changelog")
assetYesRelative asset path within the bundle (e.g. "scripts/changelog.mjs")

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 burden. It conveys implicit read-only semantics via 'Read' and clarifies what an 'asset' is, but says nothing about failure modes (missing path/asset), the returned format (text vs binary), size limits, or whether the asset must exist in an installed bundle.

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 filler; the core action and resource come first and the parenthetical examples clarify without bloat.

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?

With no annotations and no output schema, the description does a reasonable job of implying the return value (the file's contents) and scoping the two required params, but it omits error behavior and output format for a reader tool where those could matter.

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; both 'path' and 'asset' are documented in the schema with examples. The description adds only marginal meaning (assets are 'referenced by its README') and no syntax or format 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?

States a specific verb ('Read') and a well-scoped resource ('supporting asset file bundled with a content item'), with concrete examples (example, script, template). It is clearly distinct from generic siblings like 'get' or 'search', though it never explicitly names the sibling it contrasts with.

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 explains what the tool does but not when to choose it over 'get', 'search', or 'list'. There is only an implicit usage context (you have a content item and want a bundled asset), with no prerequisites, exclusions, or alternative-routing guidance.

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

installB

Install a content item (rule, skill, workflow, or agent) into the current project so it is loaded automatically in future sessions. Supports opencode, Claude Code, Cline, and Codex.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the content to install (e.g. "rules/typescript")
agentYesTarget AI agent (opencode, claude-code, cline, codex, or copilot).
forceNoInstall even when gating fails (applies-to/requires). Use only with a documented reason.
scopeNoInstallation scope (project or global). Requires explicit agent for global scope.project
projectDirNoProject directory (defaults to current working directory). Config files are found by walking up.

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 and does disclose the key persistence trait (loaded automatically in future sessions). However it omits that this writes/modifies project config, what happens on conflicts, and the gating behavior referenced by the force parameter.

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 sentences, front-loaded with the action and target, no filler. The second sentence earns only partial keep since it partly restates the schema enum while omitting one value.

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

Completeness3/5

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

There is no output schema, so the description should ideally explain what install produces (files/config touched) and clarify gating, which it does not. For a mutation tool with no annotations, the explanation of side effects and preconditions is thinner than ideal.

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%, so the schema documents all five parameters, making 3 the baseline. The description adds no parameter detail and in fact lists only four supported agents (opencode, Claude Code, Cline, Codex), omitting 'copilot' from the enum, which slightly under-informs.

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 (install) and resource (content item: rule, skill, workflow, or agent) plus the effect (auto-loaded in future sessions). It does not explicitly differentiate from close siblings like reinstall, update, or write, 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?

Gives implied context ('into the current project so it is loaded automatically in future sessions') but never says when to use install versus reinstall, update, or write, nor any exclusions or prerequisites. Usage is inferable rather than stated.

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

listC

List available content items (rules, skills, workflows, agents)

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoFilter by tag
queryNoFilter by text query in title/description
categoryNoFilter by content category
projectDirNoProject directory used to detect the stack and annotate items with applicability (applies-to).

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 does not say whether this is a read-only listing, how results are ordered or paginated, how multiple filters combine, or what 'available' means. Only the content-type enumeration adds useful context.

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; the tool's subject matter is communicated immediately without redundant restatement of the name.

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?

For a four-parameter, multi-filter listing tool with no annotations and no output schema, the description leaves too much unsaid: result ordering, pagination, filter combination semantics, and the distinction from list_installed and search are all absent.

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 four filter parameters are already documented in the schema, making 3 the baseline. The description adds no extra meaning about filter composition or defaults beyond what the schema states.

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 clear verb (List) and resource (content items) and enumerates the four content kinds it covers, which sharpens the otherwise generic name 'list'. It does not explicitly distinguish itself from siblings like list_installed or search, so an agent must infer 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 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 the many siblings (search, get, list_installed). The reader is left to infer that this lists all content while search filters, and no preconditions or exclusions are given.

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

list_installedB

List all aik-installed content items in the current project config. Supports opencode, Claude Code, Cline, and Codex.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentYesTarget AI agent (opencode, claude-code, cline, codex, or copilot).
scopeNoScope to list (project or global).project
projectDirNoProject directory (defaults to current working directory). Config files are found by walking up.

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 burden; 'List' implies a safe read, and it discloses the supported agent set. But it says content is in 'the current project config' while the schema allows a global scope, and it does not describe return format, ordering, or behavior for a missing project config.

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 scope, with zero filler.

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 read-only list tool with a complete schema, nothing critical is missing, but the global-scope behavior, projectDir fallback semantics, and return shape are left unexplained and there are no annotations or output schema to compensate.

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%, so all three parameters are already documented in the schema, giving a baseline of 3. The description adds which agents are supported but actually omits 'copilot', which the agent enum includes, so it adds little and is slightly incomplete.

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 ('List all aik-installed content items') with the config location, which is clearer than sibling 'list'. However it does not distinguish itself from the sibling 'list' tool, so an agent cannot tell the two apart from the 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 Guidelines2/5

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

No guidance on when to use this versus the sibling 'list' or 'search'/'get' tools, and no prerequisites stated. It only enumerates supported agents, which is capability info rather than usage direction.

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

reinstallB

Reinstall a previously installed content item. Uninstalls the old entry and installs the latest version from the knowledge base. Supports opencode, Claude Code, Cline, and Codex.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the content to reinstall (e.g. "rules/typescript")
agentYesTarget AI agent (opencode, claude-code, cline, codex, or copilot).
forceNoInstall even when gating fails (applies-to/requires). Use only with a documented reason.
scopeNoInstallation scope (project or global). Requires explicit agent for global scope.project
projectDirNoProject directory (defaults to current working directory). Config files are found by walking up./app

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 usefully discloses the replace-in-place behavior (uninstall then reinstall latest version) and the supported agents, but says nothing about permissions, failure modes, what happens to locally modified files, or the effect of the force/scope gating it references only indirectly.

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?

Three short sentences, front-loaded with the core action and mechanism; little waste. The closing agent list is somewhat redundant with the schema enum but does clarify supported targets.

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 5-parameter mutating tool with no annotations and no output schema, the description covers the essential action and replacement semantics but leaves gaps around permissions, gating behavior, and result reporting that an agent would want before invoking.

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 path, agent, force, scope, and projectDir in detail; baseline 3 applies. The description adds no parameter syntax or format detail, and its agent list (opencode, Claude Code, Cline, Codex) omits copilot, which appears in the schema enum.

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 (reinstall) plus the resource (previously installed content item) and explains the mechanism: uninstall old entry, install latest version from the knowledge base. This implicitly separates it from install/uninstall siblings, but 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 Guidelines3/5

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

The phrase 'previously installed content item' implies this is for items already present rather than fresh installs, which gives usable context. However, there is no explicit when-to-use vs install/update/check_updates guidance and no stated prerequisites.

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

uninstallB

Uninstall a content item from the current project. Removes the file and the config reference. Supports opencode, Claude Code, Cline, and Codex.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the content to uninstall (e.g. "rules/typescript")
agentYesTarget AI agent (opencode, claude-code, cline, codex, or copilot).
scopeNoInstallation scope (project or global).project
projectDirNoProject directory (defaults to current working directory). Config files are found by walking up.

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 burden, and it does disclose the core side effect (file + config reference removed), which is real value. It omits reversibility, error behavior when the item isn't installed, and permission requirements, and its supported-agent list (opencode, Claude Code, Cline, Codex) silently drops copilot, which the schema's enum includes.

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?

Three short sentences, front-loaded with the action and resource, then the side effect. No padding, though the trailing agent-support sentence is the weakest and partially redundant with the schema enum.

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?

A mutation tool with no annotations and no output schema; the description adequately covers what it does and what changes, and the schema is fully documented. It falls short on error/edge-case behavior and on routing among the several removal-related 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%, so the schema already documents all four parameters (path, agent, scope, projectDir) including the config-walking fallback behavior. The description adds no parameter meaning and its agent enumeration is actually less accurate than the enum, so baseline 3 rather than higher.

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 ('Uninstall a content item') and clarifies the effect ('removes the file and the config reference'). However, it never distinguishes itself from close siblings like delete and uninstall_all, leaving the agent to guess which removal tool to pick.

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 named alternatives, despite delete, uninstall_all, and reinstall being present as siblings. The agent must infer the selection criteria entirely.

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

uninstall_allA

Uninstall ALL aik-installed content items from the current project. Removes all aik-managed files and config references.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentYesTarget AI agent (opencode, claude-code, cline, codex, or copilot).
scopeNoInstallation scope (project or global).project
projectDirNoProject directory (defaults to current working directory). Config files are found by walking up.

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. It discloses that it removes 'all aik-managed files and config references,' which is useful behavioral context. However, it omits irreversibility, permission requirements, and any warning about the destructive nature beyond the word 'Uninstall.'

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 succinct sentences, front-loaded with the primary action and scope. No wasted words; every sentence contributes to understanding.

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 description is broadly adequate for a destructive tool, but given no annotations and a scope parameter that allows 'global,' the claim 'from the current project' is potentially incomplete or misleading. It also does not mention the required 'agent' parameter, though the schema covers 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?

Schema description coverage is 100%, so the schema fully documents all three parameters including enums and default. The description adds no parameter information, 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 ('Uninstall') and resource ('ALL aik-installed content items') with clear scope ('from the current project'). It distinguishes itself from a singular 'uninstall' sibling via 'ALL', but does not explicitly name alternatives or contrast with the sibling tool.

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 usage (mass removal) through 'ALL' but offers no explicit when-to-use guidance, no exclusions, and no mention of the sibling 'uninstall' or other alternatives. Adequate but bare minimum.

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

updateB

Update a previously installed content item if a newer version is available in the knowledge base. Supports opencode, Claude Code, and Cline.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the content to update (e.g. "rules/typescript")
agentYesTarget AI agent (opencode, claude-code, cline, codex, or copilot).
scopeNoUpdate scope (project or global).project
projectDirNoProject directory (defaults to current working directory). Config files are found by walking up.

TDQS

B3/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 full behavioral burden. It states the version precondition but says nothing about what happens when no newer version exists (no-op vs. error), what happens if the item was never installed, whether existing files are overwritten or backed up, or what permissions are needed for a mutation.

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 short sentences, with the core action and its precondition front-loaded. The trailing agent-support sentence is compact but partially inaccurate, which costs it the top mark.

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 'what' and the version precondition but omits the outcome/return information an agent would want given no output schema exists, plus error behavior for uninstalled items.

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

Parameters2/5

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

Schema coverage is 100%, so the baseline would be 3, but the description actively narrows the agent set to 'opencode, Claude Code, and Cline' while the schema enum allows five values (opencode, claude-code, cline, codex, copilot). That omission risks steering agents away from valid targets, so it detracts rather than adds.

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+resource ('update a previously installed content item') and adds a crucial qualifier ('if a newer version is available in the knowledge base') that meaningfully separates it from siblings like install/reinstall. It stops short of naming those siblings, so an agent must still infer 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?

Usage is implied: update content that is already installed when a newer version exists. There is no explicit guidance on when to prefer this over check_updates, reinstall, or install, nor any stated precondition failure behavior.

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

writeC

Create or update a content item (rules, skills, workflows, agents)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath for the content (e.g. "rules/coding-standards"). Category is derived from the first path segment.
tagsNoTags (frontmatter)
titleNoTitle (frontmatter)
contentYesMarkdown body content (without frontmatter)
versionNoSemver version (frontmatter). Defaults to 1.0.0
requiresNoRequired MCP servers (frontmatter, e.g. ["mcp-local-rag"]). Used to gate installation.
appliesToNoTechnology stacks this content applies to (frontmatter, e.g. ["angular"], ["python"]). Used to gate installation.
overwriteNoSet to true to overwrite an existing file
descriptionNoShort description (frontmatter)
compatibilityNoCompatible AI agents (frontmatter). Defaults to ["opencode", "claude-code", "cline"]

TDQS

C2.9/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 behavioral burden, yet it discloses almost nothing beyond the mutation implied by 'Create or update'. It does not explain that writing over an existing path destroys prior content unless 'overwrite' is set, nor any permission or gating behavior around 'requires'/'appliesTo'.

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 a single efficient phrase with the action and resource front-loaded and zero waste. It is arguably too terse given the tool's complexity, but every word 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 10-parameter mutating tool with no annotations and no output schema, the description is thin but the schema covers every parameter thoroughly, so an agent can still call it correctly. The missing piece is routing logic against the 'update' sibling and overwrite risk disclosure.

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%, so all ten parameters are self-documented, establishing a baseline of 3. The description adds no parameter-level meaning (e.g. frontmatter vs body handling) beyond what the schema already states.

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 pair ('Create or update') and resource ('content item'), and even enumerates content categories (rules, skills, workflows, agents). However it does not differentiate from the sibling 'update' tool, which appears to overlap directly with the update half of its function.

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 'update', nor any mention of prerequisites or when-not-to-use. The agent must infer the distinction from the overlapping name alone.

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. 11 tool updatesv0.6.0
    • Changedcheck_updates1 field changed
      • addedInput schema / properties / scope
        Added value: +{
        +  "default": "project",
        +  "description": "Scope to check (project or global).",
        +  "enum": [
        +    "project",
        +    "global"
        +  ],
        +  "type": "string"
        +}
    • Addedget_asset
    • Changedinstall2 fields changed
      • addedInput schema / properties / force
        Added value: +{
        +  "default": false,
        +  "description": "Install even when gating fails (applies-to/requires). Use only with a documented reason.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / scope
        Added value: +{
        +  "default": "project",
        +  "description": "Installation scope (project or global). Requires explicit agent for global scope.",
        +  "enum": [
        +    "project",
        +    "global"
        +  ],
        +  "type": "string"
        +}
    • Changedlist1 field changed
      • addedInput schema / properties / projectDir
        Added value: +{
        +  "description": "Project directory used to detect the stack and annotate items with applicability (applies-to).",
        +  "type": "string"
        +}
    • Changedlist_installed1 field changed
      • addedInput schema / properties / scope
        Added value: +{
        +  "default": "project",
        +  "description": "Scope to list (project or global).",
        +  "enum": [
        +    "project",
        +    "global"
        +  ],
        +  "type": "string"
        +}
    • Changedreinstall2 fields changed
      • addedInput schema / properties / force
        Added value: +{
        +  "default": false,
        +  "description": "Install even when gating fails (applies-to/requires). Use only with a documented reason.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / scope
        Added value: +{
        +  "default": "project",
        +  "description": "Installation scope (project or global). Requires explicit agent for global scope.",
        +  "enum": [
        +    "project",
        +    "global"
        +  ],
        +  "type": "string"
        +}
    • Changedsearch2 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Restrict search to a category (rules, skills, workflows, agents, commands, templates)"New value: +"Restrict search to a category (rules, skills, workflows, agents)"
      • addedInput schema / properties / projectDir
        Added value: +{
        +  "description": "Project directory used to detect the stack and annotate results with applicability (applies-to).",
        +  "type": "string"
        +}
    • Changeduninstall1 field changed
      • addedInput schema / properties / scope
        Added value: +{
        +  "default": "project",
        +  "description": "Installation scope (project or global).",
        +  "enum": [
        +    "project",
        +    "global"
        +  ],
        +  "type": "string"
        +}
    • Changeduninstall_all1 field changed
      • addedInput schema / properties / scope
        Added value: +{
        +  "default": "project",
        +  "description": "Installation scope (project or global).",
        +  "enum": [
        +    "project",
        +    "global"
        +  ],
        +  "type": "string"
        +}
    • Changedupdate1 field changed
      • addedInput schema / properties / scope
        Added value: +{
        +  "default": "project",
        +  "description": "Update scope (project or global).",
        +  "enum": [
        +    "project",
        +    "global"
        +  ],
        +  "type": "string"
        +}
    • Changedwrite4 fields changed
      • addedInput schema / properties / appliesTo
        Added value: +{
        +  "description": "Technology stacks this content applies to (frontmatter, e.g. [\"angular\"], [\"python\"]). Used to gate installation.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / compatibility
        Added value: +{
        +  "description": "Compatible AI agents (frontmatter). Defaults to [\"opencode\", \"claude-code\", \"cline\"]",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / requires
        Added value: +{
        +  "description": "Required MCP servers (frontmatter, e.g. [\"mcp-local-rag\"]). Used to gate installation.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / version
        Added value: +{
        +  "description": "Semver version (frontmatter). Defaults to 1.0.0",
        +  "pattern": "^\\d+\\.\\d+\\.\\d+$",
        +  "type": "string"
        +}
  2. 7 tool updatesv0.3.1
    • Changedcheck_updates3 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Target AI agent. Auto-detected from existing config files if not specified (opencode, claude-code, cline)."New value: +"Target AI agent (opencode, claude-code, cline, codex, or copilot)."
      • changedInput schema / properties / agent / enum
        Previous value: -[
        -  "opencode",
        -  "claude-code",
        -  "cline"
        -]New value: +[
        +  "opencode",
        +  "claude-code",
        +  "cline",
        +  "codex",
        +  "copilot"
        +]
      • addedInput schema / required
        Added value: +[
        +  "agent"
        +]
    • Changedinstall3 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Target AI agent. Auto-detected from existing config files if not specified (opencode, claude-code, cline)."New value: +"Target AI agent (opencode, claude-code, cline, codex, or copilot)."
      • changedInput schema / properties / agent / enum
        Previous value: -[
        -  "opencode",
        -  "claude-code",
        -  "cline"
        -]New value: +[
        +  "opencode",
        +  "claude-code",
        +  "cline",
        +  "codex",
        +  "copilot"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "path"
        -]New value: +[
        +  "path",
        +  "agent"
        +]
    • Changedlist_installed3 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Target AI agent. Auto-detected from existing config files if not specified."New value: +"Target AI agent (opencode, claude-code, cline, codex, or copilot)."
      • changedInput schema / properties / agent / enum
        Previous value: -[
        -  "opencode",
        -  "claude-code",
        -  "cline"
        -]New value: +[
        +  "opencode",
        +  "claude-code",
        +  "cline",
        +  "codex",
        +  "copilot"
        +]
      • addedInput schema / required
        Added value: +[
        +  "agent"
        +]
    • Changedreinstall3 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Target AI. Auto-detected from existing config files if not specified (opencode, claude-code, cline)."New value: +"Target AI agent (opencode, claude-code, cline, codex, or copilot)."
      • changedInput schema / properties / agent / enum
        Previous value: -[
        -  "opencode",
        -  "claude-code",
        -  "cline"
        -]New value: +[
        +  "opencode",
        +  "claude-code",
        +  "cline",
        +  "codex",
        +  "copilot"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "path"
        -]New value: +[
        +  "path",
        +  "agent"
        +]
    • Changeduninstall3 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Target AI agent. Auto-detected from existing config files if not specified."New value: +"Target AI agent (opencode, claude-code, cline, codex, or copilot)."
      • changedInput schema / properties / agent / enum
        Previous value: -[
        -  "opencode",
        -  "claude-code",
        -  "cline"
        -]New value: +[
        +  "opencode",
        +  "claude-code",
        +  "cline",
        +  "codex",
        +  "copilot"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "path"
        -]New value: +[
        +  "path",
        +  "agent"
        +]
    • Changeduninstall_all3 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Target AI agent. Auto-detected from existing config files if not specified."New value: +"Target AI agent (opencode, claude-code, cline, codex, or copilot)."
      • changedInput schema / properties / agent / enum
        Previous value: -[
        -  "opencode",
        -  "claude-code",
        -  "cline"
        -]New value: +[
        +  "opencode",
        +  "claude-code",
        +  "cline",
        +  "codex",
        +  "copilot"
        +]
      • addedInput schema / required
        Added value: +[
        +  "agent"
        +]
    • Changedupdate3 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Target AI agent. Auto-detected from existing config files if not specified (opencode, claude-code, cline)."New value: +"Target AI agent (opencode, claude-code, cline, codex, or copilot)."
      • changedInput schema / properties / agent / enum
        Previous value: -[
        -  "opencode",
        -  "claude-code",
        -  "cline"
        -]New value: +[
        +  "opencode",
        +  "claude-code",
        +  "cline",
        +  "codex",
        +  "copilot"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "path"
        -]New value: +[
        +  "path",
        +  "agent"
        +]
  3. 22 tool updatesv0.1.1
    • Removedaik_delete
    • Removedaik_get
    • Removedaik_install
    • Removedaik_list
    • Removedaik_list_installed
    • Removedaik_reinstall
    • Removedaik_search
    • Removedaik_uninstall
    • Removedaik_uninstall_all
    • Removedaik_write
    • Addedcheck_updates
    • Addeddelete
    • Addedget
    • Addedinstall
    • Addedlist
    • Addedlist_installed
    • Addedreinstall
    • Addedsearch
    • Addeduninstall
    • Addeduninstall_all
    • Addedupdate
    • Addedwrite
  4. 10 tool updatesv1.0.0
    • First observedaik_delete
    • First observedaik_get
    • First observedaik_install
    • First observedaik_list
    • First observedaik_list_installed
    • First observedaik_reinstall
    • First observedaik_search
    • First observedaik_uninstall
    • First observedaik_uninstall_all
    • First observedaik_write

TDQS

A3.5/5.0

Scored across 13 tools

Disambiguation3/5

Most tools are distinct, but install, reinstall, and update heavily overlap: update 'updates a previously installed item if a newer version is available' while reinstall 'uninstalls the old entry and installs the latest version,' making the boundary confusing. delete (KB item) vs uninstall (project) is clearer, but the install lifecycle verbs remain ambiguous.

Naming Consistency5/5

All names are lowercase snake_case with predictable verb or verb_noun structure (search, get, get_asset, list_installed, check_updates, uninstall_all). No mixed conventions or vague verbs.

Tool Count5/5

13 tools is well within the ideal range and each maps to a reasonable operation in a content-knowledge-base plus install-management domain.

Completeness4/5

The surface covers search, read, write, delete, list, asset retrieval, and the full install/uninstall/update lifecycle, which is strong. The only weakness is redundancy among reinstall/update rather than a missing operation.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    Enables MCP-compatible clients to search and read local markdown documentation, allowing agents to retrieve relevant doc snippets or full files by path.
    2
    -
  • A
    license
    A
    quality
    A
    maintenance
    Provides AI agents with a local, private Markdown-based memory vault and SQLite search. Enables agents to search, read, list, and traverse linked knowledge pages via MCP with zero external runtime dependencies.
    7
    423 PyPI
    7
    MIT