Skip to main content

mcp-okf

Servidor MCP que transforma um bundle OKF (pasta com index.md e um .md por documento, como o gerado pela alm-sync do mcp-alm) numa base de conhecimento consultável em linguagem natural.

  • Índice vetorial: Qdrant em modo local (pasta no disco, sem servidor), busca híbrida denso + BM25 com fusão RRF.
  • Embeddings: fastembed local, paraphrase-multilingual-mpnet-base-v2 (PT-BR); nada sai da máquina.
  • Enriquecimento: feito pela própria LLM do cliente (sem chave de API): resumo, palavras-chave/sinônimos, entidades e perguntas que o documento responde.
  • Links: links do frontmatter (nomes do DOORS Next), links do corpo para outros arquivos do bundle (cita) e URL do ALM de artefato que está no bundle; backlinks e documentos semanticamente similares na leitura.

Instalação

Requer o uv. Baixe os modelos uma vez (~1 GB), para a 1ª indexação não estourar o timeout do cliente MCP:

uvx --from mcp-okf python -c "from mcp_okf import store; store.embed_dense(['x']); store.embed_sparse(['x'])"

Configuração do cliente MCP (Kiro: ~/.kiro/settings/mcp.json ou .kiro/settings/mcp.json do projeto):

{
  "mcpServers": {
    "okf": {
      "command": "uvx",
      "args": ["mcp-okf@latest"],
      "env": { "UV_SYSTEM_CERTS": "true" }
    }
  }
}

Claude Code: claude mcp add okf -- uvx mcp-okf@latest.

Dados em ~/.config/mcp-okf/ (%APPDATA%\mcp-okf no Windows; ou MCP_OKF_HOME): qdrant/ e state/<sha1(root)>.json (hash, links e enriquecimento de cada documento). Nada é gravado no bundle. O Qdrant local trava a pasta: só um processo do mcp-okf por vez.

Tools

root é sempre o caminho absoluto do bundle.

Tool Parâmetros Devolve
okf_index root, limit=200, force=False {documentos, indexados, removidos, restantes, a_enriquecer}; incremental por sha256; chame até restantes=0
okf_enrich_next root, limit=5 {restantes, instrucoes, documentos: [{path, id, type, title, description, body, links}]}
okf_save_enrichment root, items: [{path, summary, keywords, entities, questions}] {gravados, restantes}
okf_search root, query, limit=8, folder?, type? [{path, id, title, type, folder, score, summary, trechos: [{section, text}]}]
okf_list_documents root, folder?, type? [{path, id, title, type, folder, description, indexado, enriquecido}]
okf_get_document root, ref (path ou id) {path, markdown, enrichment, links: {saida, entrada, similares}}

Fluxo: okf_index até restantes=0 → okf_enrich_next / okf_save_enrichment até restantes=0 → perguntas com okf_search e okf_get_document. Depois de um novo sincronismo da alm-sync, rode okf_index de novo: só o que mudou é reindexado, e só o que mudou volta para a fila de enriquecimento.

Como indexa

Cada documento vira pontos chunk (corpo dividido por heading #..###, seções longas por parágrafo; cada chunk leva o prefixo <tipo> <id> — <título> | <pasta> | <seção>) e um ponto doc (cabeçalho + enriquecimento). A busca funde o ranking denso e o BM25 (RRF) e agrupa por documento.

Testes

uv run pytest

Os testes usam Qdrant em memória e embeddings falsos (não baixam modelo).

Metadata

Release files for mcp-okf 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-okf 0.2.3
File Size Uploaded
mcp_okf-0.2.3.tar.gz 19.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-okf 0.2.3
File Interpreter ABI Platform
mcp_okf-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 39.2 kB

Release files / mcp_okf-0.2.3.tar.gz

Download URL mcp_okf-0.2.3.tar.gz
Size 19.9 kB
Tags Source
SHA-256 checksum
How to use checksums
2a97079ba820a68c563443357e2fb0913a0eb07aa71f124e12cfa6f56a0d0ead
BLAKE2b-256 checksum
How to use checksums
86a753ecb76c7a514f4fb143385c19f79ac0ce9eade7cb100e138120cf3719ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / mcp_okf-0.2.3-py3-none-any.whl

Download URL mcp_okf-0.2.3-py3-none-any.whl
Size 19.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d5b685933d9432d90ed41d92df52e9b771da97f129ab8b5c6d1d5d0700707af
BLAKE2b-256 checksum
How to use checksums
fe62e614174ce9209da8aee2a0576afc24038540d28dce8e565281701c53fd59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.3.0

2 release files

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page