Skip to main content
Glama

okf-mcp

Semantic search and CRUD tooling for OKF knowledge bundles. Runs locally, entirely offline.

OKF is a vendor-neutral format (published by Google Cloud Platform) for persisting team knowledge as markdown with YAML frontmatter. okf-mcp indexes those files and makes them searchable via hybrid BM25 + vector cosine similarity. It exposes the same functionality through both a CLI and an MCP server, so humans and AI agents can query the same bundle.

Quick Start

# requires Python 3.10+
git clone https://github.com/hdean-ssp/okf-mcp.git
cd okf-mcp
source activate.sh

# create a bundle
mkdir ~/my-knowledge && cd ~/my-knowledge
git init && okf init

# add a concept
okf commit --check-duplicates --json '{
  "title": "Retry Pattern",
  "type": "Pattern",
  "content": "Use exponential backoff with jitter for transient failures.",
  "tags": ["reliability", "networking"]
}'

# build search index (downloads ~30MB embedding model on first run)
okf reindex

# search
okf fetch "how to handle network failures"

After that:

  • okf fetch "your question" searches with natural language

  • okf list browses all concepts

  • okf show <concept-id> prints full content

  • okf stats reports bundle health

  • Use Cases & Examples has real-world workflows

  • Getting Started is the full walkthrough

Related MCP server: RAG In A Box MCP Server

Commands

Command

Purpose

okf init

Initialise a new bundle

okf commit

Create a concept

okf fetch <query>

Hybrid search (BM25 + semantic)

okf show <id>

Display a concept

okf list

Browse concepts (filterable)

okf update <id>

Modify a concept

okf move <id> <new-id>

Move or rename a concept

okf delete <id>

Remove a concept

okf reindex

Rebuild the vector index

okf stats

Bundle statistics

All commands accept --format json|text|brief. Piped output defaults to JSON; interactive defaults to text.

How It Works

The markdown files in your bundle are the source of truth. The vector index is a derived sidecar (gitignored, rebuildable from scratch with okf reindex --full).

Search combines BM25 keyword matching and vector cosine similarity at a 60/40 weighting. Embeddings come from fastembed using BAAI/bge-small-en-v1.5 (384 dimensions), stored in SQLite via sqlite-vec. Everything runs locally.

Reindexing is incremental by default (mtime-based change detection). Embedding is chunked in small batches to keep memory usage under 500MB even on a 2GB VPS.

MCP Server

The MCP server lets any MCP-compatible client (Kiro, Claude Desktop, etc.) interact with your bundle over stdio JSON-RPC.

# from within your bundle directory
okf-mcp

# or point to a specific bundle
okf-mcp --bundle-path ~/my-knowledge

You typically don't run it by hand. Instead, configure your MCP client to launch it:

Client Configuration

Team/shared deployment (recommended, see Team Setup Guide):

Create ~/.kiro/settings/mcp.json on the server:

{
  "mcpServers": {
    "okf-mcp": {
      "command": "/path/to/okf-mcp/.venv/bin/okf-mcp",
      "args": [
        "--bundle-path",
        "/path/to/your/team-bundle"
      ],
      "autoApprove": [
        "commit_concept", "delete_concept", "fetch_concepts",
        "get_stats", "init_bundle", "list_concepts",
        "move_concept", "reindex", "show_concept", "update_concept"
      ]
    }
  }
}

Kiro via Remote-SSH (Kiro connects to server, MCP runs on server):

{
  "mcpServers": {
    "okf-mcp": {
      "command": "/path/to/okf-mcp/.venv/bin/okf-mcp",
      "args": ["--bundle-path", "/path/to/your/bundle"],
      "autoApprove": [
        "fetch_concepts", "list_concepts", "show_concept",
        "get_stats", "reindex"
      ]
    }
  }
}

Local setup (Kiro and bundle on the same machine):

