概念任务MCP
使用Notion API的Task管理模型上下文协议(MCP)服务器。 AI助手(Claude等)可以直接查看和管理团队的Notion Task DB。
______________________________________________________________________
目录
______________________________________________________________________
技术堆栈
| 区分 | 技术 | 版本 | 说明 |
|---|---|---|---|
| 语言 | Python | >=3.11 | async/await,利用类型提示 |
| MCP-SDK | mcp>=1.0.0 | Model Context Protocol官方Python SDK | |
| Notion SDK | notion-client | >=2.0.0 Notion官方Python SDK(async支持) | |
| 验证 | Pydantic | >=2.0.0数据模型和验证 | |
| 环境 | python-dotenv>=1.0.0环境变量管理 | ||
| 构建 | hatchling | –PEP517构建后端 |
开发依赖性
| 区分 | 技术 | 说明 |
|---|---|---|
| 测试 pytest,pytest-asyncio支持异步测试 | ||
| 类型检查 检查静态类型mypy | ||
| 棉绒 | ruff | 快速Python Linter |
______________________________________________________________________
动作方式
┌─────────────────┐ MCP Protocol ┌─────────────────┐ Notion API ┌─────────────────┐
│ MCP Client │ ◄──────────────────► │ Notion Task │ ◄────────────────► │ Notion DB │
│ (Claude Desktop │ (stdio/JSON) │ MCP Server │ (HTTPS) │ (Task 관리) │
│ Claude Code) │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘- MCP客户端 (Claude Desktop、Claude Code等)通过MCP协议向服务器请求工具调用
- MCP服务器解析请求并通过Notion API操作DB
- 将结果以JSON格式返回到MCP Client
- AI助手解释结果并回复用户
MCP(模型上下文协议)란?
Anthropic开发的AI助手和外部工具之间的标准通信协议。 通过该协议,Claude可以安全地与Notion、GitHub、Slack等各种服务进行交互。
______________________________________________________________________
要求
- python:3.11或更高版本
- Notion帐户:Task DB所在的工作空间
- 概念整合:API访问的内部集成
- MCP客户端:Claude Desktop或Claude Code
______________________________________________________________________
安装
1.存储库克隆
git clone
cd notion_task_mcp2.创建虚拟环境(建议)
# uv 사용 시 (권장)
uv venv
source .venv/bin/activate # macOS/Linux
# .venv\Scripts\activate # Windows
# 또는 venv 사용 시
python -m venv .venv
source .venv/bin/activate3.安装软件包
# uv 사용 시 (권장)
uv pip install -e .
# pip 사용 시
pip install -e .4.确认安装
notion-task-mcp --help
# 또는
python -m notion_task_mcp.server______________________________________________________________________
设置
1.创建Notion Integration
- 概念整合 连接页面
- +新集成 点击
- 设置:
- 名字: Task MCP (所需名称) - 关联工作空间:选择Task DB所在的工作空间 - 能力: - ✅ 阅读内容 - ✅ 更新内容 - ✅ 插入内容
- 提交 → 内部整合秘密 复制(稍后使用)
2.确认数据库ID
从Notion打开Task DB页面→从URL提取数据库ID:
https://www.notion.so/workspace/1234567890abcdef1234567890abcdef?v=...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
이 부분이 Database ID3.向Integration授予数据库访问权限
重要信息:如果忽略此步骤,API调用将失败!
- 在Notion中打开Task DB页面
- 右上角
···点击 - 连接 → 连接到 →选择创建的集成
______________________________________________________________________
MCP客户端设置
核心:此处设置Notion API Key和Database ID。
克劳德桌面版
设置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"notion-task": {
"command": "/path/to/.venv/bin/notion-task-mcp",
"env": {
"NOTION_API_KEY": "secret_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"NOTION_DATABASE_ID": "1234567890abcdef1234567890abcdef"
}
}
}
}提示: command请使用虚拟环境中的可执行文件绝对路径。克劳德代码
.claude/settings.json 或全局设置(~/.claude/settings.json):
{
"mcpServers": {
"notion-task": {
"command": "notion-task-mcp",
"env": {
"NOTION_API_KEY": "secret_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"NOTION_DATABASE_ID": "1234567890abcdef1234567890abcdef"
}
}
}
}验证设置
在Claude中测试:
"Notion Task 목록을 보여줘"
"진행 중인 Task가 뭐가 있어?"______________________________________________________________________
交付工具
“工具”“说明”“主要参数” |------|------|--------------| | get_task |查看Task单件| task_id | | list_tasks |查看Task列表| status, task_type, assignee, priority, labels, services、日期范围等| | create_task 创建Task| title (必需), task_type, status, priority, assignee, labels 等| | update_task |修改Task| task_id (必需),要修改的字段| | delete_task |删除Task(存档)| task_id | | batch_update_status |批量更改多个Task状态| task_ids, status | | batch_update_assignee |批量更改多个Task联系人| task_ids, assignee |
使用示例
# 조회
"오늘 마감인 Task 목록 보여줘"
"높은 우선순위 Task 중 진행 중인 것들 알려줘"
# 생성
"새 Task 만들어줘: API 문서 작성, 우선순위 높음, 라벨은 문서"
# 수정
"TASK-123 상태를 완료로 변경해줘"
# 일괄 처리
"TASK-001, TASK-002, TASK-003 담당자를 홍길동으로 변경해줘"______________________________________________________________________
Task DB模式
MCP期待的Notion DB属性:
属性名Notion类型必需说明 |--------|-------------|------|------| |No Unique ID|-|自动生成ID| |标题| Title | Task标题| | 타입 | 选择|-|任务、史诗、问题、项目| 状态状态-待办事宜/正在处理/完成组 |优先级| Select |–低、中、高 负责人Person负责人 创建者Created by--创建者(自动) 开始日期Date--起始日期 结束日期Date-|结束日期| |标签| Multi-select--|分类标签| |服务| Multi-select|-|服务/域| |父项|关系(Self)--|父任务| |子体| Relation(Self)--|子Task |
状态组
할일 (Todo)
├── 보류
└── 시작전
진행 중 (In Progress)
└── 진행중
완료 (Done)
├── 완료
├── 배포됨
└── 보관______________________________________________________________________
开发指南
设置开发环境
# 개발 의존성 포함 설치
uv pip install -e ".[dev]"本地测试环境变量(仅限开发人员)
只有在没有MCP客户端的情况下直接运行或测试服务器时才需要:
cp .env.example .env
# .env 파일에 NOTION_API_KEY, NOTION_DATABASE_ID 입력代码质量检查
# 타입 체크
mypy src
# 린트
ruff check src
# 린트 자동 수정
ruff check --fix src测试
# 통합 테스트 실행 (실제 Notion API 사용)
# .env 설정 필요
pytest tests/ -v项目结构
notion_task_mcp/
├── src/notion_task_mcp/
│ ├── __init__.py
│ ├── server.py # MCP 서버 엔트리포인트
│ ├── notion_client.py # Notion API 래퍼
│ ├── models.py # Pydantic 데이터 모델
│ └── tools/
│ ├── __init__.py
│ └── task_tools.py # MCP Tool 정의
├── tests/
│ └── test_integration.py
├── pyproject.toml
├── .env.example
└── README.md______________________________________________________________________
故障射击
“需要NOTION_API_KEY”错误
- MCP客户端设置文件的
env在节中NOTION_API_KEY验证是否正确输入 - 保存配置文件后重新启动Claude Desktop/Code
“Could not find database”错误
- 验证数据库ID是否正确(从URL中准确提取)
- 验证Integration是否已连接到该数据库
MCP服务器未连接
notion-task-mcp直接在终端上检查命令是否运行- 重新启动Claude Desktop/Code
- 配置文件中的
command验证路径是否正确
Rate Limit错误
Notion API的平均限制为3 request/sec。 建议在处理大量Task时使用批处理工具。
______________________________________________________________________
______________________________________________________________________
克劳德代码技能(任务技能)
除了MCP服务器之外,Claude Code还提供了 任务技能提供。
快速开始
# 1. Repository 클론
git clone git@github.com:wirobotics/notion_task_mcp.git
cd notion_task_mcp
# 2. 설치 (API Key, DB ID, 사용자 정보 입력)
./install.sh
# 3. Claude Code 재시작 후 사용使用示例
"진행중인 Task"
"Task 만들어줘"
"WIRB-123 완료"
"내 Project 알려줘"Skill管理
# 사용자 정보 재설정
~/.claude/skills/task/setup.sh
# 삭제
~/.claude/skills/task/uninstall.sh有关详细信息,请访问 任务/ 请参考文件夹。
______________________________________________________________________
