Kanka MCP-Kanka API的模型上下文协议服务器
该项目提供了一个MCP(模型上下文协议)服务器,用于与 坎卡 API它允许AI助手管理您的Kanka世界构建项目中的活动、角色、地点、帖子、笔记和日记。
特性
服务器提供以下工具:
- 活动:列出所有用户活动
- 字符:列出、检索、创建、更新和删除字符
- 位置:列出、检索、创建、更新和删除位置
- 帖子:列出、检索、创建、更新和删除任何实体的帖子
- 备注:列出、检索、创建、更新和删除备注
- 期刊:列出、检索、创建、更新和删除期刊
所有创建和更新操作都能正确处理描述字段的HTML内容,并支持隐私设置。
安装
先决条件
- Python 3.10+
安装
- 克隆此存储库:
git clone https://github.com/yourusername/kanka_mcp.git
cd kanka_mcp- 安装依赖项:
pip install requests mcp[cli]或者,如果你有一个pyproject.toml文件:
pip install .配置
您需要设置 KANKA_API_KEY 使用Kanka API密钥的环境变量:
export KANKA_API_KEY=your_kanka_api_key获取您的Kanka API密钥:
- 登录您的Kanka帐户
- 转到“帐户设置”
- 导航到“API”部分
- 创建或复制您的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文件中指定的条款获得许可。
