Skip to main content
Glama
kj455

MCP Kibela

by kj455

mcp-kibela 🗒️

npm version License: MIT

A Model Context Protocol (MCP) server implementation that enables AI assistants to search and reference Kibela content. This setup allows AI models like Claude to securely access information stored in Kibela.

Features 🚀

The mcp-kibela server provides the following features:

  • Note Search: Search Kibela notes by keywords

  • My Notes: Fetch your latest notes

  • Note Content: Get note content and comments by ID

  • Note by Path: Get note content by path

  • Create Note: Create a new note

  • Update Note Content: Update note content by note id


Related MCP server: HackMD MCP Server

Prerequisites 📋

Before you begin, ensure you have:

  • Node.js (v18 or higher)

  • MCP Client (Claude Desktop, Cursor, etc.)

  • Kibela Access Token (How to get a token)

  • Git (if building from source)

Installation 🛠️

Usage with Cursor

{
  "kibela": {
    "command": "docker",
    "args": [
      "run",
      "-i",
      "--rm",
      "-e",
      "KIBELA_TEAM",
      "-e",
      "KIBELA_TOKEN",
      "ghcr.io/kj455/mcp-kibela:latest"
    ],
    "env": {
      "KIBELA_TEAM": "your-team-name from https://[team-name].kibe.la",
      "KIBELA_TOKEN": "your-token"
    }
  }
}

Usage with VSCode

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "kibela_team",
        "description": "Kibela team name",
        "password": false
      },
      {
        "type": "promptString",
        "id": "kibela_token",
        "description": "Kibela token",
        "password": true
      },
    ],
    "servers": {
      "kibela": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "KIBELA_TEAM",
          "-e",
          "KIBELA_TOKEN",
          "ghcr.io/kj455/mcp-kibela:latest"
        ],
        "env": {
          "KIBELA_TEAM": "${input:kibela_team}",
          "KIBELA_TOKEN": "${input:kibela_token}"
        }
      }
    }
  }
}

Usage with Claude Desktop

{
  "mcpServers": {
    "mcp-kibela": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "KIBELA_TEAM",
        "-e",
        "KIBELA_TOKEN",
        "ghcr.io/kj455/mcp-kibela:latest"
      ],
      "env": {
        "KIBELA_TEAM": "your-team-name from https://[team-name].kibe.la",
        "KIBELA_TOKEN": "your-token"
      }
    }
  }
}

Using Smithery

npx -y @smithery/cli install @kj455/mcp-kibela --client claude

Environment Variables

The following environment variables are required:

  • KIBELA_TEAM: Your Kibela team name (required). You can find it from the URL of your Kibela team page. e.g. https://[team-name].kibe.la

  • KIBELA_TOKEN: Your Kibela API token (required)

Contributing

Any contributions are welcome!

Development

  1. Use npm run build:watch to build the project in watch mode.

npm run build:watch
  1. Use npx @modelcontextprotocol/inspector to inspect the MCP server.

npx @modelcontextprotocol/inspector node /path/to/mcp-kibela/dist/index.js

License 📄

MIT

Available Tools

6 tools
kibela_create_noteB

Create a new note in Kibela.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesrequired: Title of the note
contentYesrequired: Content of the note in markdown format
groupIdsNorequired: IDs of the groups to create the note in.
foldersNoIDs of the folders to add the note to.
authorIdNoID of the author of the note. If not specified, the note will be created by the authenticated user.
coeditingNorequired: Whether to enable co-editing for the note
draftNoWhether to create the note as a draft

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is minimal and does not disclose behavioral traits such as permissions required, side effects, or rate limits. With no annotations, the description should provide more context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence. It is appropriately sized but could benefit from a slightly more structured presentation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool creates a resource but lacks any mention of what the output or return value is. The absence of an output schema increases the need for description coverage, which is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions, so the baseline is 3. The tool description adds no additional meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and the resource ('a new note in Kibela'). It differentiates from sibling tools which are focused on retrieval, search, or update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit usage guidance is provided. The purpose implies it is for creating notes, but there is no mention of when to use it versus alternatives like searching or updating.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kibela_get_my_notesB

Get my latest notes from Kibela

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of notes to fetch

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility. It implies a read operation but does not disclose what constitutes 'latest' (e.g., creation time vs update time), whether authentication is needed, or what the response format looks like. This leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence of 5 words conveys the purpose efficiently. No extraneous information; the action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the simple parameter, the description fails to explain the structure of 'notes', the meaning of 'latest' (e.g., sorting order), or any pagination behavior implied by the limit parameter. With no output schema or annotations, the tool lacks sufficient detail for reliable agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the 'limit' parameter clearly described in the schema. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get my latest notes from Kibela' clearly states the specific verb 'Get', the resource 'my latest notes', and the system 'Kibela'. It distinguishes from siblings like kibela_search_notes (search) and kibela_get_note_content (specific note content) by focusing on personal and recent notes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention when to prefer this over kibela_search_notes or kibela_get_note_from_path, nor does it specify any prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kibela_get_note_contentB

