Skip to main content
Glama
knaisoma

data-olympus MCP server

data-olympus

knaisoma/data-olympus MCP server

New here? Start with WHY.md. It is the story behind the project: the problem we kept hitting with coding agents, what data-olympus does differently, how it relates to Google's Open Knowledge Format, and where our benchmarks say it is strong and where it is not. The rest of this README is the technical reference.

data-olympus is a governance-grade knowledge-base format and server for agent workforces. It is readable by Open Knowledge Format (OKF) consumers: it inherits OKF's directory structure, frontmatter conventions, reserved filenames, and link model, then layers governance extensions on top (stable id, controlled type/status/tier fields, supersedes chains) plus a single-writer MCP server and a CLI. CI proves two concrete directions against official Google OKF commit d44368c15e38e7c92481c5992e4f9b5b421a801d: its reference visualization consumer reads every concept in example-bundle, and data-olympus imports, lints, indexes, searches, and retrieves the pinned official Bitcoin sample. This is fixture-scoped interoperability evidence, not a blanket guarantee for every OKF bundle or future upstream revision. The result is a git-native, version-controlled document graph of engineering standards, architectural decisions, and project knowledge that agents and humans can read, search, and extend without any proprietary service.

It governs decisions, not code. When an agent is about to make a choice (a library, a pattern, a migration), data-olympus surfaces the established standard or decision that should govern that choice. It is deliberately not a code-search, reference-finding, or "where is X used" tool: LSP, grep, and Sourcegraph already do that well. The retrieval task it targets is coding-intent to governing-rule, and it helps where current model interaction during vibe-coding is weakest: keeping the model aligned to patterns the team has already established as correct.

Status: pre-1.0 beta. Stable releases are distributed through PyPI and GHCR.

Why

  • Portable, no lock-in. The entire KB is a directory of markdown files in git. No database, no proprietary schema, no vendor.

  • Git-native diffs and review. Every change is a commit. Proposed edits go through a pending queue before commit; history is plain git log.

  • Agent and human readable. Plain markdown with YAML frontmatter. No SDK required to read or author a document.

  • Governed multi-agent writes. The single-writer MCP pipeline (advisory locks, per-session worktrees, durable push queue) prevents concurrent write races without requiring distributed locking infrastructure.

  • Queryable by status, tier, and type. Filter by status: accepted, tier: T1, or type: decision without post-processing. The supersedes chain makes it possible to trace decision history across the graph.

  • Tested with official OKF tooling. CI pins an exact Google OKF revision and proves both consumption directions over committed fixtures. The pin, fixture checksum, and Apache 2.0 license provenance live in tests/okf/reference.json.

Related MCP server: Knowledge MCP

Quickstart

Requires Python 3.13+ and uv. Run the stable CLI directly from PyPI:

uvx --from data-olympus data-olympus --help

Install it persistently when you are ready to create a bundle and run the server:

uv tool install data-olympus
data-olympus init my-kb
data-olympus-mcp --help

An announced candidate remains opt in through its exact PyPI version:

uvx --from 'data-olympus==0.6.0rc3' data-olympus --help

See docs/quickstart.md for bundle initialization, server startup, readiness, agent registration, and the contributor source installation.

See docs/adoption.md for the full bundle authoring guide.

Documentation

  • SPEC.md: format specification (bundle layout, frontmatter schema, serving contracts).

  • docs/quickstart.md: verified local-run procedure.

  • docs/adoption.md: bring-your-own-KB guide (author, lint, index, serve, wire an agent).

  • docs/serving.md: single-replica serving model, read-only replicas, git pull loop, health/readiness/liveness split, proxy headers, audit-log rotation.

  • docs/operations.md: production runbook — backup, upgrade, recovery playbooks (degraded/fetch-failed, history rewrite, frozen/demoted push entries, orphaned locks), and the health/alerting model.

  • docs/comparison.md: how data-olympus relates to OKF, enterprise catalogs, markdown KB tools, agent-context conventions, RAG, and ADR tooling.

  • docs/okf-profile.md: field-by-field OKF profile — which governance extensions are stable, which are runtime-only serving fields, and which are experimental candidates.

  • docs/glama.md: Glama registry claim, release, and score-maintenance notes.

  • docs/enforcement.md: turning the KB into a mandatory consultation gate (hooks, kb enforce).

  • benchmarks/README.md: retrieval benchmark methodology and how to reproduce the numbers in docs/comparison.md.

  • SECURITY.md: supported versions and how to report a vulnerability.

License

Apache 2.0. See LICENSE and NOTICE.

Available Tools

9 tools
call_toolB

Call a tool by name with the given arguments.

