Kibela

Gerencie conteúdo na plataforma de compartilhamento de conhecimento Kibela.

Documentação

Kibela MCP Server

Kibela MCP Server é um servidor Model Context Protocol (MCP) para Kibela.

GitHub commit activity GitHub Release Date GitHub package.json dynamic GitHub package.json dynamic

Visão Geral

O Kibela MCP Server está atualmente disponível apenas como servidor local usando STDIO e pode ser usado com qualquer cliente MCP, como Claude Desktop ou VSCode.

Apenas as APIs GraphQL publicamente disponíveis e adequadas para MCP são implementadas como ferramentas.

Casos de Uso

  • Perguntar sobre informações no Kibela
  • Organizar pastas e artigos no Kibela
  • Usar IA para ajudar você a escrever com o Kibela

Requisitos

  1. Docker está instalado
  2. Docker deve estar em execução
  3. O token de acesso do Kibela é emitido
  4. Um aplicativo que implementa o cliente MCP deve estar instalado

Instalação

Exemplo: Claude Desktop

Escreva a seguinte configuração em claude_desktop_config.json. Defina a origem do Kibela e o token de acesso como variáveis de ambiente.

{
  "mcpServers": {
    "kibela": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "-e",
        "KIBELA_ORIGIN",
        "-e",
        "KIBELA_ACCESS_TOKEN",
        "ghcr.io/kibela/kibela-mcp-server"
      ],
      "env": {
        "KIBELA_ORIGIN": "https://your-subdomain.kibe.la",
        "KIBELA_ACCESS_TOKEN": "***"
      }
    }
  }
}

Sem Docker

Em seguida, defina o script como comando de execução. Nesse momento, certifique-se de que o caminho para o script seja absoluto.

{
  "mcpServers": {
    "kibela": {
      "command": "/path/to/kibela-mcp-server/bin/cli.mjs",
      "env": {
        "KIBELA_ORIGIN": "https://your-subdomain.kibe.la",
        "KIBELA_ACCESS_TOKEN": "***"
      }
    }
  }
}

Ferramentas Disponíveis

Operações de Nota

  • search_kibela_note - Pesquisar notas

    • query: Palavra-chave de pesquisa (obrigatório)
    • resources: Filtro de tipo de recurso (opcional)
    • coediting: Sinalizador de coedição (opcional)
    • updated: Intervalo de data de atualização (opcional)
    • groupIds: Filtro de ID de grupo (opcional)
    • folderIds: Filtro de ID de pasta (opcional)
    • likerIds: Filtro de ID de usuário que curtiu (opcional)
    • isArchived: Sinalizador de arquivamento (opcional)
    • sortBy: Ordem de classificação (opcional)
  • get_kibela_note_by_relay_id - Obter uma nota por ID Relay

    • id: ID Relay da nota (obrigatório)
  • get_kibela_note_from_path_or_url - Obter uma nota a partir de caminho ou URL

    • path: Caminho ou URL da nota (obrigatório)
  • get_kibela_notes - Obter notas em uma pasta

    • folderId: ID da pasta (obrigatório)
    • first: Número de registros do início (opcional)
    • last: Número de registros do final (opcional)
  • create_kibela_note - Criar uma nova nota

    • title: Título da nota (obrigatório)
    • content: Conteúdo da nota (obrigatório)
    • draft: Sinalizador de rascunho (opcional)
    • groupIds: Lista de IDs de grupos aos quais pertencer (obrigatório)
    • folders: Informações da pasta (opcional)
      • groupId: ID do grupo
      • folderName: Nome da pasta
  • update_kibela_note_content - Atualizar conteúdo da nota

    • id: ID da nota (obrigatório)
    • newContent: Novo conteúdo (obrigatório)
    • baseContent: Conteúdo original (obrigatório)