Get note content by note ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote ID

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries full burden for behavioral disclosure. It only states the basic action without detailing what is returned (e.g., full note content vs. metadata), whether authentication is needed, or error handling for invalid IDs. This is insufficient for a tool that likely requires certain permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence) and directly to the point. While it lacks structure (e.g., sections or bullet points), its brevity is acceptable for a simple tool. No unnecessary words are present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required parameter, no output schema), the description is minimally adequate. However, it could be improved by specifying what the response contains (e.g., 'Returns the note content as a string') and noting potential errors. Overall, it covers the essential purpose but not the full context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (the parameter 'id' has a description 'Note ID'). The description reiterates this with 'by note ID', which adds no new meaning. Baseline score of 3 is appropriate since the schema already provides the necessary detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action ('Get'), resource ('note content'), and identifier ('by note ID'). It clearly distinguishes from sibling tools like 'kibela_create_note' (create), 'kibela_search_notes' (search), and 'kibela_get_note_from_path' (different retrieval method).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of use cases, such as retrieving full content versus summaries from 'kibela_get_my_notes', or when to prefer path-based retrieval via 'kibela_get_note_from_path'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kibela_get_note_from_pathA

Get note content by note path

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesNote path (e.g. /notes/123)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It only implies a read operation ('get') but does not explicitly state that it is read-only, has no side effects, or any prerequisites. The minimal description leaves behavioral traits underspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with one front-loaded sentence that clearly states the purpose. Every word is essential, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 param, no output schema), the description covers the basic action but lacks details about return value or behavior. For a fully complete description, it should mention what the output contains (e.g., note content as text).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'path' parameter, with an example provided. The description adds no additional meaning beyond the schema, leading to a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get note content by note path' specifies a clear verb (get), resource (note content), and method (by path). It distinguishes from siblings like kibela_get_note_content (likely by ID) by emphasizing the path-based retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates use when a note path is available, but lacks explicit guidance on when not to use or alternatives (e.g., if note ID is known, use kibela_get_note_content instead). This is a missed opportunity for clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kibela_search_notesC

Search Kibela notes by query

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description is expected to disclose behavioral traits. It only states the basic function without explaining what the output looks like, whether it is read-only, or any limitations. This is insufficient for an agent to predict behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence and front-loaded with the purpose. However, it is overly brief and lacks context that would improve usability without adding much length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description should at least hint at the return format (e.g., list of note titles or full content). It also does not mention any limitations like pagination or search scope, leaving the tool incomplete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a single parameter described as 'Search query'. The description adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (search) and resource (Kibela notes), and the query parameter is implied. However, it does not differentiate from sibling tools like 'kibela_get_my_notes' or 'kibela_get_note_content', which could lead to confusion about scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of when to search versus fetch specific notes or lists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kibela_update_note_contentA

Update note content by note id. This tool allows you to modify the content of an existing Kibela note. Before updating, it fetches the current content of the note to ensure proper version control. Note that you need the note ID (not the note path) to use this tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote id - not note path (e.g. /notes/123). If you want to update note content by note path, please use kibela_get_note_from_path tool first and get note id from the response
contentYesNew content of the note in markdown format. The content will completely replace the existing note content. Make sure to include all necessary formatting, headers, and sections you want to preserve.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so description carries full burden. It reveals that tool fetches current content before updating for version control, which is a key behavioral trait. However, it could mention error handling or idempotency. On balance, adds value beyond schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is three concise sentences, no redundancy. Front-loaded with purpose. Could be slightly more structured but is efficient and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, description covers key aspects: update action, pre-fetch, and parameter requirements. However, it lacks information about return value or error scenarios, leaving some gaps for an agent to understand full behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, baseline 3. Description adds significant context: for 'id', explains difference from path and workflow; for 'content', specifies markdown format and replacement semantics. This enhances understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it updates note content by note id. It distinguishes from sibling tools like kibela_create_note, kibela_get_note_content, and kibela_search_notes by specifying the update action and the requirement of note ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use this tool (when you have note ID) and provides guidance for note path users: use kibela_get_note_from_path first. Also mentions the pre-fetch step for version control, indicating expected usage pattern.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: creating, retrieving by ID or path, listing personal notes, searching, and updating. No overlap or ambiguity.

Naming Consistency5/5

All tools follow a consistent 'kibela_verb_noun' pattern (e.g., kibela_create_note, kibela_search_notes), maintaining Convention throughout.

Tool Count5/5

6 tools is well within the ideal 3-15 range, covering the core note operations without being overengineered or sparse.

Completeness3/5

The set covers create, read (multiple methods), search, and update, but notably lacks a delete note tool, and does not provide a simple 'list all notes' functionality. This leaves a gap in full CRUD coverage.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kj455/mcp-kibela'

If you have feedback or need assistance with the MCP directory API, please join our Discord server