enakoneschniy/claude-dev-stack/notion-importer
- community
Checking that the SKILL.md file is still in the repository.
Import Notion pages into project vault via MCP. Trigger when user wants to import or sync Notion content into the vault: "import notion", "notion docs", "sync notion", "импортируй notion", "обнови notion", "sync notion pages", "обнови notion docs". Uses the claude.ai Notion MCP server (notion-fetch tool) directly from a live Claude session. Does NOT spawn subprocesses.
Install
npx vskill@latest install enakoneschniy/claude-dev-stack/notion-importerSKILL.md
Notion Importer Skill
Import Notion pages into the project vault using the claude.ai Notion MCP server. This skill calls MCP tools directly from a live Claude session — no subprocess needed.
Trigger Phrases
English: "import notion", "notion docs", "sync notion", "sync notion pages", "import notion pages" Russian: "импортируй notion", "обнови notion", "обнови notion docs", "синхронизируй notion"
Required Setup
The project must have .claude/notion_pages.json configured. Run claude-dev-stack notion add <url> to add pages.
Import Steps
- Read config: Load
.claude/notion_pages.jsonto get the list of pages.
- Fetch each page: For each page in
config.pages, call thenotion-fetchMCP tool
with the page_id to retrieve markdown content. Use the MCP tool directly:
Or use notion-search MCP tool if you need to locate pages by title.
- Determine vault path: Use the
vault_pathfield from the page config
(default: docs/notion). Resolve against the vault project directory: vault/projects/{project-slug}/docs/notion/
- Write with provenance: Each imported file gets a frontmatter stamp:
- 3-way hash check (overwrite protection, per D-06):
- If file does not exist → create it with stamp (status: created)
- If
notion_content_hashin frontmatter matches hash of new content → skip (status: unchanged) - If local body hash matches stored
notion_content_hash(no local edits) → overwrite in place (status: updated) - If local body hash differs from stored
notion_content_hash(local edits detected) → write{filename}.notion-update.mdsibling and warn (status: conflict)
- Filename convention: Use the page title for the filename, cleaned with the same rules
as cleanNotionFilename() in lib/docs.mjs — strip Notion UUID suffixes, lowercase, replace spaces with hyphens. Example: My Page abc123... → my-page.md
- Report results: Print a summary of created/updated/unchanged/conflict counts.
Important Notes
- Use MCP tools directly — call
notion-fetchornotion-searchfrom the Claude session.
Do NOT spawn node, claude mcp call, or any subprocess.
- The
notion_pages.jsonconfig is per-project (.claude/notion_pages.json). - After import, existing
notebooklm syncpicks up the new files automatically. - If the Notion MCP server is not configured, run:
claude mcp add notion - Check MCP status:
claude mcp list
Example Session
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/notion-importer/SKILL.md
Popularity
- Repository stars
- 5
- 7-day trend score
- 9
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/enakoneschniy/claude-dev-stack/notion-importer)