Token导航 LogoToken导航TokenDH.com
MCP Kanka logo
办公协作stdio官方级别未说明来源级核验

MCP Kanka

MCP Server

为Kanka API提供模型上下文协议(MCP)服务器,支持对角色、地点、组织等多种实体类型的CRUD操作,适用于游戏管理和内容协作。

工具数

0

提示词数

0

GitHub Stars

4

资源数

0
PythonClaude团队协作Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ervwalter

提供方

ervwalter

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install mcp-kanka

详细介绍

MCP Kanka

用于Kanka API集成的MCP(模型上下文协议)服务器。该服务器为AI助手提供了与Kanka活动交互的工具,支持对各种实体类型(如角色、位置、组织等)进行CRUD操作。

此套餐专为满足以下需求而设计 泰格里姆 但可能对使用Kanka和MCP的其他人有用。

特性

  • 实体管理:创建、读取、更新和删除Kanka实体
  • 搜索和筛选:按名称搜索部分匹配的实体,按类型/标签/日期过滤
  • 批量操作:在单个请求中处理多个实体
  • 岗位管理:创建、更新和删除实体上的帖子(注释)
  • Markdown支持:Markdown和HTML之间的自动转换,并保留实体提及
  • 类型安全:完整的类型提示和验证
  • 客户端过滤:超过API限制的增强过滤
  • 同步支持:通过时间戳跟踪和Kanka的原生lastSync功能实现高效同步
  • 时间戳跟踪:所有实体都包括created_at和updated_at时间戳

需求

  • Python 3.10或更高版本(推荐3.13.5)
  • Kanka API代币和活动ID

安装

来自PyPI

pip install mcp-kanka

来源(使用紫外线)

git clone https://github.com/ervwalter/mcp-kanka.git
cd mcp-kanka
uv sync --all-groups
uv pip install -e .

来源(使用pip)

git clone https://github.com/ervwalter/mcp-kanka.git
cd mcp-kanka
pip install -e .

快速开始

添加到Claude桌面

  1. 设置环境变量:

- KANKA_TOKEN:您的Kanka API代币 - KANKA_CAMPAIGN_ID:您的活动ID

  1. 添加到Claude桌面配置:
{
  "mcpServers": {
    "kanka": {
      "command": "python",
      "args": ["-m", "mcp_kanka"],
      "env": {
        "KANKA_TOKEN": "your-token",
        "KANKA_CAMPAIGN_ID": "your-campaign-id"
      }
    }
  }
}

与Claude Code CLI一起使用

claude mcp add kanka \
  -e KANKA_TOKEN="your-token" \
  -e KANKA_CAMPAIGN_ID="your-campaign-id" \
  -- python -m mcp_kanka

支持的实体类型

  • 角色 -玩家角色(PC)、非玩家角色(NPC)
  • 生物 -怪物类型、动物、非独特生物
  • 位置 -地点、地区、建筑、地标
  • 组织 -行会、政府、邪教、公司
  • 种族 -物种、祖先
  • 备注 -内部内容、会议摘要、总经理笔记(默认为私人)
  • 期刊 -会议总结、叙述、编年史
  • 任务 -任务、目标、故事情节

可用工具(共9个)

实体运营

find_entities

使用全面的选项搜索和过滤实体,并同步元数据。

参数:

  • entity_type (可选):按角色、生物、地点、组织、种族、笔记、日记、任务类型进行筛选
  • query (可选):用于跨名称和内容进行全文搜索的搜索词
  • name (可选):按名称筛选(默认情况下部分匹配,例如“Test”匹配“Test Character”)
  • name_exact (可选):使用精确名称匹配而不是部分名称匹配(默认值:false)
  • name_fuzzy (可选):启用拼写公差模糊匹配(默认值:false)
  • type (可选):按用户定义的类型字段过滤(例如,“NPC”、“City”)
  • tags (可选):标签数组-返回具有所有指定标签的实体
  • date_range (可选):仅适用于日记账-按日期范围筛选 startend 日期
  • limit (可选):每页结果(默认值:25,最大值:100,全部使用0)
  • page (可选):分页页码(默认值:1)
  • include_full (可选):包括完整的实体详细信息(默认值:true)
  • last_synced (可选):ISO 8601时间戳,仅获取在此时间之后修改的实体

退货:

{
  "entities": [...],
  "sync_info": {
    "request_timestamp": "2024-01-01T12:00:00Z",
    "newest_updated_at": "2024-01-01T11:30:00Z",
    "total_count": 150,
    "returned_count": 25
  }
}

create_entities

使用markdown内容创建一个或多个实体。

参数:

  • entities:要创建的实体数组,每个实体具有:

- entity_type (必填):要创建的实体类型 - name (必填):实体名称 - entry (可选):Markdown格式的描述 - type (可选):用户定义的类型字段(例如“NPC”、“玩家角色”) - tags (可选):标记名数组 - is_hidden (可选):如果为真,则对玩家隐藏(仅限管理员)

退货: 创建的实体及其ID和时间戳的数组

update_entities

更新一个或多个现有实体。

参数:

  • updates:更新数组,每个更新包含:

- entity_id (必填):要更新的实体ID - name (必需):实体名称(Kanka API要求,即使不变) - entry (可选):以Markdown格式更新内容 - type (可选):更新类型字段 - tags (可选):更新了标签数组 - is_hidden (可选):如果为真,则对玩家隐藏(仅限管理员)

