Commit Canvas MCP
Analyzes a GitHub repository and user to filter meaningful commits and generate a Cursor Canvas (.canvas.tsx) inclusion tree.
README
Commit Canvas MCP
GitHub 저장소 URL과 GitHub 사용자 ID를 받아 해당 사용자의 의미 있는 커밋을 필터링하고 Cursor Canvas용 .canvas.tsx 포함관계 트리를 생성한다.
실행
uv sync
export GITHUB_TOKEN=...
export OPENAI_API_KEY=... # mode="llm"일 때만 필요
uv run commit-canvas-mcp
배포 전 로컬 MCP/Codex 검증 절차는 DEPLOYMENT_GUIDE.md를 따른다.
MCP endpoint:
http://localhost:8000/mcp
FastAPI endpoint:
uv run commit-canvas-api
curl -X POST http://localhost:8000/analyze \
-H 'content-type: application/json' \
-d '{
"repo_url": "https://github.com/Pommit/pommit",
"github_id": "jongphago",
"branch": "dev",
"commit_list_path": "docs/jongphago-분석-커밋-목록.md",
"expected_count": 68,
"mode": "llm",
"output_dir": "canvases"
}'
MCP Tool
generate_commit_canvas
입력:
repo_url: GitHub 저장소 URL 또는owner/repogithub_id: GitHub author loginbranch: 기본값devcommit_list_path: 선택. 필터링된 커밋 목록 Markdown. 지정하면 문서의 No/SHA를 전수 배치 대상으로 사용expected_count: 선택. 전수 배치 검증 기준 커밋 수output_dir: 기본값canvasesoutput_filename: 생략 시<github_id>-commit-inclusion-tree-codex.canvas.tsxtree_json_filename: 선택. 검증된 tree JSON 파일명codex_html_filename: 선택. Codex에서 열 수 있는 정적 HTML 파일명mode:heuristic또는llm. 기본값heuristicllm_model: 선택. 생략 시OPENAI_MODEL또는gpt-5-minimax_repair_attempts: LLM JSON 검증 실패 시 repair 재시도 횟수. 기본값 2evidence_json_filename: 선택. LLM 입력 근거 bundle 저장 파일명max_commits: 디버그용 상한include_tsx: 응답에 TSX 본문 포함 여부
출력:
- 저장소, 브랜치, 작성자
- author 커밋 수
- 필터링 후 커밋 수
- 제외 사유별 카운트
- theme/node/commit 트리
- 생성된
.canvas.tsx경로 - 생성된 tree JSON 경로
- 생성된 evidence JSON 경로
- 생성된 Codex-openable
.codex.html경로 - 전수 배치 검증 결과
필터
- GitHub author login 일치
- merge 제외
- revert 제외
.py변경 없음 제외.py변경량 5 미만 제외- docs only, CI only, config only, binary only 제외
fixup,squash,wip,temp,debug제외chore:,docs:,etc:,test:제목 제외- 분할·중복 제목 제외
그룹 기준
commit_list_path가 없는 기본 모드는 다음 필터를 먼저 적용한다.
- 변경 파일의 주요 패키지 경로
- associated PR title
- commit body, PR title/body의 issue 번호
- commit title type
commit_list_path가 있으면 성공한 Cursor 대화의 절차처럼 이미 필터링된 Markdown 목록을 권위 입력으로 사용한다.
- Markdown의 No, 날짜, SHA, 제목을 파싱한다.
- SHA별 commit detail과 associated PR을 조회한다.
- commit body, PR title/body에서 issue 번호를 수집한다.
- issue title/body를 조회해 theme/node 근거로 사용한다.
- recursive theme/node/commit tree를 만든다.
- 배치 수, No 중복, No 누락, SHA prefix를 검증한다.
.canvas.tsx와 검증용.json을 함께 저장한다.
현재는 외부 LLM 없이 동작하는 결정적 구현이다. transcript의 수작업 수준 의미 재분류를 완전히 복제하려면 issue/body 근거를 넣은 LLM classification 단계를 build_themes 앞에 추가해야 한다.
mode="llm"은 이 단계를 OpenAI Responses API structured JSON 출력으로 수행한다.
LLM 모드 처리:
- evidence bundle 생성: commit detail, changed files, stats, PR title/body, issue title/body, issue refs graph.
- structured JSON schema로 theme/node/children/commit No 배치 생성.
- 원본 commit record에서 SHA/date/PR/refs 복원.
- 배치 수, No 중복, No 누락, SHA prefix 검증.
- 검증 실패 시 오류와 이전 tree를 넣어 repair loop 실행.
.canvas.tsx,.json,.evidence.json저장.
출력 파일
MCP 마지막 단계는 같은 output_dir에 네 파일을 저장한다.
.canvas.tsx: Cursor Canvas에서 여는 원본 Canvas 컴포넌트.codex.html: Codex 또는 일반 브라우저에서 여는 정적 HTML.json: 검증된 theme/node/commit tree.evidence.json: LLM과 검증에 사용한 근거 bundle
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。