MCP + Notion: agent, który aktualizuje runbooki z historii PR
Konfigurujemy MCP dla GitHuba i Notion, aby agent AI czytał pull requesty i automatycznie dopisywał Lessons Learned w bazie runbooków.
1. Cel i architektura
Chcemy, by agent AI po każdym merge’u:
- Pobierał najnowsze PR-y z GitHuba.
- Wyciągał kluczowe wnioski.
- Aktualizował stronę „Runbook: Lessons Learned” w Notion.
Model Context Protocol (MCP) umożliwia agentowi pracę z obydwoma narzędziami bez dodatkowych wrapperów.
2. Konfiguracja MCP
Dodaj do projektu .mcp.json (zgodnie z dokumentacją JS SDK):
{
"mcpServers": {
"github": {
"transport": "http",
"url": "https://mcp.github.com",
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
},
"toolFilter": ["list_pull_requests", "get_pull_request"]
},
"notion": {
"transport": "http",
"url": "https://mcp.notion.com/mcp",
"env": {
"NOTION_TOKEN": "${NOTION_TOKEN}"
}
}
}
}
toolFilter ogranicza GitHub MCP do niezbędnych funkcji.
3. Agent analityk
import { Agent, MCPServerStreamableHttp } from "@openai/agents";
const githubServer = new MCPServerStreamableHttp({
name: "github",
url: "https://mcp.github.com",
cacheToolsList: true,
});
const notionServer = new MCPServerStreamableHttp({
name: "notion",
url: "https://mcp.notion.com/mcp",
cacheToolsList: true,
});
const runbookMaintainer = new Agent({
name: "Runbook Maintainer",
instructions: `
1. Pobierz ostatnie zmergowane PR-y.
2. Przeanalizuj sekcję description i diff.
3. Wyciągnij Lessons Learned i zapisz w Notion.
`,
mcpServers: [githubServer, notionServer],
});
4. Pozyskanie PR-ów i generowanie wniosków
const result = await runbookMaintainer.run({
input: `
Use github to list merged pull requests from the last 3 days in repo org/repo.
Summarize each into lessons learned.
`,
});
console.log(result.finalOutput);
result.newItems pokaże, które narzędzia MCP zostały wykorzystane. Jeśli w repozytorium jest dużo PR-ów, możesz poprosić agenta, aby przefiltrował te oznaczone etykietą runbook.
5. Aktualizacja Notion
Następnie poproś agenta:
Use notion to append the lessons to page https://notion.site/runbook-lessons with a table containing:
- PR title
- Summary
- Lesson Learned
MCP Notion umożliwia odwołania do większości typów bloków; jeśli Twój serwer MCP wymaga konkretnych nazw narzędzi (np. append_blocks), dodaj je w instrukcjach.
6. Automatyzacja harmonogramu
Połącz agenta z cronem lub pipeline CI:
#!/bin/bash
set -e
claude "Run runbook maintainer: summarize merged PRs and update Notion."
Możesz też użyć Runner.run_streamed, aby wizualizować postęp (np. logi: „Pobrano PR #245”, „Dodano wpis w Notion”).
7. Wskazówki
- Inwaliduj cache – po dodaniu nowych narzędzi MCP użyj
server.invalidateToolsCache(). - Walidacja – dodaj guardrail w agencie, aby sprawdzał, czy pole Lesson Learned nie jest puste.
- Security – trzymaj tokeny w
.envi nie commituj ich.
Dzięki MCP agent samodzielnie łączy GitHub i Notion: może codziennie wzbogacać runbook o świeże wnioski bez udziału człowieka.
📚 Dokumentacja i Zasoby
Oficjalna Dokumentacja
Powiązane Artykuły
Podobał Ci się ten tutorial?
Podziel się nim ze znajomymi i kolegami, którym może się przydać!
📚 Powiązane Artykuły
OpenAI Agents JS jako router zadań dla Claude Code
Pokazujemy, jak agent w TypeScripcie triage’uje zadania, wybiera właściwego specjalistę i przekazuje je do Claude Code przez asTool i hooki.
Integracja agentów z danymi firmowymi przez MCP w OpenAI Agents SDK
Praktyczny przewodnik po MCPServerStreamableHttp i MCPServerStdio: GitHub, Postgres i Notion jako źródła danych dla agentów AI.
Power-user workflow: Extended Thinking Megathink, Sessions i approvals
Przewodnik dla zaawansowanych użytkowników Claude Code: jak łączyć najdłuższe tryby myślenia, zapisy stanu i mechanizm approvals w złożonych projektach.