Kibela Knowledge Management
STDIOA Model Context Protocol server for Kibela knowledge management platform.
A Model Context Protocol server for Kibela knowledge management platform.
Kibela MCP Server is currently available only as a local server using STDIO and can be used with any MCP client such as Claude Desktop or VSCode.
Only those GraphQL APIs that are publicly available and suitable for MCP are implemented as tools.
Write the following configuration to claude_desktop_config.json
. Set the Kibela origin and access token as environment variables.
{ "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": "***" } } } }
Then set the script as the execution command. At this time, make sure that the path to the script is absolute.
{ "mcpServers": { "kibela": { "command": "/path/to/kibela-mcp-server/bin/cli.mjs", "env": { "KIBELA_ORIGIN": "https://your-subdomain.kibe.la", "KIBELA_ACCESS_TOKEN": "***" } } } }
search_kibela_note
- Search notes
query
: Search keyword (required)resources
: Resource type filter (optional)coediting
: Co-editing flag (optional)updated
: Update date range (optional)groupIds
: Group ID filter (optional)folderIds
: Folder ID filter (optional)likerIds
: Liker user ID filter (optional)isArchived
: Archive flag (optional)sortBy
: Sort order (optional)get_kibela_note_by_relay_id
- Get a note by Relay ID
id
: Note's Relay ID (required)get_kibela_note_from_path_or_url
- Get a note from path or URL
path
: Note's path or URL (required)get_kibela_notes
- Get notes in a folder
folderId
: Folder ID (required)first
: Number of records from front (optional)last
: Number of records from back (optional)create_kibela_note
- Create a new note
title
: Note title (required)content
: Note content (required)draft
: Draft flag (optional)groupIds
: List of group IDs to belong to (required)folders
: Folder information (optional)
groupId
: Group IDfolderName
: Folder nameupdate_kibela_note_content
- Update note content
id
: Note ID (required)newContent
: New content (required)baseContent
: Original content (required)search_kibela_folder
- Search folders
query
: Search keyword (required)get_kibela_folder_by_relay_id
- Get a folder by Relay ID
id
: Folder's Relay ID (required)first
: Number of records from front (optional)get_kibela_folder_from_path_or_url
- Get a folder from path or URL
path
: Folder's path or URL (required)first
: Number of records from front (optional)get_kibela_folders
- Get folder list
first
: Number of records from front (optional)last
: Number of records from back (optional)create_kibela_folder
- Create a new folder
groupId
: Group ID (required)fullName
: Full path name of the folder (required)move_kibela_note_to_another_folder
- Move a note to another folder
id
: Note ID (required)fromFolder
: Source folder information (required)
groupId
: Group IDfolderName
: Folder nametoFolder
: Destination folder information (required)
groupId
: Group IDfolderName
: Folder nameattach_kibela_note_to_folder
- Associate a note with a folder
id
: Note ID (required)folder
: Folder information (required)
groupId
: Group IDfolderName
: Folder namecreate_kibela_comment
- Create a comment on a note
content
: Comment content (required)noteId
: Target note ID (required)create_kibela_comment_reply
- Create a reply to a comment
content
: Reply content (required)commentId
: Target comment ID (required)get_kibela_groups
- Get group list
first
: Number of records from front (optional)last
: Number of records from back (optional)get_kibela_feed_sections
- Get feed section list
kind
: Feed type (required)groupId
: Group ID (required)Takes a URL as input and reviews the specified note.
Input schema:
{ url: string; // URL format }
Takes a query as input and searches for relevant information.
Input schema:
{ query: string; }
Takes a URL as input and explore the related note.
Input schema:
{ url: string; // URL format }
Takes a URL as input and reflect its comment to note.
Input schema:
{ url: string; // URL format }
You can customize the tool description and prompt by preparing a JSON file in the following format.
See server.ts
for tool and prompt keys.
{ "tools": { "search_kibela_note": { "description": "New description" } }, "prompts": { "review": { "prompt": "New review prompt" } } }
And then mount it to the container as follows:
{ "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": "***" } } } }
docker compose run mcp pnpm install
docker compose up
npx @modelcontextprotocol/inspector \ -e KIBELA_ORIGIN=https://your-subdomain.kibe.la \ -e KIBELA_ACCESS_TOKEN=*** \ docker compose exec mcp bin/cli.mjs
This package is licensed under the terms of the MIT license.