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

uv sync
# baixa os modelos uma vez (~1 GB), para a 1ª indexação não estourar o timeout do cliente MCP
uv run python -c "from mcp_okf import store; store.embed_dense(['x']); store.embed_sparse(['x'])"
claude mcp add okf -- uv --directory /caminho/mcp-okf run mcp-okf

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

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.1.0
File Size Uploaded
mcp_okf-0.1.0.tar.gz 14.4 kB Details

Built distribution (wheel)

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

Total release size: 28.5 kB

Release files / mcp_okf-0.1.0.tar.gz

Download URL mcp_okf-0.1.0.tar.gz
Size 14.4 kB
Tags Source
SHA-256 checksum
How to use checksums
07f6843dd560a81e6c76bf55a4a817b16b0fc936c7442bd11c6d1a0f012d00e4
BLAKE2b-256 checksum
How to use checksums
56c625e32b421b0fdad7c1627d2eb4abe507a7eb8ea9f42979779b904c57999a
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.1.0-py3-none-any.whl

Download URL mcp_okf-0.1.0-py3-none-any.whl
Size 14.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
36d60b3ca8f8a6e35ab4ecea7a597d38ac65c2312f6a4a149e801a3cf4f5c6e7
BLAKE2b-256 checksum
How to use checksums
087141eff95d6cf7ea577675c3fb41b1cc05631dc3ad11ce2e4ed8c96c8465ae
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

0.2.1

2 release files

0.2.0

2 release files

This release

0.1.0 This release

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