{
  "mcpServers": {
    "okf-mcp": {
      "command": "okf-mcp",
      "args": ["--bundle-path", "/path/to/your/bundle"],
      "autoApprove": [
        "fetch_concepts", "list_concepts", "show_concept",
        "get_stats", "reindex"
      ]
    }
  }
}

See MCP Setup Guide for individual installation or Team Setup Guide for shared deployments.

Available Tools

Tool

Description

init_bundle

Create a new bundle at a given path

commit_concept

Add a new concept (title, type, content, tags)

update_concept

Modify fields on an existing concept

move_concept

Move or rename a concept

delete_concept

Remove a concept

fetch_concepts

Semantic/hybrid search with natural language

list_concepts

Browse concepts with filters (type, tags, date, path)

show_concept

Get full content of a concept

reindex

Rebuild the vector search index

get_stats

Bundle health statistics

The server can start without a bundle configured. Pass --bundle-path or call init_bundle from the client. All tools except init_bundle require a configured bundle. Errors come back as structured MCP tool errors. Logging goes to stderr (stdout is the JSON-RPC channel).

Agent Integration

Agents interact through the MCP tools directly (fetch_concepts, commit_concept, etc.). See agent/AGENT.md for the usage guide: when to query, when to commit, workflow patterns.

Documentation

Development

git clone https://github.com/hdean-ssp/okf-mcp.git
cd okf-mcp
source activate.sh
pip install -e ".[dev]"
pytest

190 tests across CLI, MCP server, bundle operations, search, sync, and move/rename. Dev dependencies: pytest, hypothesis, pytest-asyncio.

Roadmap

See ROADMAP.md for the production readiness plan — input hardening, data integrity, deployment tooling, and the path to a stable 1.0 release.

License

Apache 2.0

Available Tools

10 tools
commit_conceptC

Commit a new concept to the knowledge bundle.

Creates a concept file with the given title, type, and content. Optionally checks for duplicate concepts before committing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
tagsNo
typeYes
titleYes
contentYes
check_duplicatesNo

Output Schema

ParametersJSON 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 provided, so description must disclose behavioral traits. It mentions duplicate checking but omits side effects, idempotency, authentication needs, or what happens on duplicate existence when check is false.

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 concise sentences front-loaded with purpose. No fluff, but could benefit from structured enumeration of parameters for clarity.

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?

Despite output schema existence, description does not mention return values or error conditions. Lacks prerequisites, expected behavior for optional parameters, and implications of duplicate checking.

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 0%. Description explains only title, type, and content, and notes check_duplicates. Omits path and tags entirely, failing to add meaning beyond parameter names.

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

Purpose5/5

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

Description clearly states it commits a new concept to the knowledge bundle, specifying verb and resource. It distinguishes from siblings like delete_concept or update_concept by focusing on creation.

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 tool versus alternatives; lacks context on prerequisites (e.g., needing an initialized bundle) or scenarios where it should be avoided.

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

delete_conceptA

Delete a concept from the bundle by its concept_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
concept_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It only states 'delete', implying mutation, but does not mention irreversibility, cascading effects, permissions, or side effects.

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?

Single sentence, 10 words, no redundancy. Efficient and direct.

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 delete with one parameter and an output schema, the description covers the core action. Lacks details on return value or confirmation, but output schema likely handles that.

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 one parameter with no description (coverage 0%). Description adds that concept_id identifies the concept to delete, but does not explain format or source. Minimal value added.

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

Purpose5/5

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

Description clearly states what the tool does: 'Delete a concept' with specific resource 'concept' and required parameter 'concept_id'. It distinguishes from sibling tools like update_concept and fetch_concepts.

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 guidance on when to use or when not to use. It implies usage when a concept needs removal, but lacks alternatives or prerequisites. Acceptable for a simple delete operation.

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

fetch_conceptsA

Search the knowledge bundle using natural language queries.

