Sandbox
@oak-invest/kiso

OKF publishing CLI and MCP server

Kiso turns an OKF bundle into a static website with generated HTML, `llms.txt`, and `sitemap.xml`, while keeping the original Markdown files in the output. It also ships an MCP server that exposes concept search and concept content from the same bundle without changing the source.

40 stars0 forksJavaUpdated 11d ago
Who it's for

Builders who keep knowledge in OKF bundles and want to publish it for static websites or agent access.

What it delivers

You can validate one source bundle once and use it both as a public website and as context for MCP-capable agents.

What it does

Validate OKF bundles

`kiso-cli check` scans Markdown for formatting and structural errors and warns about broken links.

Build static websites

`kiso-cli build` generates HTML pages, the original Markdown files, `llms.txt`, and `sitemap.xml`.

Serve bundle knowledge through MCP

`kiso-mcp-server` exposes `search_concepts` and `get_concept_content` over `/mcp` for compatible agent apps.

Use publishing profiles

Profiles in `.kiso/<profile>/configuration.yaml` let you publish the same bundle in different ways without changing source content.

Run in GitHub Actions

`applications/kiso-cli-action` lets you build bundles automatically on pushes.

How to get it

  1. 1Download the latest release of Kiso for your operating system from the releases page,…
    ./kiso-cli check --source=examples/kb-google-example
  2. 2The check command validates the Markdown files in the OKF bundle and reports formatting…
    ./kiso-cli build --source=examples/kb-google-example --destination=public

README

Kiso

Kiso provides two applications built around Open Knowledge Format (OKF) bundles:

  • kiso-cli validates an OKF bundle and publishes it as a static website containing generated HTML pages and the original Markdown files. It can be run from the command line or through GitHub Actions.
  • kiso-mcp-server starts a Model Context Protocol (MCP) server that lets an MCP-compatible AI application access the knowledge contained in an OKF bundle.

The OKF bundle remains the single source of truth for both applications.

Kiso CLI

Quick start

If you need an OKF bundle to test Kiso, you can download our sample OKF bundle from the Kiso website. Once downloaded, unzip it.

Download the latest release of Kiso for your operating system from the releases page, then run:

./kiso-cli check --source=examples/kb-google-example

The check command validates the Markdown files in the OKF bundle and reports formatting or structural errors (it also reports broken links as warnings). Once the bundle is valid, build the static website:

./kiso-cli build --source=examples/kb-google-example --destination=public

You will find the generated static website in the public directory. You can open the index.html file in your browser to view the generated site.

If you use the native Kiso binary and want Kiso to generate social network preview images, install one of the supported native SVG to PNG conversion tools: rsvg-convert, inkscape, or resvg.

GitHub Actions

You can use Kiso CLI in GitHub Action to automatically build your OKF bundles into static websites whenever you push changes to your repository. Here's an example workflow configuration:

- name: Build with Kiso
  uses: oak-invest/kiso/applications/kiso-cli-action@v0.2.4
  with:
    command: build
    source: examples/kb-google-example
    destination: website/examples/kb-google-example-latest

Commands

CommandDescription
checkValidates the Markdown files in an OKF bundle and reports formatting or structural errors.
buildGenerates a static website, including the original Markdown files, HTML pages, llms.txt, and sitemap.xml.

Options

VariableCommandDefaultDescription
sourcecheck, build.Directory containing the Markdown files to read. Defaults to the current directory.
destinationbuildpublicDirectory where generated files are created. Defaults to the public directory.
profilebuildPublishing profile loaded from .kiso/<profile>/configuration.yaml.

Configuration file

The build command can be configured with an optional .kiso/configuration.yaml file located at the root of the source bundle. When the file or one of its sections is absent, Kiso uses safe default values.

site:
  baseUrl: https://knowledge.example.com/
  name: Example Knowledge Base
  language: en
  title: My knowledge base
  description: Documentation for humans and AI agents

theme:
  name: corporate

content:
  ignorePatterns:
    - README.md
    - drafts/**
    - private/**
PropertyDefaultDescription
site.baseUrlPublic base URL prepended to generated site links and sitemap entries.
site.nameName of the site, used in the social share.
site.languageenLanguage used by the generated HTML pages.
site.titlePage titleTitle used for the root index page.
site.descriptionPage descriptionDescription used for the root index page.
theme.namelightDaisyUI theme used by the generated website.
content.ignorePatterns[]Glob patterns identifying files and directories that must not be copied or published.

Ignore patterns are evaluated against paths relative to the bundle root. For example, README.md excludes only the root README, while drafts/** excludes the contents of the drafts directory. The source bundle is never modified: Kiso applies these exclusions while copying files to the destination directory, before loading, validating, and publishing the resulting bundle.

Publishing profiles

Publishing profiles allow the same OKF bundle to be published in different ways without changing its source content. Store profiles in .kiso/<profile-name>/configuration.yaml and select one with --profile:

kiso-cli build
kiso-cli build --profile public
kiso-cli build --profile internal

When no profile is selected, Kiso loads .kiso/configuration.yaml. When a profile is selected, Kiso loads only that profile's configuration; the default configuration is not read or merged.

Kiso MCP Server

kiso-mcp-server exposes the knowledge contained in an OKF bundle to applications compatible with the Model Context Protocol. It does not generate a website and does not modify the source bundle.

Download the MCP server for your operating system from the releases page, then start it with:

./kiso-mcp-server --source=examples/kb-acme-example-v0.2

The server loads the bundle and listens on port 8080 by default. Connect the MCP-compatible AI application to:

http://localhost:8080/mcp

The AI application can then search concepts, retrieve concept content, and use this knowledge as context when answering questions.

MCP tools

ToolDescription
search_conceptsSearches for concepts in the OKF bundle using a text query.
get_concept_contentReturns the Markdown content of a concept from its concept ID.

Options

OptionDefaultDescription
-s, --source.Directory containing the OKF bundle to serve.
-h, --host0.0.0.0Host used by the MCP server.
-p, --port8080Port used by the MCP server.

For example, use another port with:

./kiso-mcp-server --source=examples/kb-acme-example-v0.2 --port=8081

Files in the repo

Repository payload13 top-level entries
  • .github
  • applications
  • documentation
  • examples
  • libraries
  • website
  • .gitignore
  • AGENTS.md
  • CLAUDE.md
  • justfile
  • LICENSE
  • pom.xml
  • README.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k
virgiliojr94/
book-to-skill

Turn any technical book PDF into a Claude Code skill — ready to study, reference, and use while you work.

30k
sickn33/
agentic-awesome-skills

AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,115+ agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.

46k
iOfficeAI/
OfficeCLI

OfficeCLI is the first and best Office suite purpose-built for AI agents to read, edit, and automate Word, Excel, and PowerPoint files. Free, open-source, single binary, no Office installation required.

30k