mcp kibela server
Enables integration with Kibela API for searching and retrieving notes, allowing LLMs to interact with Kibela content seamlessly.
Enables integration with Kibela API for searching and retrieving notes, allowing LLMs to interact with Kibela content seamlessly.
MCP server implementation for Kibela API integration, enabling LLMs to interact with Kibela content.
KIBELA_TEAM
: Your Kibela team name (required)KIBELA_TOKEN
: Your Kibela API token (required)Add to your ~/.cursor/mcp.json
:
{
"mcpServers": {
"kibela": {
"command": "npx",
"args": ["-y", "@kiwamizamurai/mcp-kibela-server"],
"env": {
"KIBELA_TEAM": "YOUR_TEAM_NAME",
"KIBELA_TOKEN": "YOUR_TOKEN"
}
}
}
}
If you want to use docker instead
{
"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"
}
}
}
}
Search Kibela notes with given query
- Input:
- query
(string): Search query
- coediting
(boolean, optional): Filter by co-editing status
- isArchived
(boolean, optional): Filter by archive status
- sortBy
(string, optional): Sort by (RELEVANT, CONTENT_UPDATED_AT)
- userIds
(string[], optional): Filter by user IDs
- folderIds
(string[], optional): Filter by folder IDs
- Returns: List of matching notes with ID, title, URL, author, groups and more
Get your latest notes from Kibela
- Input:
- limit
(number, optional): Number of notes to fetch (default: 15)
- Returns: List of your latest notes with author information
Get content and comments of a specific note
- Input:
- id
(string): Note ID
- include_image_data
(boolean, optional): Whether to include image data URLs in the response (default: false)
- Returns: Full note content including HTML, comments, attachments, groups, folders and more
Get list of accessible groups - Input: None - Returns: List of groups with details like privacy settings and permissions
Get folders in a group
- Input:
- groupId
(string): Group ID
- parentFolderId
(string, optional): Parent folder ID for nested folders
- Returns: List of folders with their notes and metadata
Get notes in a group that are not attached to any folder
- Input:
- groupId
(string): Group ID
- Returns: List of notes with author information, sorted by last update time
Get notes in a folder
- Input:
- folderId
(string): Folder ID
- Returns: List of notes with author information, sorted by last update time
Get list of users - Input: None - Returns: List of users with ID, account and real name
Like a note
- Input:
- noteId
(string): Note ID
- Returns: Updated likers list
Unlike a note
- Input:
- noteId
(string): Note ID
- Returns: Updated likers list
Get your recently viewed notes
- Input:
- limit
(number, optional): Number of notes to fetch (max 15)
- Returns: List of recently viewed notes with author information
Get note content by its path or URL
- Input:
- path
(string): Note path (e.g. '/group/folder/note') or full Kibela URL (e.g. 'https://team.kibe.la/notes/123')
- include_image_data
(boolean, optional): Whether to include image data URLs in the response (default: false)
- Returns: Full note content including HTML, comments, attachments, groups, folders and more
npm install
For local development, update your ~/.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"
}
}
}
}
npx @modelcontextprotocol/inspector node ./dist/src/index.js
and set environemtns
Build and run locally:
docker build -t mcp-kibela-server .
Then use this configuration:
{
"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"
}
}
}
}
For SSE transport, ensure the server URL is set to: http://localhost:3000/sse
[
{
"description": "Search Kibela notes with given query",
"inputSchema": {
"properties": {
"query": {
"description": "Search query",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "kibela_search_notes"
},
{
"description": "Get your latest notes from Kibela",
"inputSchema": {
"properties": {
"limit": {
"default": 15,
"description": "Number of notes to fetch (max 50)",
"type": "number"
}
},
"type": "object"
},
"name": "kibela_get_my_notes"
},
{
"description": "Get content and comments of a specific note",
"inputSchema": {
"properties": {
"id": {
"description": "Note ID",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "kibela_get_note_content"
}
]