Returns a ranked list of matching concepts with scores and snippets. Supports hybrid (semantic + keyword), keyword-only, or semantic-only modes.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNohybrid
tagsNo
typeNo
queryYes
top_nNo
thresholdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 behavioral burden. It discloses that results are ranked with scores and snippets and supports multiple modes, but does not state whether the operation is read-only, any side effects, rate limits, or behavior of threshold parameter. Adequate but not comprehensive.

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 sentences with no fluff, front-loaded with purpose. Could be more structured (e.g., list parameters), but good 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?

Given the tool has 6 parameters and an output schema, the description covers basic functionality but lacks parameter details and usage context. Output schema exists, so return values don't need elaboration, but parameter semantics are incomplete.

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 description coverage is 0%, so the description must compensate. It mentions 'query' as natural language and 'mode', but fails to describe tags, type, top_n, and threshold parameters, leaving their semantics unclear.

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

Purpose5/5

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

The description clearly states the tool searches the knowledge bundle using natural language queries, returns ranked results with scores and snippets, and supports multiple search modes. This distinguishes it from sibling tools like list_concepts (which likely lists all) and show_concept (for a single concept).

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 for natural language search but does not explicitly state when to use this tool versus alternatives like list_concepts or show_concept. No exclusions or when-not-to-use guidance is provided.

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

get_statsA

Return bundle health statistics.

Returns concept count, type/tag distributions, last reindex timestamp, and the number of concepts pending re-embedding.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral aspects. It says 'Return' but does not explicitly confirm it is read-only or non-destructive. No details on side effects, auth, or rate limits. Minimal transparency.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, no fluff. Every sentence adds information.

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

Completeness4/5

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

Given zero parameters and existence of output schema, the description covers the key return items. However, it lacks explicit safety assurance, which is partially compensated by the tool's nature. Generally complete for a simple stats tool.

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 and schema coverage is 100%. The description adds value by explaining the returned fields, which goes beyond the empty schema.

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

Purpose5/5

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

The description clearly states the tool returns bundle health statistics and lists specific metrics (concept count, type/tag distributions, last reindex timestamp, pending re-embedding count). This distinguishes it from sibling CRUD tools.

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 for retrieving health stats but does not explicitly state when to use it versus alternatives or provide context like requirements. The sibling tools suggest it is for overview, but no explicit guidance is given.

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

init_bundleA

Initialize a new OKF knowledge bundle at the specified path.

Creates .okf/config.json, a root index.md, and updates .gitignore if in a git repo. This is the only tool that does not require a pre-configured bundle.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses file creation and gitignore update, but lacks details on idempotency, overwriting behavior, or side effects. Generally adequate but not thorough.

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 concise sentences: first states purpose, second lists actions and special condition. No wasted words, front-loaded with key information.

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?

Description covers main purpose and unique trait, but given the lack of annotations and presence of an output schema, it could mention return value or error conditions. Adequate for a simple tool, but not fully complete.

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 description coverage is 0%, so description must compensate for the single 'path' parameter. Description only mentions 'at the specified path' without clarifying format, existence, or validation requirements, providing minimal value beyond the schema.

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

Purpose5/5

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

Description clearly states 'Initialize a new OKF knowledge bundle' with specific verb and resource, lists created files, and highlights it is the only tool not requiring a pre-configured bundle, distinguishing it from siblings.

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

Usage Guidelines4/5

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

Explicitly notes it is the only tool that does not require a pre-configured bundle, implying use for new setups. However, no explicit when-not or alternatives are named, though sibling context provides some guidance.

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

list_conceptsB

List concepts in the knowledge bundle with optional filters.

Returns a filtered, sorted list of concepts. Supports filtering by type, tags, modification date, and path prefix.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
tagsNo
typeNo
limitNo
sinceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only mentions 'returns a filtered, sorted list.' It does not disclose read-only nature, pagination behavior, rate limits, or other side effects. The limit parameter hints at pagination but is not elaborated.

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 two sentences, front-loaded with the main purpose in the first sentence. No unnecessary words; every part adds value.

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

