Outline MCP Server

Servidor MCP para a base de conhecimento e ferramenta de gerenciamento de documentos Outline.

Documentação

Outline MCP Server

Um servidor Model Context Protocol (MCP) para Outline que permite ler e escrever documentos através da API do Outline.

Recursos

  • Ler Documentos: Obter documentos individuais, pesquisar e listar documentos
  • Escrever Documentos: Criar, atualizar e excluir documentos
  • Gerenciamento de Coleções: Listar e recuperar informações de coleções
  • Pesquisa de Texto Completo: Pesquisar em todos os documentos da sua instância do Outline
  • Suporte a Markdown: Criar e editar documentos com formatação Markdown completa

Início Rápido (npx)

A maneira mais fácil de usar este servidor é via npx — sem necessidade de clonar ou compilar. Aponte seu cliente MCP diretamente para ele:

{
  "mcpServers": {
    "outline": {
      "command": "npx",
      "args": ["-y", "getoutline-mcp-server"],
      "env": {
        "OUTLINE_API_KEY": "your-secret-api-token",
        "OUTLINE_BASE_URL": "https://your-outline-instance.com"
      }
    }
  }
}

Consulte Configuração para saber como obter o token da API.

Instalação (a partir do código-fonte)

Para desenvolvimento local, ou para executar a partir do código-fonte em vez do npm:

  1. Clone ou baixe este repositório
  2. Instale as dependências:
    npm install
    
  3. Compile o projeto:
    npm run build
    

Configuração

Antes de usar o servidor, você precisa configurar suas credenciais da API do Outline:

  1. Obtenha seu token da API do Outline:

    • Faça login na sua instância do Outline (ex.: https://app.getoutline.com)
    • Vá em Configurações → Tokens de API
    • Crie um novo token
  2. Defina as variáveis de ambiente:

    export OUTLINE_BASE_URL="https://your-outline-instance.com"
    export OUTLINE_API_KEY="your-api-token-here"
    

Uso

Executando o Servidor

Inicie o servidor MCP:

npm start

O servidor se comunica via stdio e é compatível com qualquer cliente MCP.

Ferramentas Disponíveis

Operações com Documentos

  1. outline_get_document

    • Obter um documento específico por ID
    • Parâmetros: id (string, obrigatório)
  2. outline_search_documents

    • Pesquisar documentos na sua instância do Outline
    • Parâmetros: query (string, obrigatório), limit (número, opcional, padrão: 25)
  3. outline_list_documents

    • Listar documentos, opcionalmente filtrados por coleção
    • Parâmetros: collectionId (string, opcional), limit (número, opcional, padrão: 25)
  4. outline_create_document

    • Criar um novo documento
    • Parâmetros:
      • title (string, obrigatório)
      • text (string, obrigatório) - Conteúdo em Markdown
      • collectionId (string, opcional)
      • parentDocumentId (string, opcional)
      • publish (booleano, opcional, padrão: false)
  5. outline_update_document

    • Atualizar um documento existente
    • Parâmetros:
      • id (string, obrigatório)
      • title (string, opcional)
      • text (string, opcional) - Conteúdo em Markdown
      • publish (booleano, opcional)
  6. outline_delete_document

    • Excluir um documento
    • Parâmetros: id (string, obrigatório)

Operações com Coleções

  1. outline_list_collections

    • Listar todas as coleções na sua instância do Outline
    • Parâmetros: nenhum
  2. outline_get_collection

    • Obter informações sobre uma coleção específica
    • Parâmetros: id (string, obrigatório)

Exemplo de Uso

Aqui estão alguns exemplos de chamadas de ferramentas:

{
  "name": "outline_search_documents",
  "arguments": {
    "query": "project documentation",
    "limit": 10
  }
}
{
  "name": "outline_create_document",
  "arguments": {
    "title": "New Project Plan",
    "text": "# Project Overview\n\nThis document outlines...",
    "collectionId": "collection-id-here",
    "publish": true
  }
}
{
  "name": "outline_update_document",
  "arguments": {
    "id": "document-id-here",
    "title": "Updated Project Plan",
    "text": "# Updated Project Overview\n\nThis document has been updated..."
  }
}

Desenvolvimento

Estrutura do Projeto

src/
├── index.ts           # Main MCP server implementation
├── outline-client.ts  # Outline API client

Scripts

  • npm run build - Compilar TypeScript para JavaScript
  • npm run dev - Compilar e executar o servidor
  • npm run watch - Observar alterações e recompilar
  • npm start - Executar o servidor compilado

Compilação

npm run build

O JavaScript compilado será gerado no diretório dist/.

Configuração com Clientes MCP

Para usar este servidor com um cliente MCP, você precisará configurá-lo para executar este servidor. A configuração exata depende do seu cliente, mas geralmente você precisará:

  1. Especificar o comando a ser executado: node /path/to/outline-mcp-server/dist/index.js
  2. Definir as variáveis de ambiente para sua instância do Outline
  3. Configurar o cliente para usar transporte stdio

Exemplos de Configuração do Cliente

Claude

Para clientes como o Claude que usam um arquivo de configuração JSON, adicione o seguinte ao seu mcp-servers.json. A abordagem recomendada usa npx, portanto não há nada para clonar ou compilar:

{
  "mcpServers": {
    "outline": {
      "command": "npx",
      "args": ["-y", "getoutline-mcp-server"],
      "env": {
        "OUTLINE_API_KEY": "your-secret-api-token",
        "OUTLINE_BASE_URL": "https://your-outline-instance.com"
      }
    }
  }
}
Alternativa: executar a partir do código-fonte

Se você clonou e compilou o projeto localmente, aponte o cliente para o dist/index.js compilado:

{
  "mcpServers": {
    "outline": {
      "command": "node",
      "args": ["/path/to/your/projects/outline-mcp-server/dist/index.js"],
      "env": {
        "OUTLINE_API_KEY": "your-secret-api-token",
        "OUTLINE_BASE_URL": "https://your-outline-instance.com"
      }
    }
  }
}

Certifique-se de substituir o caminho args pelo caminho absoluto para o arquivo index.js no seu projeto e preencha suas credenciais reais no bloco env.

Cursor

Para clientes como o Cursor, você pode normalmente definir variáveis de ambiente diretamente nas configurações do cliente ou iniciando o cliente a partir de um terminal onde você já exportou as variáveis.

export OUTLINE_BASE_URL="https://your-outline-instance.com"
export OUTLINE_API_KEY="your-secret-api-token"

# Then launch Cursor from this terminal
/path/to/Cursor.app/Contents/MacOS/Cursor

Limites de Taxa da API

Esteja ciente de que o Outline pode ter limites de taxa na API. O servidor não implementa limitação de taxa internamente, então você pode precisar lidar com isso no nível do cliente se estiver fazendo muitas solicitações.

Tratamento de Erros

O servidor inclui tratamento abrangente de erros e retornará mensagens de erro descritivas para problemas comuns, como:

  • Credenciais de API ausentes ou inválidas
  • Problemas de conectividade de rede
  • IDs de documentos inválidos
  • Erros de limite de taxa da API

Notas de Segurança

  • Armazene seu token de API com segurança usando variáveis de ambiente
  • Nunca envie seu token de API para o controle de versão
  • Considere usar tokens de API restritos com as permissões mínimas necessárias
  • Tenha cuidado ao permitir que outros usem seu servidor MCP, pois ele tem acesso total à sua instância do Outline

Licença

Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para enviar issues e pull requests.