Notion MCP Challenge Entry

Your Codebase,
Documented by AI.
Automatically.

Notican connects GitHub to Notion via Claude AI. Every PR, commit, and issue becomes living documentation — zero manual work.

⚡ Get Started See how it works → GitHub
Live pipeline
🐙 GitHub PRs · Issues · Pushes
webhook
Notican Event processor
analyze
🤖 Claude AI Sonnet 4.6
write
📋 Notion Living docs
5
Auto-maintained databases
4
GitHub event types handled
0
Manual documentation steps
60s
Notion → GitHub sync interval

Four events. One system.

Notican listens to your GitHub activity and decides what to document — automatically.

01 / PULL REQUEST
🔀

PR merged to main

Claude reads the diff, generates a Changelog entry and — for significant architecture changes — an Architecture Decision Record (ADR).

02 / PUSH
🚀

Code pushed to main

API file changes update the API Reference. Infrastructure changes (Dockerfile, k8s, Terraform) trigger Runbook creation or updates.

03 / ISSUES
🐛

GitHub issue opened

A linked task is created in the Notion Tasks database. When the issue closes, the task status syncs automatically.

04 / NOTION → GITHUB
🔁

Bidirectional sync

Tag any Notion task with github_sync and Notican automatically creates a GitHub issue with full context.

Built for engineering teams.

Everything you need to keep your documentation alive without touching it.

🧠

Claude-powered diff analysis

Claude Sonnet 4.6 reads every diff and decides what type of documentation to generate — not just templated output, but contextually accurate docs.

AI-native
🔒

Idempotent writes

Every Notion page is keyed by a GitHub external ID (PR number, commit SHA, issue number). Re-processing an event updates the page, never duplicates it.

Reliable

Webhook-first architecture

Real-time processing. HMAC signature verification on every request. The server always returns 200 to GitHub — no retries, no duplicate events.

Production-ready
🔄

Bidirectional sync

Notion isn't just a write target. Tasks flow from Notion to GitHub Issues automatically, making Notion the single source of truth for your team.

Two-way
🎯

Smart file classification

Pattern-based routing distinguishes API changes from infra changes from architecture changes. Each triggers the right doc type automatically.

Intelligent
🧪

Test-driven development

80% coverage enforced in CI. Every layer independently testable. Fixtures for all event types. No mocking of real external calls in tests.

TDD

Running in minutes.

Three commands to get your team's documentation pipeline live.

notican — zsh
# 1. Clone and install
$ git clone https://github.com/flightlesstux/notican && cd notican
$ npm install
# 2. Configure your tokens
$ cp .env.example .env
$ vim .env # add GitHub, Notion, Anthropic tokens
# 3. Create Notion workspace structure
$ npm run setup:notion
✓ Created: Architecture Decisions database
✓ Created: Changelog database
✓ Created: API Reference database
✓ Created: Runbooks database
✓ Created: Tasks database
# 4. Start the server
$ npm run dev
⚡ Notican running on http://localhost:4000
📡 Webhook endpoint: POST /webhooks/github
🔄 Notion watcher: polling every 60s

Clean layers. Clear boundaries.

Each module has a single responsibility. No layer crosses into another's domain.

GitHub  ──webhook──►  src/server/        HMAC verification, routing
                           │
                           ▼
                      src/handlers/      Parse event, decide what to generate
                     ┌─────┴──────┐
                     │            │
                     ▼            ▼
             src/processors/   src/github/    Claude AI · GitHub API
             claude.ts         client.ts
                     │
                     ▼
               src/notion/        Write structured docs (idempotent)
               client.ts          Markdown → Notion blocks

Notion  ◄──poll 60s──  src/watcher/       Tasks with github_sync=true
                           │
                           ▼
                      src/github/        Creates GitHub issue, marks task synced

Five living databases.

Auto-created by npm run setup:notion. Maintained forever after.

📐
Architecture Decisions
ADRs generated from significant PRs
📋
Changelog
Auto-entry on every merge to main
📡
API Reference
Updated when API files change
📖
Runbooks
Generated from infra changes
Tasks
Bidirectional sync with GitHub Issues

Stop writing docs.
Start shipping.

Your documentation writes itself. Your team stays in flow.

⚡ Set up in 5 minutes Learn more →