Use this to execute tools discovered via search_tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the tool to call
argumentsNoArguments to pass to the tool

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description must carry the burden of behavioral disclosure. It only states the action ('call'/'execute') without addressing potential side effects, error handling, or the dynamic and possibly dangerous nature of executing arbitrary tools. This is a significant transparency gap for an execution 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 two sentences with no redundant phrasing. The action and usage context are front-loaded, making it easy to parse and remember. Every word earns its place.

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?

The tool has no output schema, and the description does not explain what the caller should expect as a return value or that arguments must conform to the target tool's schema. For a meta-execution tool, this lack of critical context makes the description incomplete.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters ('The name of the tool to call' and 'Arguments to pass to the tool'). The tool description adds no extra parameter meaning beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose4/5

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

The description clearly states the tool's purpose with the verb 'call' and identifies the resource as a tool by name. It also distinguishes itself from sibling tools by explicitly connecting to 'execute tools discovered via search_tools,' which separates it from search and knowledge-base functions.

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 second sentence provides direct usage guidance: 'Use this to execute tools discovered via search_tools.' This tells the agent exactly when to invoke it. It does not mention alternatives or exclusions, but for a meta-dispatch tool, the context is sufficiently clear.

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

kb_consultKB ConsultA

Record a consultation for (source_session, workspace) and return the governing rules for the intent. Call before code/architectural work. trigger is 'explicit' (default: a deliberate consult, clears the gate) or 'prompt_hook' (an installer auto-consult: audited, never clears).

Retrieval is hard-filtered to the in-force class (active/accepted/ approved, within its validity window, and never a memory-inbox doc): an unreviewed proposed memory, a retired/superseded decision, an expired doc, or a legacy/forged inbox file is never returned as a governing rule.

pending_actions, when present, lists open maintenance items (missing status fields, recently-expired/expiring-soon docs); omitted when the corpus is clean. Surface it to the operator and act on it only with operator confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentYesNatural-language search query.
triggerNoConsult trigger: explicit or prompt_hook.explicit
workspaceYesProject or workspace key in the KB.
agent_identityYesHuman-readable agent identity for audit events.
source_sessionYesStable id of the agent session making the call.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

Annotations are all false, so description carries full burden. It details hard-filtering logic (in-force class, excluded docs) and pending_actions behavior. Exceeds minimal disclosure requirements.

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?

Well-structured with front-loaded purpose, then trigger explanation, filtering details, and pending_actions note. Every sentence adds value without 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 5 parameters, output schema, and sibling tools, the description provides thorough context: when to call, filtering rules, and return behavior (governing rules and optional pending_actions). No gaps remaining.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for each parameter. The description adds context for the trigger parameter and overall purpose but doesn't significantly enhance per-parameter meaning beyond schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool records a consultation and returns governing rules for the intent, with specific verb+resource. It distinguishes from sibling tools like kb_search or kb_get by emphasizing its role in pre-work consultation.

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 says to call before code/architectural work and explains the two trigger types. While it doesn't explicitly list when not to use it, the context is clear. No mention of alternatives but the sibling list provides contrast.

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

kb_gate_checkKB Gate CheckA

Return a verdict (allow | consult_required) for a pending code action. Governed actions require a fresh consultation on record. Records each check to the audit log (non-destructive; readOnlyHint=false is intentional). Use this in a PreToolUse hook to verify a specific pending action before execution; use kb_consult instead when proactively reading governing rules at the start of a session rather than checking individual actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
tool_nameYesName of the tool or command about to run.
workspaceYesProject or workspace key in the KB.
session_idYesAgent session id checked against consult history.
action_diffNoShort description or diff summary of the pending action.
action_pathNoOptional path or URL affected by the pending action.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, and the description adds useful context by explaining that the tool records each check to the audit log, is non-destructive, and that readOnlyHint=false is intentional. It does not contradict annotations and provides behavioral detail beyond the structured fields.

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

Conciseness5/5

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

The description is three sentences long, front-loaded with the core purpose, followed by key behavioral context and explicit usage guidance. Every sentence earns its place and there is no fluff or redundancy.

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

Completeness4/5

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

With an output schema present and detailed parameter schemas, the description covers the essential purpose, behavior, and usage context. It does not detail output semantics, but the schema handles that; the description is sufficiently complete for an agent to use the tool correctly.

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 parameters. The description mentions 'pending code action' and 'specific pending action,' which loosely aligns with tool_name and action_diff, but it does not add significant parameter-level detail 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 a specific verb and resource: 'Return a verdict (allow | consult_required) for a pending code action.' This clearly states what the tool does and distinguishes it from siblings like kb_consult and kb_search.

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

Usage Guidelines5/5

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

Explicit usage guidance is provided: 'Use this in a PreToolUse hook to verify a specific pending action before execution; use kb_consult instead when proactively reading governing rules at the start of a session rather than checking individual actions.' This clearly states when to use this tool versus the key alternative.

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

