MCP + Notion: agent aktualizujący runbooki
Konfigurujemy MCP dla GitHuba i Notion, aby agent czytał pull requesty i automatycznie dopisywał wnioski do bazy 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 artykuł?
Udostępnij go osobom, którym ten materiał 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.
MCP w OpenAI Agents SDK: integracja danych firmowych
Praktyczny przewodnik po MCPServerStreamableHttp i MCPServerStdio z GitHubem, Postgresem i Notion jako źródłami danych dla agentów AI.
Automatyzacja frontendu: Plan Mode i hook PostToolUse
Sprawdź, jak skonfigurować Claude Code, aby planował zmiany, formatował kod, uruchamiał `astro check` i wskazywał brakujące testy.