Servidor MCP
Conecte Claude, IDEs e outros clientes de IA para ler e editar a wiki pelo Model Context Protocol.
O que é
A Next Wiki traz um servidor Model Context Protocol (MCP). Com ele, Claude, IDEs e os seus próprios agentes leem e editam a wiki com a sua chave: buscam, leem documentos, criam e atualizam páginas, rodam os agentes da wiki e aprovam propostas.
É a forma de automatizar a wiki por fora. A API REST serve ao próprio app e não aceita chave de API (veja API).
| Item | Valor |
|---|---|
| Endpoint | https://SUA-WIKI/api/mcp |
| Transporte | Streamable HTTP (POST no endpoint). Não há SSE clássico nem stdio. |
| Autenticação | Chave de API nwk_… no cabeçalho Authorization: Bearer ou X-Api-Key |
| Limite | 12 pedidos por minuto por IP, por padrão (RATE_LIMIT_SENSIVEL) |
Criar a chave
Em Configurações → APIs & Acesso (a página abre com o título API & Access), crie uma chave. Ela aparece uma única vez.
| Escopo | Concede |
|---|---|
docs:ler | As ferramentas de leitura |
docs:escrever | Leitura e escrita |
(nenhum) ou * | Acesso total, com as permissões de quem criou a chave |
colecoes:gerenciar, exportacoes, workspace:admin | Aparecem na tela e ainda não têm efeito. Uma chave só com eles não chama ferramenta nenhuma. |
Acima do escopo, valem sempre as permissões da pessoa dona da chave: quem não edita uma coleção não edita por MCP; criar agente, skill ou modelo exige ser admin.
Conectar um cliente
Claude Code (ou outro cliente que aceita MCP remoto por HTTP):
{
"mcpServers": {
"next-wiki": {
"type": "http",
"url": "https://SUA-WIKI/api/mcp",
"headers": { "Authorization": "Bearer nwk_sua_chave" }
}
}
}
Claude Desktop só carrega servidores locais; use a ponte mcp-remote:
{
"mcpServers": {
"next-wiki": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://SUA-WIKI/api/mcp",
"--transport", "http-only",
"--header", "Authorization: Bearer nwk_sua_chave"]
}
}
}
O --transport http-only importa: sem ele, o mcp-remote tenta SSE primeiro e falha.
Pelo curl, mande Accept: application/json, text/event-stream — só
application/json recebe 406. A sequência é initialize (guarde o cabeçalho
Mcp-Session-Id), notifications/initialized e então tools/call.
Agentes como prompts
Cada agente ativo dos seus workspaces aparece como um prompt MCP. O seu cliente
“veste” a persona do agente e usa as ferramentas da wiki com o modelo do cliente.
Para rodar o agente no servidor, com o modelo da wiki, use rodar_agente.
Ferramentas
L = leitura, E = escrita. Argumentos opcionais em itálico.
Busca e leitura
| Ferramenta | Esc. | Argumentos | O que faz |
|---|---|---|---|
listar_workspaces | L | — | Workspaces que você acessa |
arvore | L | workspaceId, colecaoId, contendo, incluirDocumentos, limite | Coleções e documentos |
buscar | L | workspaceId, consulta, colecaoId, limite | Busca por texto, sem acento |
consultar_base | L | workspaceId, afirmacao, colecaoId, limite | Busca por sentido; exige a busca semântica ligada |
ler_documento | L | documentoId | O Markdown de um documento |
ler_comentarios | L | documentoId | Os comentários |
perguntar | L | workspaceId, pergunta, colecaoId, tipoId | Resposta com fontes |
analisar_conflitos | L | workspaceId, colecaoId, tipoId | Documentos que se contradizem |
listar_tags | L | workspaceId | Tags do workspace |
Documentos e coleções
| Ferramenta | Esc. | Argumentos | O que faz |
|---|---|---|---|
criar_documento | E | colecaoId, titulo, conteudoMarkdown, parentDocumentoId | Cria um documento |
criar_documento_do_tipo | E | colecaoId, tipoDocId, titulo, parentDocumentoId | Cria a partir de um modelo |
atualizar_documento | E | documentoId, conteudoMarkdown, titulo | Substitui o conteúdo (gera versão) |
renomear_documento | E | documentoId, titulo | Renomeia |
mover_documento | E | documentoId, colecaoId, parentId, ordem | Move na árvore |
arquivar_documento | E | documentoId | Manda para a lixeira (reversível) |
tipificar_documento | E | documentoId, tipoDocId | Define o tipo (vazio remove) |
criar_tag | E | workspaceId, nome, cor | Cria a tag, ou devolve a existente |
definir_tags_documento | E | documentoId, tagIds[] | Substitui as tags do documento |
criar_colecao | E | workspaceId, nome, parentId, icone, descricao, visibilidade, sigla | Cria uma coleção |
atualizar_colecao | E | colecaoId, nome, parentId, paraRaiz, ordem, icone, descricao, visibilidade | Altera a coleção |
excluir_colecao | E | colecaoId | Exclui (só admin) |
Quadros
| Ferramenta | Esc. | Argumentos | O que faz |
|---|---|---|---|
criar_quadro | E | colecaoId, titulo, nos[], conexoes[] | Cria um quadro com caixas e setas |
escrever_quadro | E | documentoId, nos[], conexoes[] | Redesenha o quadro de um documento |
escrever_quadro_json | E | documentoId, edgelessJson | Grava uma cena Excalidraw pronta |
Modelos de documento
| Ferramenta | Esc. | Argumentos | O que faz |
|---|---|---|---|
listar_modelos_documento | L | workspaceId | Tipos do workspace |
obter_modelo | L | workspaceId, tipoDocId | Um tipo com template e instruções |
modelos_do_projeto | L | colecaoId | Papéis do projeto e o modelo vigente de cada um |
templates_do_projeto | L | colecaoId | Repositórios-modelo de código do projeto |
criar_modelo | E | workspaceId, nome, templateMd, descricao, instrucoesIa, papelId, ehVariantePadrao, icone, indexavel, chave | Cria um tipo (admin) |
atualizar_modelo | E | workspaceId, tipoDocId, nome, templateMd, descricao, instrucoesIa, papelId, ehVariantePadrao, chave | Altera um tipo (admin) |
Skills
| Ferramenta | Esc. | Argumentos | O que faz |
|---|---|---|---|
listar_skills | L | workspaceId | Skills do workspace |
ler_skill | L | workspaceId, skillId | Uma skill completa |
criar_skill | E | workspaceId, nome, descricao, instrucoes, colecaoId, tipoRaizId, ativo | Cria (admin) |
atualizar_skill | E | workspaceId, skillId, nome, descricao, instrucoes, colecaoId, tipoRaizId, ativo, limpar[] | Altera (admin) |
Agentes e execuções
| Ferramenta | Esc. | Argumentos | O que faz |
|---|---|---|---|
listar_agentes | L | workspaceId | Agentes do workspace |
ler_agente | L | workspaceId, agenteId | Um agente completo |
criar_agente | E | workspaceId, nome, descricao, instrucoes, ferramentas[], colecaoId, provider, modelo, ativo, tipoRaizId, maxIteracoes, maxCriacoes, skills[], maxTokensExecucao | Cria (admin) |
atualizar_agente | E | workspaceId, agenteId, os mesmos campos, mais limpar[] | Altera (admin) |
rodar_agente | E | agenteId, tarefa, colecaoId, documentoAtualId, aguardar | Roda no servidor. Exige coleção (colecaoId ou a do agente); uma execução ativa por pessoa em cada coleção. Com aguardar (padrão), espera até 75 s; passou disso, devolve o execucaoId e a execução continua. Documento criado já fica na wiki; edição volta como proposta |
status_execucao | L | execucaoId | Progresso, perguntas pendentes e propostas |
responder_execucao | E | execucaoId, resposta, escolhidas[] | Responde a uma pergunta do agente |
parar_execucao | E | execucaoId | Interrompe |
aplicar_proposta | E | tipo (editar ou criar), titulo, conteudoMarkdown, documentoId, colecaoId, parentDocumentoId, icone | Aplica uma proposta |
Se faltar escopo, a ferramenta devolve um erro dizendo qual.