← Back to directory
O

OKFy MCP Server

Community
Turn docs into Open Knowledge Format bundles served to AI agents over a local read-only MCP server.
Category
Dev Tools #74 of 438
Stars
★ 74 Popular
Transport
stdio (local process)
Runtime
Node.js 20+
Credentials
No credential needed
License
MIT
Last commit
Tools
6
63FMRS · C

OKFy is a local-first, read-only MCP server that turns documentation sites and Markdown folders into inspectable, Git-diffable OKF bundles, letting coding agents read source-linked documentation through deterministic lexical search. It suits teams that value visible, portable knowledge, but not use cases requiring vector search, fine-grained heading splits, or advanced Obsidian semantics.

Strongest · Documentation 15/20 Weakest · Reliability 11/20

Reliability
11/20
Security and permissions
13/20
Maintenance
11/20
Documentation
15/20
Setup experience
13/20
Why each score
Reliability 11/20
Static review sees only README claims: an stdio, read-only MCP server declaring six tools (bundle_summary, search_concepts, read_concept, get_neighbors, list_types, list_tags), with a CI badge (ci.yml) mentioned. The server manifest is not cached, so declared tools cannot be cross-checked against the real implementation, and no committed tests covering the server's key paths were inspected; the static calibration therefore caps reliability at 12. Diagnosability is described reasonably (doctor checks JSON-RPC-clean stdout and MCP tool visibility, validate distinguishes errors from warnings, refresh modes off/stale-while-refresh/blocking), but a lack of verifiable execution evidence and unstated assumptions keep this at 11.
Security and permissions 13/20
No red line is crossed: no credential theft, no covert exfiltration, no default destructive action. The README states crawls respect robots.txt, stay same-origin by default, cap page count/depth/response size/concurrency, reject private-network URL literals and redirects, treat HTML/Markdown as text without executing scripts, expose read-only MCP tools, and require explicit dangerous override for unsafe --force outputs. That is a sensible least-privilege and data-boundary posture. Deductions: all of this is self-reported and unverified at code level; the README itself admits fetch-time DNS is not IP-pinned (a residual rebinding window after preflight); --auto-refresh makes the server fetch the network as a side effect; and setup requires users to paste config manually with no built-in confirmation flow. Hence 13.
Maintenance 11/20
Evidence shows a CI workflow badge, MIT license, an npm package okfy-ai 0.3.5, 71 stars from the scanner, 1 open issue, and not archived, indicating active maintenance. However there is no visible release cadence, changelog, commit history, dependency-update policy, or stated security-response channel, so governance and versioning are under-documented. Without execution evidence the static calibration adds nothing, giving 11.
Documentation 15/20
README coverage is solid: quickstart, multi-client connection examples (Codex TOML, Claude Code command, generic JSON), a table of the six tools, bundle format sample, command list, security defaults, and an explicit Current Limits section (no heading-based splitting, deterministic lexical rather than vector search, stdio-first, etc.), plus disclosure of no account/hosted index/LLM key. Obsidian import warning codes and diagnostics are also documented. Deductions: tool parameter details are unverified absent a cached manifest (e.g., search_concepts source/limit appears only in one JSON snippet), cost and rate-limit behavior are not quantified, troubleshooting is limited to doctor plus a few notes, and several referenced files inside the repo could not be inspected during this static review. Hence 15.
Setup experience 13/20
The install path is clear and user-friendly: no global install needed, one command (npx -y okfy-ai init <name> <url> --client codex) crawls the source and prints MCP configuration, after which users paste Codex TOML, a Claude Code command, or generic JSON; Node.js 20+ is stated explicitly and doctor validates setup. Deductions are meaningful: register -> print config -> manually edit client files remains multi-step and manual, and the README notes init does not edit agent config; multi-source workspaces, direct bundle paths, and refresh modes add concepts to absorb; and with no cached manifest or real start-up verification, the static calibration caps setup at 15. Hence 13.

Static review · not runListed 2026-09-10

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesUses the network

Best for

  • Teams that need the knowledge behind agent answers to stay inspectable, versioned, and portable
  • Local-first workflows that avoid hosted indexes, cloud registries, or cloud refresh workers
  • Scenarios requiring visible source references and conservative link resolution that warns instead of guessing
  • Deployments that want deterministic lexical search without an embedding service or LLM key

Not for

  • Retrieval quality that depends on vector or semantic search
  • Heading-based splitting, or Obsidian semantics like Canvas, Bases, PDFs, images, audio, video, and Dataview fields
  • Importing GitHub repository URLs directly (there is no dedicated importer; use a local checkout or docs folder)
  • Workflows that need to write back to the knowledge source or need agent-callable write tools

Required permissions

  • Read local bundle directories and source cache and refresh state under ~/.okfy
  • Make same-origin network fetches to registered documentation sites when refresh is enabled (respects robots.txt by default)
  • Be launched as a stdio subprocess by an MCP client; the tools themselves are read-only