kb_getKB Get DocumentA
Read-onlyIdempotent

Retrieve a document by id (STD-U-001, ADR-002, T-NNN, etc.). Returns the full content markdown plus metadata. Use this when you have a specific id (from kb_search results or session memory); use kb_search instead when you need to find a document by topic.

Always resolves regardless of expiry (ids never dangle): an expired document is still returned, with its full validity object and a computed freshness indicator (stale/expired/upcoming).

verbose: False (default) returns the full content_markdown body (kb_get exists to read the doc) with a trimmed envelope: path, git_remote_url, and last_modified_source are dropped and empty status/type/applies_when/description/validity/freshness are omitted; source_commit and last_modified provenance are kept, and in_force: false is emitted when the computed in-force predicate says the doc does NOT currently govern (deviation-only; an in-force doc omits the key). verbose=True returns the full legacy envelope with every field plus the computed in_force: bool (the single-sourced status + validity-window + not-inbox predicate; never stored in frontmatter).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStable KB document id to retrieve.
verboseNoFalse returns the compact response; true includes all fields.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description deeply explains behavior: full content markdown plus metadata, handling of expired documents with validity and freshness, and the specific differences between verbose=false and verbose=true including which fields are dropped/kept and the computed in_force predicate.

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 for the level of richness it provides. It is front-loaded with the core purpose, then usage, then detailed envelope behavior. Each sentence earns its place; nothing is redundant or filler.

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 and the presence of an output schema, the description covers all essential aspects: return content, metadata, edge cases like expired documents, and the computed in_force field. It is fully sufficient for an agent to select and invoke the tool correctly.

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?

Even though the schema has 100% coverage for both parameters, the description adds significant meaning, especially for the verbose flag. It details exactly what the compact response includes/omits and contrasts with the verbose envelope, providing far more insight than the schema's 'true includes all fields.'

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 starts with a specific verb+resource: 'Retrieve a document by id' and provides concrete id examples. It clearly differentiates from sibling tools by explicitly stating 'use kb_search instead when you need to find a document by topic.'

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

Usage Guidelines5/5

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

This description gives explicit when-to-use guidance: 'Use this when you have a specific id (from kb_search results or session memory)' and the alternative 'use kb_search instead when you need to find a document by topic.' It also notes the always-resolves behavior for expired documents.

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

kb_healthKB HealthA
Read-onlyIdempotent

Return service health: kb_commit, index_built_at, staleness, degraded flag, and write-side state (pending_count, push_queue_size, last_index_*).

verbose: False (default) returns a token-compact shape that keeps the core snapshot and OMITS diagnostic fields that are null/empty (e.g. last_index_error, remote_head_sha when unset). verbose=True returns every field including the nulls.

pending_actions, when present, lists open maintenance items (missing status fields, recently-expired/expiring-soon docs) computed at the last index build; it is omitted when the corpus is clean. Surface it to the operator and act on it only with operator confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
verboseNoFalse returns the compact response; true includes all fields.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, non-destructive. The description adds detail on response fields, conditional inclusion of pending_actions, and verbose behavior, providing full transparency beyond annotations.

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 well-structured with purpose stated upfront, followed by parameter details and special field notes. It is concise yet informative, though it could be slightly more terse.

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 simple tool with one parameter, rich annotations, and an output schema, the description covers return fields, parameter behavior, and conditional items completely for a health check 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?

Schema coverage is 100% with a clear description of the verbose parameter. The description adds examples of omitted fields in compact mode, enhancing understanding beyond the schema.

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

Purpose5/5

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

The description clearly states 'Return service health' and lists specific fields like kb_commit, index_built_at, etc. It distinguishes from sibling tools (e.g., kb_search, kb_audit) 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 Guidelines4/5

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

The description explains when to use verbose=true vs false and advises handling pending_actions only with operator confirmation. It does not explicitly compare to alternatives, but the use case is implied.

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

kb_record_eventKB Record EventA

Append a durable, non-destructive audit entry for a client-reported enforcement event. Requires write capability (not a read-only tool).

event_type is gate_bypass (agent proceeded despite a gate block) or gate_degraded (kb_gate_check was unavailable; last-known state used). workspace, agent_identity, source_session are required; reason is optional but recommended for gate_bypass entries.

Use this when an enforce hook bypassed or degraded the gate and the fallback must be recorded. To check gate status use kb_gate_check; to consult use kb_consult; to read back events use kb_audit or kb_compliance.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoShort reason for the proposed change.
workspaceYesProject or workspace key in the KB.
event_typeYesClient-reported event type: gate_bypass or gate_degraded.
agent_identityYesHuman-readable agent identity for audit events.
source_sessionYesStable id of the agent session making the call.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations, the description clarifies the operation is non-destructive and durable, explains the meaning of event_type values, and notes required vs optional parameters. It also recommends 'reason' for bypass entries. No contradictions with annotations.

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 and well-structured: it front-loads the purpose, then details parameters and usage, and ends with sibling alternatives. 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?

