Kibela
Um servidor MCP para integração com a API do Kibela, permitindo que LLMs acessem e gerenciem conteúdo na plataforma de compartilhamento de conhecimento.
Documentação
Servidor MCP Kibela
Implementação de servidor MCP para integração com a API do Kibela, permitindo que LLMs interajam com o conteúdo do Kibela.
[!TIP] Esta extensão realiza introspecção de esquema GraphQL usando as funções buildClientSchema, getIntrospectionQuery e printSchema do pacote graphql para fazer engenharia reversa da API do Kibela. Para mais detalhes, veja aqui
Recursos
- Buscar notas com filtros avançados
- Obter suas notas mais recentes
- Obter conteúdo e comentários de notas
- Gerenciar grupos e pastas
- Curtir/descurtir notas
- Listar usuários
- Visualizar anexos de notas
- Visualizar notas recentemente vistas
- Obter notas por caminho
Configuração
Variáveis de Ambiente
KIBELA_TEAM: Nome do seu time no Kibela (obrigatório)KIBELA_TOKEN: Token da API do Kibela (obrigatório)
Integração com Cursor
Adicione ao seu ~/.cursor/mcp.json:
{
"mcpServers": {
"kibela": {
"command": "npx",
"args": ["-y", "@kiwamizamurai/mcp-kibela-server"],
"env": {
"KIBELA_TEAM": "YOUR_TEAM_NAME",
"KIBELA_TOKEN": "YOUR_TOKEN"
}
}
}
}
Se preferir usar docker:
{
"mcpServers": {
"kibela": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"KIBELA_TEAM",
"-e",
"KIBELA_TOKEN",
"ghcr.io/kiwamizamurai/mcp-kibela-server:latest"
],
"env": {
"KIBELA_TEAM": "YOUR_TEAM_NAME",
"KIBELA_TOKEN": "YOUR_TOKEN"
}
}
}
}
Ferramentas
kibela_search_notes
Busca notas no Kibela com a consulta fornecida
- Entrada:
query(string): Consulta de buscacoediting(boolean, opcional): Filtrar por status de coediçãoisArchived(boolean, opcional): Filtrar por status de arquivamentosortBy(string, opcional): Ordenar por (RELEVANT, CONTENT_UPDATED_AT)userIds(string[], opcional): Filtrar por IDs de usuáriosfolderIds(string[], opcional): Filtrar por IDs de pastas
- Retorna: Lista de notas correspondentes com ID, título, URL, autor, grupos e mais
kibela_get_my_notes
Obtém suas notas mais recentes do Kibela
- Entrada:
limit(number, opcional): Número de notas a buscar (padrão: 15)
- Retorna: Lista das suas notas mais recentes com informações do autor
kibela_get_note_content
Obtém conteúdo e comentários de uma nota específica
- Entrada:
id(string): ID da notainclude_image_data(boolean, opcional): Se deve incluir URLs de dados de imagem na resposta (padrão: false)
- Retorna: Conteúdo completo da nota incluindo HTML, comentários, anexos, grupos, pastas e mais
kibela_get_groups
Obtém lista de grupos acessíveis
- Entrada: Nenhuma
- Retorna: Lista de grupos com detalhes como configurações de privacidade e permissões
kibela_get_group_folders
Obtém pastas em um grupo
- Entrada:
groupId(string): ID do grupoparentFolderId(string, opcional): ID da pasta pai para pastas aninhadas
- Retorna: Lista de pastas com suas notas e metadados
kibela_get_group_notes
Obtém notas em um grupo que não estão anexadas a nenhuma pasta
- Entrada:
groupId(string): ID do grupo
- Retorna: Lista de notas com informações do autor, ordenadas pela última atualização
kibela_get_folder_notes
Obtém notas em uma pasta
- Entrada:
folderId(string): ID da pastalimit(number, opcional): Número de notas a buscar (padrão: 100)
- Retorna: Lista de notas com informações do autor, ordenadas pela última atualização
kibela_get_users
Obtém lista de usuários
- Entrada: Nenhuma
- Retorna: Lista de usuários com ID, conta e nome real
kibela_like_note
Curtir uma nota
- Entrada:
noteId(string): ID da nota
- Retorna: Lista atualizada de quem curtiu
kibela_unlike_note
Descurtir uma nota
- Entrada:
noteId(string): ID da nota
- Retorna: Lista atualizada de quem curtiu
kibela_get_recently_viewed_notes
Obtém suas notas recentemente vistas
- Entrada:
limit(number, opcional): Número de notas a buscar (máx. 15)
- Retorna: Lista de notas recentemente vistas com informações do autor
kibela_get_note_from_path
Obtém conteúdo da nota pelo caminho ou URL
- Entrada:
path(string): Caminho da nota (ex.: '/group/folder/note') ou URL completa do Kibela (ex.: 'https://team.kibe.la/notes/123')include_image_data(boolean, opcional): Se deve incluir URLs de dados de imagem na resposta (padrão: false)
- Retorna: Conteúdo completo da nota incluindo HTML, comentários, anexos, grupos, pastas e mais
Desenvolvimento Local
Executando a partir do código-fonte
- Clone o repositório
- Instale as dependências:
npm install
Configuração do Ambiente
Para desenvolvimento local, atualize seu ~/.cursor/mcp.json:
{
"mcpServers": {
"kibela": {
"command": "node",
"args": ["path/to/mcp-kibela-server/dist/src/index.js"],
"env": {
"KIBELA_TEAM": "YOUR_TEAM_NAME",
"KIBELA_TOKEN": "YOUR_TOKEN"
}
}
}
}
Inspetor MCP
npx @modelcontextprotocol/inspector node ./dist/src/index.js
e defina as variáveis de ambiente
Docker
Compile e execute localmente:
docker build -t mcp-kibela-server .
Em seguida, use esta configuração:
{
"mcpServers": {
"kibela": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"KIBELA_TEAM",
"-e",
"KIBELA_TOKEN",
"mcp-kibela-server"
],
"env": {
"KIBELA_TEAM": "YOUR_TEAM_NAME",
"KIBELA_TOKEN": "YOUR_TOKEN"
}
}
}
}
Para transporte SSE, certifique-se de que a URL do servidor esteja definida como: http://localhost:3000/sse