Operações de Pasta

  • search_kibela_folder - Pesquisar pastas

    • query: Palavra-chave de pesquisa (obrigatório)
  • get_kibela_folder_by_relay_id - Obter uma pasta por ID Relay

    • id: ID Relay da pasta (obrigatório)
    • first: Número de registros do início (opcional)
  • get_kibela_folder_from_path_or_url - Obter uma pasta a partir de caminho ou URL

    • path: Caminho ou URL da pasta (obrigatório)
    • first: Número de registros do início (opcional)
  • get_kibela_folders - Obter lista de pastas

    • first: Número de registros do início (opcional)
    • last: Número de registros do final (opcional)
  • create_kibela_folder - Criar uma nova pasta

    • groupId: ID do grupo (obrigatório)
    • fullName: Nome do caminho completo da pasta (obrigatório)
  • move_kibela_note_to_another_folder - Mover uma nota para outra pasta

    • id: ID da nota (obrigatório)
    • fromFolder: Informações da pasta de origem (obrigatório)
      • groupId: ID do grupo
      • folderName: Nome da pasta
    • toFolder: Informações da pasta de destino (obrigatório)
      • groupId: ID do grupo
      • folderName: Nome da pasta
  • attach_kibela_note_to_folder - Associar uma nota a uma pasta

    • id: ID da nota (obrigatório)
    • folder: Informações da pasta (obrigatório)
      • groupId: ID do grupo
      • folderName: Nome da pasta

Operações de Comentário

  • create_kibela_comment - Criar um comentário em uma nota

    • content: Conteúdo do comentário (obrigatório)
    • noteId: ID da nota de destino (obrigatório)
  • create_kibela_comment_reply - Criar uma resposta a um comentário

    • content: Conteúdo da resposta (obrigatório)
    • commentId: ID do comentário de destino (obrigatório)

Outras Operações

  • get_kibela_groups - Obter lista de grupos

    • first: Número de registros do início (opcional)
    • last: Número de registros do final (opcional)
  • get_kibela_feed_sections - Obter lista de seções de feed

    • kind: Tipo de feed (obrigatório)
    • groupId: ID do grupo (obrigatório)

Prompts Disponíveis

Prompt de Revisão

Recebe uma URL como entrada e revisa a nota especificada.

Esquema de entrada:

{
  url: string; // URL format
}

Prompt de Pesquisa

Recebe uma consulta como entrada e pesquisa informações relevantes.

Esquema de entrada:

{
  query: string;
}

Prompt de Nota Relacionada

Recebe uma URL como entrada e explora a nota relacionada.

Esquema de entrada:

{
  url: string; // URL format
}

Prompt de Reflexão de Comentário

Recebe uma URL como entrada e reflete o comentário dela na nota.

Esquema de entrada:

{
  url: string; // URL format
}

Personalização

Você pode personalizar a descrição da ferramenta e o prompt preparando um arquivo JSON no seguinte formato.

Consulte server.ts para chaves de ferramenta e prompt.

{
  "tools": {
    "search_kibela_note": {
      "description": "New description"
    }
  },
  "prompts": {
    "review": {
      "prompt": "New review prompt"
    }
  }
}

E então monte-o no contêiner da seguinte forma:

{
  "mcpServers": {
    "kibela": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "-e",
        "KIBELA_ORIGIN",
        "-e",
        "KIBELA_ACCESS_TOKEN",
        "-v",
        "/path/to/kibela-mcp-server-config.json:/usr/src/app/kibela-mcp-server-config.json",
        "ghcr.io/kibela/kibela-mcp-server"
      ],
      "env": {
        "KIBELA_ORIGIN": "https://your-subdomain.kibe.la",
        "KIBELA_ACCESS_TOKEN": "***"
      }
    }
  }
}

Desenvolvimento

docker compose run mcp pnpm install
docker compose up

Testando com o MCP Inspector

npx @modelcontextprotocol/inspector \
  -e KIBELA_ORIGIN=https://your-subdomain.kibe.la \
  -e KIBELA_ACCESS_TOKEN=*** \
  docker compose exec mcp bin/cli.mjs

Licença

Este pacote é licenciado sob os termos da licença MIT.