Kanka API模型上下文协议服务器

为Kanka API提供模型上下文协议服务器,用于管理世界构建项目中的战役、角色、地点、帖子、笔记和日志。

  • by ymgeva
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ymgeva/kanka-mcp

使用说明

Kanka MCP-Kanka API的模型上下文协议服务器

该项目提供了一个MCP(模型上下文协议)服务器,用于与 坎卡 API它允许AI助手管理您的Kanka世界构建项目中的活动、角色、地点、帖子、笔记和日记。

特性

服务器提供以下工具:

  • 活动:列出所有用户活动
  • 字符:列出、检索、创建、更新和删除字符
  • 位置:列出、检索、创建、更新和删除位置
  • 帖子:列出、检索、创建、更新和删除任何实体的帖子
  • 备注:列出、检索、创建、更新和删除备注
  • 期刊:列出、检索、创建、更新和删除期刊

所有创建和更新操作都能正确处理描述字段的HTML内容,并支持隐私设置。

安装

先决条件

  • Python 3.10+

安装

  1. 克隆此存储库:

    git clone https://github.com/yourusername/kanka_mcp.git
    cd kanka_mcp
    
  2. 安装依赖项:

    pip install requests mcp[cli]
    

    或者,如果你有一个pyproject.toml文件:

    pip install .
    

配置

您需要设置 KANKA_API_KEY 使用Kanka API密钥的环境变量:

export KANKA_API_KEY=your_kanka_api_key

获取您的Kanka API密钥:

  1. 登录您的Kanka帐户
  2. 转到“帐户设置”
  3. 导航到“API”部分
  4. 创建或复制您的API令牌

用法

运行MCP服务器

直接使用以下命令运行服务器:

python kanka_mcp.py

添加到MCP服务器配置

将以下内容添加到MCP服务器配置中:

"kanka": {
    "command": "python",
    "args": [
        "FULL_PATH_TO_SCRIPT_FOLDER/kanka_mcp.py"
    ],
    "env": {
        "KANKA_API_KEY": "YOUR_KANKA_API_KEY"
    }
}

替换 FULL_PATH_TO_SCRIPT_FOLDER 其中包含目录的绝对路径 kanka_mcp.py 脚本,以及 YOUR_KANKA_API_KEY 使用您的实际Kanka API密钥。

可用工具

活动

  • show_campaigns():列出用户有权访问的所有活动。

角色

  • list_characters(campaign_id):列出活动中的所有角色。
  • get_character(campaign_id, character_id):通过ID获取特定字符。
  • create_character(campaign_id, name, ...):创建新角色。
  • update_character(campaign_id, character_id, ...):更新现有角色。
  • delete_character(campaign_id, character_id):删除字符。

位置

  • list_locations(campaign_id):列出活动中的所有位置。
  • get_location(campaign_id, location_id):通过ID获取特定位置。
  • create_location(campaign_id, name, ...):创建新位置。
  • update_location(campaign_id, location_id, ...):更新现有位置。
  • delete_location(campaign_id, location_id):删除位置。

帖子

  • list_posts(campaign_id, entity_id):列出实体的所有帖子。
  • get_post(campaign_id, entity_id, post_id):通过ID获取特定帖子。
  • create_post(campaign_id, entity_id, name, ...):创建新帖子。
  • update_post(campaign_id, entity_id, post_id, ...):更新现有帖子。
  • delete_post(campaign_id, entity_id, post_id):删除帖子。

备注

  • list_notes(campaign_id):列出活动中的所有笔记。
  • get_note(campaign_id, note_id):按ID获取特定注释。
  • create_note(campaign_id, name, ...):创建新笔记。
  • update_note(campaign_id, note_id, ...):更新现有注释。
  • delete_note(campaign_id, note_id):删除注释。

期刊

  • list_journals(campaign_id):列出活动中的所有期刊。
  • get_journal(campaign_id, journal_id):按ID获取特定日记。
  • create_journal(campaign_id, name, ...):创建新日记。
  • update_journal(campaign_id, journal_id, ...):更新现有日记。
  • delete_journal(campaign_id, journal_id):删除日记。

许可证

此项目根据LICENSE文件中指定的条款获得许可。