Kibela

Gestiona contenido en la plataforma de intercambio de conocimientos Kibela.

Documentación

Servidor MCP de Kibela

El Servidor MCP de Kibela es un servidor Model Context Protocol (MCP) para Kibela.

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

Resumen

El Servidor MCP de Kibela actualmente solo está disponible como servidor local mediante STDIO y puede usarse con cualquier cliente MCP, como Claude Desktop o VSCode.

Solo aquellas API de GraphQL que están disponibles públicamente y son adecuadas para MCP están implementadas como herramientas.

Casos de uso

  • Consultar información en Kibela
  • Organizar carpetas y artículos en Kibela
  • Usar IA para ayudarte a escribir con Kibela

Requisitos

  1. Docker está instalado
  2. Docker debe estar en ejecución
  3. Se ha emitido un token de acceso de Kibela
  4. Debe estar instalada una aplicación que implemente el cliente MCP

Instalación

Ejemplo: Claude Desktop

Escribe la siguiente configuración en claude_desktop_config.json. Establece el origen de Kibela y el token de acceso como variables de entorno.

{
  "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": "***"
      }
    }
  }
}

Sin Docker

Luego, establece el script como comando de ejecución. En este momento, asegúrate de que la ruta al script sea absoluta.

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

Herramientas disponibles

Operaciones con notas

  • search_kibela_note - Buscar notas

    • query: Palabra clave de búsqueda (obligatorio)
    • resources: Filtro de tipo de recurso (opcional)
    • coediting: Indicador de coedición (opcional)
    • updated: Rango de fecha de actualización (opcional)
    • groupIds: Filtro de ID de grupo (opcional)
    • folderIds: Filtro de ID de carpeta (opcional)
    • likerIds: Filtro de ID de usuario que da "me gusta" (opcional)
    • isArchived: Indicador de archivo (opcional)
    • sortBy: Orden de clasificación (opcional)
  • get_kibela_note_by_relay_id - Obtener una nota por ID de Relay

    • id: ID de Relay de la nota (obligatorio)
  • get_kibela_note_from_path_or_url - Obtener una nota desde ruta o URL

    • path: Ruta o URL de la nota (obligatorio)
  • get_kibela_notes - Obtener notas en una carpeta

    • folderId: ID de carpeta (obligatorio)
    • first: Número de registros desde el inicio (opcional)
    • last: Número de registros desde el final (opcional)
  • create_kibela_note - Crear una nueva nota

    • title: Título de la nota (obligatorio)
    • content: Contenido de la nota (obligatorio)
    • draft: Indicador de borrador (opcional)
    • groupIds: Lista de IDs de grupos a los que pertenece (obligatorio)
    • folders: Información de la carpeta (opcional)
      • groupId: ID de grupo
      • folderName: Nombre de la carpeta
  • update_kibela_note_content - Actualizar el contenido de una nota

    • id: ID de la nota (obligatorio)
    • newContent: Nuevo contenido (obligatorio)
    • baseContent: Contenido original (obligatorio)

Operaciones con carpetas

  • search_kibela_folder - Buscar carpetas

    • query: Palabra clave de búsqueda (obligatorio)
  • get_kibela_folder_by_relay_id - Obtener una carpeta por ID de Relay

    • id: ID de Relay de la carpeta (obligatorio)
    • first: Número de registros desde el inicio (opcional)
  • get_kibela_folder_from_path_or_url - Obtener una carpeta desde ruta o URL

    • path: Ruta o URL de la carpeta (obligatorio)
    • first: Número de registros desde el inicio (opcional)
  • get_kibela_folders - Obtener lista de carpetas

    • first: Número de registros desde el inicio (opcional)
    • last: Número de registros desde el final (opcional)
  • create_kibela_folder - Crear una nueva carpeta

    • groupId: ID de grupo (obligatorio)
    • fullName: Nombre de ruta completo de la carpeta (obligatorio)
  • move_kibela_note_to_another_folder - Mover una nota a otra carpeta

    • id: ID de la nota (obligatorio)
    • fromFolder: Información de la carpeta de origen (obligatorio)
      • groupId: ID de grupo
      • folderName: Nombre de la carpeta
    • toFolder: Información de la carpeta de destino (obligatorio)
      • groupId: ID de grupo
      • folderName: Nombre de la carpeta
  • attach_kibela_note_to_folder - Asociar una nota con una carpeta

    • id: ID de la nota (obligatorio)
    • folder: Información de la carpeta (obligatorio)
      • groupId: ID de grupo
      • folderName: Nombre de la carpeta

Operaciones con comentarios

  • create_kibela_comment - Crear un comentario en una nota

    • content: Contenido del comentario (obligatorio)
    • noteId: ID de la nota de destino (obligatorio)
  • create_kibela_comment_reply - Crear una respuesta a un comentario

    • content: Contenido de la respuesta (obligatorio)
    • commentId: ID del comentario de destino (obligatorio)

Otras operaciones

  • get_kibela_groups - Obtener lista de grupos

    • first: Número de registros desde el inicio (opcional)
    • last: Número de registros desde el final (opcional)
  • get_kibela_feed_sections - Obtener lista de secciones de feed

    • kind: Tipo de feed (obligatorio)
    • groupId: ID de grupo (obligatorio)

Prompts disponibles

Prompt de revisión

Toma una URL como entrada y revisa la nota especificada.

Esquema de entrada:

{
  url: string; // URL format
}

Prompt de búsqueda

Toma una consulta como entrada y busca información relevante.

Esquema de entrada:

{
  query: string;
}

Prompt de nota relacionada

Toma una URL como entrada y explora la nota relacionada.

Esquema de entrada:

{
  url: string; // URL format
}

Prompt de reflejar comentario

Toma una URL como entrada y refleja su comentario en la nota.

Esquema de entrada:

{
  url: string; // URL format
}

Personalización

Puedes personalizar la descripción de las herramientas y los prompts preparando un archivo JSON con el siguiente formato.

Consulta server.ts para las claves de herramientas y prompts.

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

Y luego móntalo en el contenedor de la siguiente manera:

{
  "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": "***"
      }
    }
  }
}

Desarrollo

docker compose run mcp pnpm install
docker compose up

Pruebas con MCP Inspector

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

Licencia

Este paquete está licenciado bajo los términos de la licencia MIT.