Completeness3/5

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

Given 5 optional parameters and an output schema, the description covers filtering briefly but omits sorting order, pagination details (e.g., max limit), and return structure. Output schema exists but description does not reference 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 coverage is 0%, so description must compensate. It explains path, tags, type, and since parameters, but does not clarify formats (e.g., date format for 'since', how tags are specified). Limit is mentioned but not further explained, leaving some ambiguity.

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

Purpose4/5

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

The description clearly states the tool lists concepts with optional filters and specifies filterable fields (type, tags, modification date, path prefix). However, it does not distinguish itself from siblings like fetch_concepts, which could cause confusion.

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 tool versus alternatives (e.g., fetch_concepts, show_concept). The description only mentions optional filters, lacking context for when filtering is appropriate or when another tool better suits the task.

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

move_conceptA

Move or rename a concept within the bundle.

Changes the concept's location (and therefore its concept_id) without losing content, metadata, or vector-index history. Optionally updates the title in frontmatter at the same time.

Examples:

  • Rename: concept_id="notes/old-name", new_concept_id="notes/new-name"

  • Move: concept_id="drafts/idea", new_concept_id="published/idea"

  • Both: concept_id="tmp/scratch", new_concept_id="guides/setup-guide", new_title="Setup Guide"

ParametersJSON Schema
NameRequiredDescriptionDefault
new_titleNo
concept_idYes
new_concept_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that content, metadata, and vector-index history are preserved, and that concept_id changes. This adds important context beyond the 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?

The description is front-loaded with purpose, followed by a clear explanation and examples. Every sentence adds value with no redundancy.

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

Completeness5/5

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

Given the tool's complexity (3 parameters, mutation, output schema exists), the description fully covers inputs, behavior, and examples. Output schema handles return values.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must explain parameters. It thoroughly clarifies concept_id, new_concept_id with examples, and mentions optional new_title, adding significant meaning beyond the schema.

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

Purpose5/5

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

The description opens with 'Move or rename a concept within the bundle' using a clear verb+resource combination. It distinguishes from siblings like delete_concept or update_concept by specifying that it changes location and concept_id without losing content.

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

Usage Guidelines4/5

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

The description provides explicit examples for renaming, moving, and both actions. It implies when to use the tool, but does not explicitly state when not to use it or compare to alternatives.

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

reindexA

Rebuild the vector index for the knowledge bundle.

Performs an incremental reindex by default (only processes changed files). Set full=True to discard the existing index and rebuild from scratch.

Returns a JSON summary with counts of added, updated, removed, skipped concepts and the total number of indexed concepts.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavioral traits: default incremental behavior, the destructive nature of full=True ('discard existing index'), and the return format (JSON summary with counts). This meets the burden for a mutation tool.

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

Conciseness5/5

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

The description is concise with three focused sentences: first states purpose, second explains behavior, third details return format. No unnecessary information, earning its length.

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

Completeness5/5

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

Given the tool's low complexity (one parameter), presence of an output schema (not shown but referenced), and clear return format description, the description is complete. It covers all necessary behavioral and semantic aspects for agent decision-making.

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

Parameters5/5

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

The input schema defines only one parameter 'full' with a default but no description. The tool description adds crucial meaning by explaining that setting full=True discards the existing index and rebuilds from scratch, providing context beyond the schema.

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

Purpose5/5

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

The description clearly states the tool rebuilds the vector index for a knowledge bundle, using specific verbs ('Rebuild') and resource ('vector index'). It distinguishes from sibling tools that manage individual concepts or statistics, as none focus on indexing.

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

Usage Guidelines4/5

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

The description explains when to use incremental vs full reindex, providing clear context for both modes. However, it does not explicitly mention when not to use this tool or suggest alternative tools for related tasks, missing the high bar for explicit exclusions.

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