With an output schema present, the description need not explain return values. It covers purpose, parameter semantics, when to use, and alternatives, providing complete context for an agent to select and invoke the tool correctly.

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 input schema already covers all parameters at 100%, but the description adds significant meaning by explaining event_type options (gate_bypass vs. gate_degraded) and the recommendation for 'reason' in bypass scenarios, going beyond simple schema descriptions.

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

Purpose5/5

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

The description states a specific action ('Append') and resource ('durable, non-destructive audit entry') for client-reported enforcement events. It also distinguishes from siblings by explicitly referencing kb_gate_check, kb_consult, kb_audit, and kb_compliance.

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

Usage Guidelines5/5

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

The description explicitly states when to use the tool ('Use this when an enforce hook bypassed or degraded the gate') and provides clear alternatives for gate status, consultation, and reading back events, making the usage context unambiguous.

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

kb_session_recapKB Session RecapA
Read-onlyIdempotent

Read-only per-session write summary (issue #112 feedback loop): N committed, M demoted-to-pending, K rejected for source_session. Call this (or kb pending) whenever a write response indicated a demotion, to confirm the current tally before informing the operator.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_sessionYesStable id of the agent session making the call.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds the format of the summary (N committed, M demoted-to-pending, K rejected) and references the feedback loop context, which adds useful behavioral insight beyond annotations.

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, clear and front-loaded with the summary. The issue reference (#112) adds minor noise but doesn't harm clarity. Could be slightly more concise, but overall efficient.

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

Completeness4/5

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

With high schema coverage, annotations, and an output schema (present), the description provides sufficient context for a simple parameter tool. It explains the purpose and usage scenario adequately without needing to detail returns.

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 covers the one parameter (source_session) fully. Description doesn't add extra semantics but restates it implicitly by context. Baseline 3 is appropriate as schema does the work.

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 'Read-only per-session write summary' and lists the counted categories (committed, demoted-to-pending, rejected). It distinguishes from sibling `kb_pending` and implies a specific scope per session, making the tool's purpose unambiguous.

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

Usage Guidelines5/5

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

Explicitly states when to call: 'whenever a write response indicated a demotion, to confirm the current tally before informing the operator.' Also names an alternative (`kb pending`) and provides a specific context (issue #112 feedback loop).

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

Tool Schema Changelog

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

  1. 13 tool updatesv0.7.1
    • Addedcall_tool
    • Removedkb_audit
    • Removedkb_bootstrap_project
    • Removedkb_cleanup_plan
    • Removedkb_compliance
    • Removedkb_list
    • Removedkb_list_pending
    • Removedkb_onboarding_status
    • Removedkb_outline
    • Removedkb_propose_edit
    • Removedkb_propose_memory
    • Removedkb_resolve_pending
    • Addedtool_search
  2. 18 tool updatesv0.5.0
    • First observedkb_audit
    • First observedkb_bootstrap_project
    • First observedkb_cleanup_plan
    • First observedkb_compliance
    • First observedkb_consult
    • First observedkb_gate_check
    • First observedkb_get
    • First observedkb_health
    • First observedkb_list
    • First observedkb_list_pending
    • First observedkb_onboarding_status
    • First observedkb_outline
    • First observedkb_propose_edit
    • First observedkb_propose_memory
    • First observedkb_record_event
    • First observedkb_resolve_pending
    • First observedkb_search
    • First observedkb_session_recap

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: search, health check, get by ID, session recap, consultation recording, gate checking, audit event writing, and tool meta-operations. No two tools overlap in functionality; the detailed descriptions reinforce the boundaries.

Naming Consistency5/5

All tools follow a consistent lowercase snake_case pattern with a category prefix: kb_* for knowledge-base operations and tool_*/call_* for tool meta-operations. The verb-noun structure (search, get, consult, check, record) is uniform and predictable.

Tool Count5/5

Nine tools is within the optimal range for a knowledge-base server with governance features. Each tool serves a specific role without redundancy, and the count feels appropriate for the server's scope.

Completeness3/5

The core workflow—search, retrieve, consult, gate-check, and record events—is covered, but the description of kb_record_event explicitly references kb_audit and kb_compliance as read-back tools that are not present in the server. This leaves a notable gap for agents needing to review audit history.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    Automatically organizes and merges learned CS knowledge into a graph structure using Claude for entity/relation extraction and SQLite for storage, with tools for ingestion, querying, merging, and managing nodes and edges.
    6
    -
  • 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

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/knaisoma/data-olympus'

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