Risks and side effects

  • HTML cleanup quality varies by documentation site and can affect search results
  • Preflight rejects DNS-resolved private targets, but fetch-time DNS is not IP-pinned, leaving a theoretical DNS rebinding risk
  • The default stale-while-refresh mode can briefly serve non-latest docs; blocking or off modes change this
  • One page or file becomes one concept with no heading-based splitting, so granularity can be coarse
  • `--force` replaces a non-empty output bundle, and unsafe output directories are rejected unless an explicit dangerous override is given

Setup

Before you start

Runtime:Node.js 20+

  1. Generate a local bundle and agent setup with npx -y okfy-ai init <name> <url> --client codex; it crawls the source, prints the MCP configuration, and does not edit your agent config.
  2. Paste the printed configuration into your client: Codex uses ~/.codex/config.toml, Claude Code uses claude mcp add --transport stdio <name>-okf -- npx -y okfy-ai serve <name> --mcp --auto-refresh, and Claude Desktop, Cursor, and other MCP clients use the JSON mcpServers block.
  3. For local Markdown, first build a bundle with npx -y okfy-ai import ./docs --out ./docs-okf --source-name "Project docs", then serve it with npx -y okfy-ai serve ./docs-okf --mcp.
  4. Use --all only when every registered source in the current OKFY_HOME belongs in the agent context.
  5. If setup fails, run npx -y okfy-ai doctor <name> --client codex to check source state, bundle validity, freshness, npx, generated configuration, MCP tool visibility, and JSON-RPC-clean stdout.

Requires Node.js 20+; no global install is needed.

claude_desktop_config.json
{
  "mcpServers": {
    "stripe-okf": {
      "command": "npx",
      "args": ["-y", "okfy-ai", "serve", "stripe", "--mcp", "--auto-refresh"]
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "stripe-okf": {
      "command": "npx",
      "args": [
        "-y",
        "okfy-ai",
        "serve",
        "stripe",
        "--mcp",
        "--auto-refresh"
      ]
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add stripe-okf -- npx -y okfy-ai serve stripe --mcp --auto-refresh

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

The client tool list should show the read-only tools bundle_summary, search_concepts, read_concept, get_neighbors, list_types, and list_tags; calling bundle_summary and getting source validity, size, and freshness confirms the connection. If setup fails, run `npx -y okfy-ai doctor stripe --client codex`.

Troubleshooting

  1. Run `npx -y okfy-ai doctor <name> --client codex` to check source state, bundle validity, freshness, npx, generated configuration, MCP tool visibility, and JSON-RPC-clean stdout
  2. Use `npx -y okfy-ai validate <bundle>` to confirm the bundle is valid; validation rejects missing type metadata and malformed reserved files
  3. Confirm reserved files such as index.md and log.md exist; broken links and missing indexes are warnings but affect indexing
  4. `serve --mcp` is started as a subprocess by the MCP client; do not run it as a normal interactive terminal command
  5. When multi-source searches are ambiguous, pass an explicit source filter or disambiguation to search_concepts or read_concept
  6. To prevent network fetches while serving, use `--refresh-mode off`; manual `okfy update` remains available

Things to try

Once connected, you can ask your AI assistant things like:

  • Using the Stripe documentation, explain the minimum Checkout Sessions backend flow. Read the relevant concepts, follow related documentation when needed, and include every source reference used.
  • Summarize bundle validity, size, and source freshness for each source in the current workspace.
  • Search the Stripe docs source for "checkout sessions", filtered by source, limit 5.
  • List all concept types and tags in this bundle with their counts.

Tools 6

bundle_summary read-only
Report bundle or workspace validity, size, and source freshness.
search_concepts read-only
Find concept previews by query, source, type, or tags.
read_concept read-only
Read a concept body, metadata, links, backlinks, and source.
get_neighbors read-only
Traverse outbound links and backlinks around a concept.
list_types read-only
List concept types and counts.
list_tags read-only
List tags and counts.

Use cases

Letting coding agents search documentation sites such as Stripe or Clerk and answer with source references
Importing project Markdown or Obsidian vaults into inspectable bundles for agent reading
Serving multiple documentation sources through one MCP server with source-filtered disambiguation
Sharing an agent-readable snapshot via the local static HTML Inspector or activate output

Supported clients

Claude Desktop
Claude Code
Codex
Cursor

Listed from the project's documentation, not tested by this site.

Overview

OKFy converts documentation websites and Markdown folders into Open Knowledge Format (OKF) v0.1-conformant bundles: typed, linked Markdown that can be inspected and diffed in Git. Its local MCP server lets Claude, Codex, Cursor, and other agents search the bundle, read only relevant concepts, follow relationships with get_neighbors, and return original source references. The retrieval path is search_concepts → read_concept → get_neighbors with deterministic lexical search; no embedding service or LLM API key is required. Website sources are cached under ~/.okfy and can refresh in the background. MCP tools are read-only and served over stdio.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 63.3k · Tools 2 Compare with this →

Source revision c73caa4fb7fd Data synced 2026-10-19 Read the FMRS scoring method