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

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.1
File Size Uploaded
mcp_okf-0.2.1.tar.gz 18.7 kB Details

Built distribution (wheel)

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

Total release size: 37.3 kB

Release files / mcp_okf-0.2.1.tar.gz

Download URL mcp_okf-0.2.1.tar.gz
Size 18.7 kB
Tags Source
SHA-256 checksum
How to use checksums
234907437338cdf4e274d821b99f89f0273aa20a4baec8dfd4788835c1105077
BLAKE2b-256 checksum
How to use checksums
9ac10b7579b5caf4c44ff742bd0dccf3484ab96db37260f41b8c825b9b4b12f4
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.1-py3-none-any.whl

Download URL mcp_okf-0.2.1-py3-none-any.whl
Size 18.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
950e1d84c0f86de7517a1e3b1c33a733b593c351d30d7fd26baeb83c0e1434ad
BLAKE2b-256 checksum
How to use checksums
f4385560c68ac07cf27618cafed03f10ae8ca8ca91f48f2976e8af65cc0d9cb0
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

0.2.2

2 release files

This release

0.2.1 This release

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