API documentation
MCP over HTTP transport for automations and compatible clients.
Endpoint https://mcp.rkm-next.com.br/mcp
Authentication Authorization: Bearer your personal key
Protocol JSON-RPC 2.0
For guided setup, download the Next Installer from /conectar: it installs dependencies and registers Claude Code/Codex with your key.
Prerequisites
Claude Code PowerShell
irm https://claude.ai/install.ps1 | iexIf the installer says .local\bin is not in PATH, run this line and reopen the terminal.
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path","User") + ";$env:USERPROFILE\.local\bin", "User")Then close and reopen the terminal, and check with claude --version.Claude Code bash/zsh
curl -fsSL https://claude.ai/install.sh | bashThen close and reopen the terminal, and check with claude --version.
Codex PowerShell
npm install -g @openai/codexRequires Node.js 18+ (nodejs.org). Check with codex --version.
Codex bash/zsh
npm install -g @openai/codexRequires Node.js 18+ (nodejs.org). Check with codex --version.
If you see 'not recognized as a command', the program is not installed or the terminal was opened before installation.
Images
Search returns figures from documents, including PDF, Office files, and standalone images. The AI opens the figure with the next_get_image tool.
next_get_imageSearch
next_search
Searches the served corpus and returns handles, snippets, modality, and stable locator.
Arguments
{"n_results": 5, "query": "como conectar o Claude?"}Example response
{"id": 1, "jsonrpc": "2.0", "result": {"content": [{"text": "{\"degraded\": false, \"query\": \"como conectar o Claude?\", \"results\": [{\"handle\": \"ev_123\", \"modality\": \"text\", \"snippet\": \"...\", \"stable_locator\": \"doc.md#L10\"}], \"sidecanal\": null}", "type": "text"}], "isError": false, "structuredContent": {"degraded": false, "query": "como conectar o Claude?", "results": [{"handle": "ev_123", "modality": "text", "snippet": "...", "stable_locator": "doc.md#L10"}], "sidecanal": null}}}next_get_document
Opens the document cited by the handle returned from search.
Arguments
{"handle": "ev_123"}Example response
{"id": 1, "jsonrpc": "2.0", "result": {"content": [{"text": "{\"byte_range\": [10, 23], \"content\": \"trecho citado\", \"content_bytes\": 13, \"content_handle\": \"sha256:abc\", \"handle\": \"ev_123\", \"locator\": \"doc.md#L10\", \"reproduz\": true, \"source\": \"doc.md\"}", "type": "text"}], "isError": false, "structuredContent": {"byte_range": [10, 23], "content": "trecho citado", "content_bytes": 13, "content_handle": "sha256:abc", "handle": "ev_123", "locator": "doc.md#L10", "reproduz": true, "source": "doc.md"}}}next_get_image
Shows the indexed figure or image by the figura_id returned by search or the document.
Arguments
{"figura_id": "9999999999999999999999999999999999999999999999999999999999999999", "tamanho": "miniatura"}Example response
{"id": 1, "jsonrpc": "2.0", "result": {"content": [{"text": "{\"bytes\": 2048, \"figura_id\": \"9999999999999999999999999999999999999999999999999999999999999999\", \"mime\": \"image/jpeg\", \"pagina\": 1, \"source\": \"relatorio-vendas.pdf\", \"tamanho\": \"miniatura\"}", "type": "text"}], "isError": false, "structuredContent": {"bytes": 2048, "figura_id": "9999999999999999999999999999999999999999999999999999999999999999", "mime": "image/jpeg", "pagina": 1, "source": "relatorio-vendas.pdf", "tamanho": "miniatura"}}}next_domains
Lists the domains available in the served corpus.
Arguments
{}Example response
{"id": 1, "jsonrpc": "2.0", "result": {"content": [{"text": "{\"domains\": [\"bling\", \"sefaz\", \"synflux\"]}", "type": "text"}], "isError": false, "structuredContent": {"domains": ["bling", "sefaz", "synflux"]}}}next_stats
Shows counts for the served index.
Arguments
{}Example response
{"id": 1, "jsonrpc": "2.0", "result": {"content": [{"text": "{\"indexing\": false, \"status\": \"ok\", \"total_chunks\": 340, \"total_documents\": 12}", "type": "text"}], "isError": false, "structuredContent": {"indexing": false, "status": "ok", "total_chunks": 340, "total_documents": 12}}}Corpus graph
graphify_stats
Gives an overview of the structural graph: nodes, edges, density, communities, and hubs.
Arguments
{}Example response
{"id": 1, "jsonrpc": "2.0", "result": {"content": [{"text": "{\"comunidades\": 41, \"edges\": 1974, \"edges_por_relacao\": {\"pertence_a\": 836, \"referencia\": 1138}, \"generation_id\": \"g_2026_09_05\", \"grau_medio\": 4.77, \"maior_comunidade\": 96, \"natureza\": \"estrutural: documento, pasta e link markdown (nao e grafo de conceitos)\", \"nodes\": 828, \"nodes_por_tipo\": {\"documento\": 792, \"pasta\": 36}, \"ontology_release\": \"estrutura@1\", \"orfaos\": 12, \"top_hubs\": [{\"grau\": 63, \"node\": \"sefaz/nfe/layout-4.00.md\"}, {\"grau\": 41, \"node\": \"bling/webhooks.md\"}]}", "type": "text"}], "isError": false, "structuredContent": {"comunidades": 41, "edges": 1974, "edges_por_relacao": {"pertence_a": 836, "referencia": 1138}, "generation_id": "g_2026_09_05", "grau_medio": 4.77, "maior_comunidade": 96, "natureza": "estrutural: documento, pasta e link markdown (nao e grafo de conceitos)", "nodes": 828, "nodes_por_tipo": {"documento": 792, "pasta": 36}, "ontology_release": "estrutura@1", "orfaos": 12, "top_hubs": [{"grau": 63, "node": "sefaz/nfe/layout-4.00.md"}, {"grau": 41, "node": "bling/webhooks.md"}]}}}graphify_query
From a question, walks the graph and returns the neighborhood of the documents found.
Arguments
{"depth": 2, "question": "webhook do Bling"}Example response
{"id": 1, "jsonrpc": "2.0", "result": {"content": [{"text": "{\"depth\": 2, \"hops\": [{\"de\": \"bling/webhooks.md\", \"para\": \"bling/autenticacao.md\", \"relacao\": \"referencia\"}, {\"de\": \"bling/webhooks.md\", \"para\": \"bling/pedidos.md\", \"relacao\": \"referencia\"}], \"nodes\": [\"bling/webhooks.md\", \"bling/autenticacao.md\", \"bling/pedidos.md\"], \"origem_das_sementes\": \"busca\", \"question\": \"webhook do Bling\", \"relacoes_seguidas\": [\"referencia\"], \"seeds\": [\"bling/webhooks.md\"], \"total_hops\": 2}", "type": "text"}], "isError": false, "structuredContent": {"depth": 2, "hops": [{"de": "bling/webhooks.md", "para": "bling/autenticacao.md", "relacao": "referencia"}, {"de": "bling/webhooks.md", "para": "bling/pedidos.md", "relacao": "referencia"}], "nodes": ["bling/webhooks.md", "bling/autenticacao.md", "bling/pedidos.md"], "origem_das_sementes": "busca", "question": "webhook do Bling", "relacoes_seguidas": ["referencia"], "seeds": ["bling/webhooks.md"], "total_hops": 2}}}graphify_path
Finds the shortest path between two documents or folders in the graph.
Arguments
{"a": "bling/webhooks.md", "b": "sefaz/nfe/layout-4.00.md"}Example response
{"id": 1, "jsonrpc": "2.0", "result": {"content": [{"text": "{\"a\": \"bling/webhooks.md\", \"b\": \"sefaz/nfe/layout-4.00.md\", \"caminho\": [\"bling/webhooks.md\", \"bling/integracao-fiscal.md\", \"sefaz/nfe/index.md\", \"sefaz/nfe/layout-4.00.md\"], \"encontrado\": true, \"relacoes\": [\"referencia\", \"referencia\", \"pertence_a\"], \"saltos\": 3}", "type": "text"}], "isError": false, "structuredContent": {"a": "bling/webhooks.md", "b": "sefaz/nfe/layout-4.00.md", "caminho": ["bling/webhooks.md", "bling/integracao-fiscal.md", "sefaz/nfe/index.md", "sefaz/nfe/layout-4.00.md"], "encontrado": true, "relacoes": ["referencia", "referencia", "pertence_a"], "saltos": 3}}}graphify_explain
Shows the immediate surroundings of a node: its neighbors and the relation of each edge.
Arguments
{"node": "sefaz/nfe/layout-4.00.md"}Example response
{"id": 1, "jsonrpc": "2.0", "result": {"content": [{"text": "{\"grau\": 63, \"node\": \"sefaz/nfe/layout-4.00.md\", \"tipo\": \"documento\", \"vizinhos\": [{\"direcao\": \"saida\", \"no\": \"sefaz/nfe/regras-validacao.md\", \"relacao\": \"referencia\"}, {\"direcao\": \"entrada\", \"no\": \"sefaz/nfe\", \"relacao\": \"pertence_a\"}]}", "type": "text"}], "isError": false, "structuredContent": {"grau": 63, "node": "sefaz/nfe/layout-4.00.md", "tipo": "documento", "vizinhos": [{"direcao": "saida", "no": "sefaz/nfe/regras-validacao.md", "relacao": "referencia"}, {"direcao": "entrada", "no": "sefaz/nfe", "relacao": "pertence_a"}]}}}graphify_get_node
Returns metadata and provenance of a node: type, degree, community, and source.
Arguments
{"label": "bling/webhooks.md"}Example response
{"id": 1, "jsonrpc": "2.0", "result": {"content": [{"text": "{\"comunidade\": \"com_07\", \"confidence\": {\"kind\": \"structural\", \"method\": \"markdown-link\", \"score\": 1.0}, \"generation_id\": \"g_2026_09_05\", \"grau\": 41, \"label\": \"bling/webhooks.md\", \"n_provenance_refs\": 2, \"provenance_refs\": [\"sha256:9f2a\", \"sha256:1c7d\"], \"revision\": 3, \"tipo\": \"documento\"}", "type": "text"}], "isError": false, "structuredContent": {"comunidade": "com_07", "confidence": {"kind": "structural", "method": "markdown-link", "score": 1.0}, "generation_id": "g_2026_09_05", "grau": 41, "label": "bling/webhooks.md", "n_provenance_refs": 2, "provenance_refs": ["sha256:9f2a", "sha256:1c7d"], "revision": 3, "tipo": "documento"}}}graphify_god_nodes
Lists the structural hubs of the corpus: the most connected nodes by degree.
Arguments
{"n": 5}Example response
{"id": 1, "jsonrpc": "2.0", "result": {"content": [{"text": "{\"criterio\": \"grau (entrada + saida) no grafo estrutural\", \"hubs\": [{\"grau\": 63, \"node\": \"sefaz/nfe/layout-4.00.md\", \"tipo\": \"documento\"}, {\"grau\": 41, \"node\": \"bling/webhooks.md\", \"tipo\": \"documento\"}, {\"grau\": 38, \"node\": \"synflux\", \"tipo\": \"pasta\"}]}", "type": "text"}], "isError": false, "structuredContent": {"criterio": "grau (entrada + saida) no grafo estrutural", "hubs": [{"grau": 63, "node": "sefaz/nfe/layout-4.00.md", "tipo": "documento"}, {"grau": 41, "node": "bling/webhooks.md", "tipo": "documento"}, {"grau": 38, "node": "synflux", "tipo": "pasta"}]}}}graphify_community
Lists the members of a graph community, by id or by rank.
Arguments
{"rank": 0}Example response
{"id": 1, "jsonrpc": "2.0", "result": {"content": [{"text": "{\"community_id\": \"com_07\", \"membros\": [\"bling/webhooks.md\", \"bling/autenticacao.md\", \"bling/pedidos.md\"], \"rank\": 0, \"tamanho\": 96, \"truncado\": false}", "type": "text"}], "isError": false, "structuredContent": {"community_id": "com_07", "membros": ["bling/webhooks.md", "bling/autenticacao.md", "bling/pedidos.md"], "rank": 0, "tamanho": 96, "truncado": false}}}Errors
401 sem chave · 403 chave revogada · ferramenta_indisponivel_neste_transporte
Kits
Claude Code
claude mcp add -s user --transport http next https://mcp.rkm-next.com.br/mcp --header "Authorization: Bearer YOUR_KEY"
Codex PowerShell
$env:NEXT_TOKEN = "YOUR_KEY" setx NEXT_TOKEN "YOUR_KEY" codex mcp add next --url https://mcp.rkm-next.com.br/mcp --bearer-token-env-var NEXT_TOKEN
Codex bash/zsh
export NEXT_TOKEN="YOUR_KEY" codex mcp add next --url https://mcp.rkm-next.com.br/mcp --bearer-token-env-var NEXT_TOKEN
HTTP curl
curl -X POST https://mcp.rkm-next.com.br/mcp -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" -d "@pergunta.json"
pergunta.json: {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"next_search","arguments":{"query":"..."}}}