Notion标签迁移工具

一个用于将Notion数据库中的多选标签列迁移到统一的分类和标签列的工具,适用于需要整理长期积累数据的用户。

  • by mirinodev
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 camoneart/notion-tag-migrate-mcp

使用说明

概念标签迁移MCP

模型上下文协议(MCP)服务器,用于将Notion数据库标签从多个多选列迁移到统一的类别和标签列。

🎯 目的

此MCP服务器有助于将现有的具有分散的多选标签列的Notion数据库迁移到一个干净、统一的标签系统中,该系统具有:

  • 类别:用于主要分类的单选列
  • 标签:所有合并标签的多选列

非常适合组织具有3-4年累积数据的“第二大脑”系统等长时间运行的数据库。

🚀 快速开始

先决条件

  • Node.js 18+
  • Notion集成令牌
  • 要迁移的数据库ID

安装

# Install dependencies
pnpm install

# Copy environment template
cp .env.example .env

# Edit .env with your Notion token and database ID
# Then build the project
pnpm build

配置

编辑 .env 使用您的设置:

NOTION_TOKEN=secret_your_notion_integration_token
DATABASE_ID=your-database-id-here

🛠️ MCP工具

该服务器提供5个主要工具:

1. analyze_database

分析数据库结构并提供迁移建议。

{
  database_id: string,
  notion_token?: string  // optional if set in env
}

2. dry_run

预览迁移更改而不执行它们。

{
  database_id: string,
  notion_token?: string,
  limit?: number,        // max pages to analyze (default: 10)
  config_path?: string   // custom config file
}

3. migrate_pages

执行实际迁移。

{
  database_id: string,
  notion_token?: string,
  batch_size?: number,   // pages per batch (default: 10)
  limit?: number,        // max pages to migrate
  from_page_id?: string, // resume from specific page
  dry_run?: boolean      // preview mode
}

4. get_progress

检查当前迁移进度。

{
  migration_id?: string  // optional migration ID
}

5. backup_database

在迁移之前创建备份。

{
  database_id: string,
  notion_token?: string,
  format?: "json" | "csv" | "both"  // default: json
}

📋 迁移工作流

  1. 分析: analyze_database 了解您的数据
  2. 备份: backup_database 为了安全
  3. 预览: dry_run 查看拟议的更改
  4. 迁移: migrate_pages 执行
  5. 监视器: get_progress 跟踪状态

使用Claude代码的示例用法

# Analyze database structure
mcp__notion-tag-migrate__analyze_database database_id="your-db-id"

# Create backup
mcp__notion-tag-migrate__backup_database database_id="your-db-id" format="both"

# Preview changes (first 10 pages)
mcp__notion-tag-migrate__dry_run database_id="your-db-id" limit=10

# Execute migration
mcp__notion-tag-migrate__migrate_pages database_id="your-db-id" batch_size=5

# Check progress
mcp__notion-tag-migrate__get_progress

⚙️ 配置

默认列映射

OLD_MULTI_SELECT_COLUMNS = [
  "AI labels", "MCP labels", "AI Agents",
  "Site labels", "Web Dev labels", "Brand labels"
]
CATEGORY_SOURCE_COLUMNS = ["Category", "カテゴリ"]
NEW_CATEGORY_COLUMN = "Category"
NEW_TAG_COLUMN = "Tag"

安全功能

  • 标签标准化:删除重复项、规范间距、处理全角字符
  • 速率限制:内置延迟和重试逻辑
  • 简历支持:从移民中断的地方继续
  • 进度跟踪:实时状态和错误报告
  • 备份集成:自动数据保存

📊 报告和输出

所有输出都保存到:

  • ./reports/:模拟运行报告和迁移摘要(JSON/CSV)
  • ./backups/:数据库备份(JSON/CSV)
  • ./logs/:迁移日志
  • ./migration-state/:进度跟踪

🔧 发展

# Development mode
pnpm dev

# Build
pnpm build

# Lint
pnpm lint

# Type check
pnpm typecheck

📝 许可证

麻省理工学院

🤝 贡献

欢迎在 GitHub存储库


内置于❤️ 适用于管理复杂知识库的Notion高级用户。