show_conceptA

Show the full details of a concept by its concept_id.

Returns all frontmatter fields and the complete markdown body.

ParametersJSON Schema
NameRequiredDescriptionDefault
concept_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description must carry full burden. It mentions returns frontmatter and markdown body but lacks any disclosure of side effects, permissions, rate limits, or error scenarios.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action and return value. No wasted words.

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 output schema present, return values are covered. For a simple tool with one parameter, description is adequate, though could mention error handling for missing concept.

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 description coverage is 0%, so description must compensate. It adds 'by its concept_id' but provides no details on format, validation, or source of the ID. Minimal added value.

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

Purpose5/5

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

Description clearly states it shows full details of a concept by concept_id and specifies it returns frontmatter and markdown body, differentiating it from sibling tools that list or fetch concepts.

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 guidance on when to use vs alternatives, though the action is simple and implied. Missing when-not-to or alternative tool references.

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

update_conceptA

Update an existing concept in the bundle.

Applies only the provided fields to the concept, leaving unspecified fields unchanged. Re-embeds the content and updates the vector index.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
typeNo
titleNo
contentNo
concept_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses mutation (update) and side effects (re-embed, index update). However, it does not mention error handling, authentication needs, or behavior if concept_id is invalid. Enough for basic understanding but not comprehensive.

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 plus a two-line paragraph. No redundancy, front-loaded with purpose. Every sentence adds value.

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

Completeness3/5

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

An output schema exists (context signal), so return value details may be omitted. However, the description does not mention what the tool returns or confirm success/failure. The behavioral details are adequate for a mutation tool, but lacking error or result information.

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 description coverage is 0%, and the description does not explain individual parameters. Parameter names (title, content, type, tags) are somewhat self-explanatory, but 'type' and 'tags' lack clarity on constraints or allowed values. The partial update hint adds some value, but insufficient for a tool with 5 parameters.

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

Purpose4/5

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

The description clearly states 'Update an existing concept in the bundle', specifying the verb and resource. It distinguishes from siblings like delete_concept and fetch_concepts, though the concept of a 'concept' is assumed.

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

Usage Guidelines4/5

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

The description explicitly mentions that only provided fields are applied, indicating a partial update behavior. It also notes side effects like re-embedding and vector index update. No explicit when-not-to-use guidance, but the context is clear.

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. 10 tool updatesv0.2.0
    • First observedcommit_concept
    • First observeddelete_concept
    • First observedfetch_concepts
    • First observedget_stats
    • First observedinit_bundle
    • First observedlist_concepts
    • First observedmove_concept
    • First observedreindex
    • First observedshow_concept
    • First observedupdate_concept

TDQS

A3.9/5.0

Scored across 10 tools

Disambiguation5/5

All ten tools have distinct purposes: create, delete, search, stats, init, list, move, reindex, show, update. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., commit_concept, delete_concept). Even reindex fits the pattern as a clear single action.

Tool Count5/5

10 tools is ideal for a knowledge bundle manager. Each tool serves a clear purpose without being overwhelming or insufficient.

Completeness5/5

The tool surface covers the full lifecycle: init, CRUD (commit, show, list, update, delete), move, reindex, search, and stats. No obvious gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Hybrid semantic search (dense vector + BM25) over local knowledge bases and codebases, exposed as MCP tools for AI agents to search and list knowledge bases.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables any MCP-compatible AI assistant to search, filter, and retrieve information from a local document collection using a hybrid search pipeline with vector, BM25, reranking, and LLM enrichment.
    4
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    A local OKF-compatible knowledge engine for AI agents. Enables capturing agent conversations, hybrid semantic+keyword search, MCP serving to agents, interactive graph visualization, and OKF bundle export.
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides MCP tools for semantic search over personal knowledge sources using pluggable embeddings and local vector indexing.
    1
    MIT