退货: 每次更新的成功/错误状态的结果数组

get_entities

使用可选帖子按ID检索特定实体。

参数:

  • entity_ids (必需):要检索的实体ID数组
  • include_posts (可选):包括每个实体的帖子(默认值:false)

退货: 包含时间戳和可选帖子的完整实体详细信息数组

delete_entities

删除一个或多个实体。

参数:

  • entity_ids (必需):要删除的实体ID数组

退货: 每次删除的成功/错误状态的结果数组

check_entity_updates

高效地检查自上次同步以来哪些实体已被修改。

参数:

  • entity_ids (必填):要检查的实体ID数组
  • last_synced (必填):ISO 8601时间戳,用于检查自

退货:

{
  "modified_entity_ids": [101, 103],
  "deleted_entity_ids": [102],
  "check_timestamp": "2024-01-01T12:00:00Z"
}

岗位操作

create_posts

向实体添加帖子(注释)。

参数:

  • posts:要创建的帖子数组,每个帖子都有:

- entity_id (必填):需附上职位的实体 - name (必填):职位名称 - entry (可选):以Markdown格式发布内容 - is_hidden (可选):如果为真,则对玩家隐藏(仅限管理员)

退货: 创建的帖子及其ID的数组

update_posts

修改现有帖子。

参数:

  • updates:更新数组,每个更新包含:

- entity_id (必填):实体ID - post_id (必填):要更新的帖子ID - name (必需):职称(API要求,即使没有变化) - entry (可选):以Markdown格式更新内容 - is_hidden (可选):如果为真,则对玩家隐藏(仅限管理员)

退货: 每次更新的成功/错误状态的结果数组

delete_posts

从实体中删除帖子。

参数:

  • deletions:删除数组,每个都有:

- entity_id (必填):实体ID - post_id (必填):要删除的帖子ID

退货: 每次删除的成功/错误状态的结果数组

搜索和筛选

MCP服务器提供增强的搜索功能:

  • 内容搜索:实体名称和内容的全文搜索(客户端)
  • 名称筛选器:精确或模糊的名称匹配
  • 型过滤器:按用户定义的类型字段筛选(例如“NPC”、“City”)
  • 标签过滤器:按标签筛选(AND逻辑-实体必须具有所有指定的标签)
  • 日期范围:按日期筛选日记账
  • 模糊匹配:可选模糊名称匹配,可实现更灵活的搜索
  • 上次同步筛选器:使用Kanka的原生lastSync参数仅获取已修改的实体

注意:内容搜索会获取所有实体并在客户端进行搜索,这对于大型广告系列可能较慢,但提供了全面的搜索功能。

同步功能

时间戳支持

所有实体包括 created_atupdated_at ISO 8601格式的时间戳,启用:

  • 跟踪实体创建或上次修改的时间
  • 实施冲突解决策略
  • 建立审计跟踪

同步元数据

find_entities 工具返回同步元数据,包括:

  • request_timestamp:提出请求时
  • newest_updated_at:来自返回实体的最新更新\_ at
  • total_count:匹配实体总数
  • returned_count:此响应中返回的数字

与lastSync高效同步

使用 last_synced 参数,仅获取特定时间后修改的实体:

# Example: Get entities modified in the last 24 hours
result = await find_entities(
    entity_type="character",
    last_synced="2024-01-01T00:00:00Z"
)

批量更新检查

check_entity_updates 该工具有效地检查哪些实体已被修改:

# Check which of these entities have changed
result = await check_entity_updates(
    entity_ids=[101, 102, 103],
    last_synced="2024-01-01T00:00:00Z"
)
# Returns: modified_entity_ids, deleted_entity_ids, check_timestamp

发展

设置

# Clone the repository
git clone https://github.com/ervwalter/mcp-kanka.git
cd mcp-kanka

# Install development dependencies
make install

运行测试

# Run all tests
make test

# Run with coverage
make coverage

# Run all checks (lint + typecheck + test)
make check

代码质量

# Format code
make format

# Run linting
make lint

# Run type checking
make typecheck

程序化使用

除了作为MCP服务器外,此包还提供了一个可以直接在Python脚本中使用的操作层:

from mcp_kanka.operations import create_operations

# Create operations instance
ops = create_operations()

# Find entities
result = await ops.find_entities(
    entity_type="character",
    name="Moradin"
)

# Create an entity
results = await ops.create_entities([{
    "entity_type": "character",
    "name": "New Character",
    "type": "NPC",
    "entry": "A mysterious figure"
}])

这使得构建同步脚本、批量操作或其他与Kanka交互的工具变得容易。

配置

MCP服务器需要:

  • KANKA_TOKEN:您的Kanka API代币
  • KANKA_CAMPAIGN_ID:您的Kanka活动ID

资源

服务器提供 kanka://context 解释Kanka的结构和能力的资源。

版本历史记录

v0.1.0

  • 初始版本
  • Kanka实体的完整CRUD操作
  • 批量操作支持
  • Markdown/HTML转换,保留实体提及
  • 同步支持时间戳跟踪
  • 全面的搜索和过滤功能

许可证

麻省理工学院

目录标签

目录标签

PythonClaude团队协作游戏管理本地部署内容协作API集成CRUD操作实体管理

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotokenremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP