gitnotion
v1.1.0
Published
GitHub → Notion Project Intelligence — An MCP server that syncs GitHub data to Notion with AI-powered summaries
Maintainers
Readme
GitNotion
GitNotion is an MCP server that pulls data from a GitHub repo (issues, PRs, commits) and pushes it into structured Notion databases. It also calls Gemini to write weekly summaries, release notes, and contributor reports. The whole thing runs on free-tier APIs.
Built for the Notion MCP Challenge.
What it does
Eight MCP tools, accessible from any MCP client (Claude Desktop, Copilot, etc.):
- setup_workspace creates four Notion databases (Issues, PRs, Commits, Summaries) under a parent page.
- sync_issues, sync_pull_requests, sync_commits each pull data from GitHub and upsert it into the matching Notion database. Existing entries get updated instead of duplicated.
- generate_summary grabs the last week of activity, sends it to Gemini, and writes an AI summary page in Notion.
- generate_release_notes looks at merged PRs and recent commits, then produces formatted release notes.
- get_contributor_insights aggregates per-contributor stats and has Gemini write up a report.
- full_sync chains all of the above into one call.
Setup
You need four things. All free:
- GitHub token from github.com/settings/tokens
- Notion integration token from notion.so/my-integrations. After creating it, open your target page in Notion, click
•••> "Connections", and add the integration. - Gemini API key from aistudio.google.com/apikey
- Notion parent page ID. Open the page in Notion, copy the link. The 32-char hex string at the end of the URL is the page ID.
Clone the repo and install deps:
git clone https://github.com/YOUR_USERNAME/gitnotion.git
cd gitnotion
npm install
npm run buildCopy .env.example to .env and fill in the values:
GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx
GITHUB_REPO=owner/repo
NOTION_TOKEN=ntn_xxxxxxxxxxxxxxxxxxxx
NOTION_PARENT_PAGE_ID=your-page-id-here
GEMINI_API_KEY=AIzaSyxxxxxxxxxxxxxxxxxThen add GitNotion to your MCP client config. For Claude Desktop, edit claude_desktop_config.json:
{
"mcpServers": {
"gitnotion": {
"command": "node",
"args": ["/absolute/path/to/gitnotion/dist/index.js"],
"env": {
"GITHUB_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx",
"GITHUB_REPO": "owner/repo",
"NOTION_TOKEN": "ntn_xxxxxxxxxxxxxxxxxxxx",
"NOTION_PARENT_PAGE_ID": "your-page-id-here",
"GEMINI_API_KEY": "AIzaSyxxxxxxxxxxxxxxxxx"
}
}
}
}How it works
The server connects over stdio. Your AI agent calls the MCP tools by name. The typical flow:
- Run
setup_workspaceonce. It returns four database IDs. - Pass those IDs to the sync tools to populate data.
- Call the AI tools whenever you want fresh analysis.
Or just call full_sync with all four IDs and it handles everything in sequence.
Tech
TypeScript. MCP SDK for the server protocol. Octokit for GitHub. Notion SDK for the database writes. Google Generative AI SDK for Gemini calls. Nothing paid.
