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.2

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.2
File Size Uploaded
mcp_okf-0.2.2.tar.gz 19.5 kB Details

Built distribution (wheel)

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

Total release size: 38.8 kB

Release files / mcp_okf-0.2.2.tar.gz

Download URL mcp_okf-0.2.2.tar.gz
Size 19.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3b73a85f4aee6b4c8c132a58ac3bd450287b738513723b5584b02ec2c974aea7
BLAKE2b-256 checksum
How to use checksums
f175c90c5efed17396670c6eb391dc0a507af9df8fd77836d10683b79f40ab97
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.2-py3-none-any.whl

Download URL mcp_okf-0.2.2-py3-none-any.whl
Size 19.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ee3a2925383985225d9a8664f57eba4bcab2332242d06c57de9544ca0c137c84
BLAKE2b-256 checksum
How to use checksums
bfb17c4f674ebd4894cc02fb73307e1f9ed20bef1d4bda690631feb5b640078d
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

0.2.3

2 release files

This release

0.2.2 This release

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