mcp-server-google-calendar
If you are the rightful owner of mcp-server-google-calendar and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
MCP ๊ธฐ๋ฐ์ Google Calendar ํตํฉ ์๋ฒ๋ก, Claude Desktop๊ณผ ๊ฐ์ MCP ํด๋ผ์ด์ธํธ์์ Google Calendar์ ์ผ์ ์ ์ถ๊ฐํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
MCP Google Calendar Server
MCP(Model Context Protocol) ๊ธฐ๋ฐ์ Google Calendar ํตํฉ ์๋ฒ์ ๋๋ค. Claude Desktop๊ณผ ๊ฐ์ MCP ํด๋ผ์ด์ธํธ์์ Google Calendar์ ์ผ์ ์ ์ถ๊ฐํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
๊ธฐ๋ฅ
- Google OAuth 2.0 ์ธ์ฆ
- Google Calendar ์ผ์ ์ถ๊ฐ
- Google Calendar ์ผ์ ์กฐํ (๊ธฐ๊ฐ๋ณ ์กฐํ ์ง์)
- ์ค๋ ๋ ์ง ์กฐํ
- ํ๊ตญ ์๊ฐ๋(KST) ์ง์
- ์์ธํ ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ๋ก๊น
์ค์น ๋ฐฉ๋ฒ
- ์ ์ฅ์ ํด๋ก
git clone [repository-url]
cd mcp-server-google-calendar
- ์์กด์ฑ ์ค์น
npm install
- ํ๊ฒฝ ๋ณ์ ์ค์
.env
ํ์ผ์ ์์ฑํ๊ณ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํฉ๋๋ค:
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
Google Cloud Console ์ค์
- Google Cloud Console์์ ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค.
- Google Calendar API๋ฅผ ํ์ฑํํฉ๋๋ค.
- OAuth 2.0 ํด๋ผ์ด์ธํธ ID๋ฅผ ์์ฑํฉ๋๋ค:
- ์ ํ๋ฆฌ์ผ์ด์ ์ ํ: "๋ฐ์คํฌํฑ ์ฑ"
- ์์ฑ๋ ํด๋ผ์ด์ธํธ ID์ ์ํฌ๋ฆฟ์
.env
ํ์ผ์ ์ค์
Claude Desktop ์ฐ๋ ์ค์
-
Claude Desktop ์ค์น
- Claude Desktop ๋ค์ด๋ก๋
- MCP ๊ธฐ๋ฅ์ ์น ๋ฒ์ ์ด ์๋ ๋ฐ์คํฌํฑ ์ฑ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
-
MCP ์๋ฒ ์ค์
~/Library/Application Support/Claude/claude_desktop_config.json
ํ์ผ์ ์์ฑํ๊ณ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํฉ๋๋ค:
{ "mcp-server-google-calendar": { "command": "/usr/local/bin/node", "args": ["/{์ ๋๊ฒฝ๋ก}/mcp-server-google-calendar/dist/main.js"], "env": { "GOOGLE_CLIENT_ID": "your_client_id", "GOOGLE_CLIENT_SECRET": "your_client_secret", "NODE_ENV": "production" } } }
์ค์ ํญ๋ชฉ ์ค๋ช :
command
: Node.js ์คํ ํ์ผ์ ์ ๋ ๊ฒฝ๋กargs
: ์คํํ JavaScript ํ์ผ์ ์ ๋ ๊ฒฝ๋ก (TypeScript ๋น๋ ํ ์์ฑ๋๋ ํ์ผ)cwd
: ํ๋ก์ ํธ์ ์์ ๋๋ ํ ๋ฆฌ ์ ๋ ๊ฒฝ๋กenv
: ํ๊ฒฝ ๋ณ์ ์ค์ GOOGLE_CLIENT_ID
: Google Cloud Console์์ ์์ฑํ ํด๋ผ์ด์ธํธ IDGOOGLE_CLIENT_SECRET
: Google Cloud Console์์ ์์ฑํ ํด๋ผ์ด์ธํธ ์ํฌ๋ฆฟNODE_ENV
: ์คํ ํ๊ฒฝ ์ค์
์ฃผ์: ์ ์์๋ ํ์ฌ ์ค์น๋ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑ๋์์ต๋๋ค. ๋ค๋ฅธ ํ๊ฒฝ์์๋ ํด๋น ํ๊ฒฝ์ ์ ๋ ๊ฒฝ๋ก๋ก ์์ ํด์ผ ํฉ๋๋ค.
-
๋น๋ ๋ฐ ์ค๋น
# TypeScript ์ปดํ์ผ npm run build # Node.js ์คํ ํ์ผ ์์น ํ์ธ which node
-
Claude Desktop ์ฌ์์
- ์ค์ ์ ์ฉ์ ์ํด Claude Desktop์ ์ฌ์์ํฉ๋๋ค.
- ์ํ ์์ด์ฝ์ ํด๋ฆญํ์ฌ ์๋ฒ ์ฐ๊ฒฐ ์ํ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
- ์ฐ๊ฒฐ ๋ฌธ์ ๋ฐ์ ์ ๋ก๊ทธ๋ฅผ ํ์ธํฉ๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ
googleAuthLogin
Google Calendar API ์ธ์ฆ์ ์ํํฉ๋๋ค.
// Claude์์ ์ฌ์ฉ ์์
tool("googleAuthLogin");
addCalendarEvent
Google Calendar์ ์๋ก์ด ์ผ์ ์ ์ถ๊ฐํฉ๋๋ค.
// Claude์์ ์ฌ์ฉ ์์
tool("addCalendarEvent", {
title: "ํ์",
startTime: "2024-03-20 15:00", // YYYY-MM-DD HH:mm ํ์
duration: "60", // ๋ถ ๋จ์
});
listCalendarEvents
ํน์ ๊ธฐ๊ฐ์ Google Calendar ์ผ์ ์ ์กฐํํฉ๋๋ค.
// Claude์์ ์ฌ์ฉ ์์
tool("listCalendarEvents", {
period: "2024-03-20~2024-03-27", // YYYY-MM-DD~YYYY-MM-DD ํ์
});
getTodayDate
์ค๋ ๋ ์ง๋ฅผ YYYY-MM-DD ํ์์ผ๋ก ๋ฐํํฉ๋๋ค.
// Claude์์ ์ฌ์ฉ ์์
tool("getTodayDate");
๋๋ฒ๊น
๋ก๊ทธ ํ์ธ
# ์ค์๊ฐ ๋ก๊ทธ ํ์ธ
tail -n 20 -F ~/Library/Logs/Claude/mcp*.log
๊ฐ๋ฐ์ ๋๊ตฌ ํ์ฑํ
- ๊ฐ๋ฐ์ ์ค์ ํ์ผ ์์ฑ:
echo '{"allowDevTools": true}' > ~/Library/Application\ Support/Claude/developer_settings.json
- ๊ฐ๋ฐ์ ๋๊ตฌ ์ด๊ธฐ:
Command-Option-Shift-i
์๋ฌ ์ฒ๋ฆฌ
์๋ฒ๋ ๋ค์๊ณผ ๊ฐ์ ์ํฉ์์ ์ ์ ํ ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ฐํํฉ๋๋ค:
- Google ์ธ์ฆ์ด ํ์ํ ๊ฒฝ์ฐ
- ์๋ชป๋ ์๊ฐ ํ์์ด ์ ๋ ฅ๋ ๊ฒฝ์ฐ
- ํ์ ํ๋ผ๋ฏธํฐ๊ฐ ๋๋ฝ๋ ๊ฒฝ์ฐ
- Google Calendar API ํธ์ถ ์คํจ ์
๋ก๊น
์๋ฒ๋ Pino ๋ก๊ฑฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ์ ๋ณด๋ฅผ ๊ธฐ๋กํฉ๋๋ค:
- ์๋ฒ ์์/์ข ๋ฃ
- ๋๊ตฌ ํธ์ถ ๋ฐ ์๋ต
- ์ธ์ฆ ํ๋ก์ธ์ค
- ์๋ฌ ๋ฐ ์์ธ ์ํฉ
๊ฐ๋ฐ ํ๊ฒฝ ์ค์
- TypeScript ์ปดํ์ผ
npm run build
- ๊ฐ๋ฐ ๋ชจ๋ ์คํ (์๋ ์ฌ์์)
npm run dev
- ๋ฆฐํธ ๊ฒ์ฌ
npm run lint
๋ฌธ์ ํด๊ฒฐ
-
์๋ฒ ์ฐ๊ฒฐ ๋ฌธ์
- Claude Desktop ๋ก๊ทธ ํ์ธ
- ์๋ฒ ํ๋ก์ธ์ค ์คํ ์ํ ํ์ธ
- ํ๊ฒฝ ๋ณ์ ์ค์ ํ์ธ
- ์ ๋ ๊ฒฝ๋ก ์ฌ์ฉ ์ฌ๋ถ ํ์ธ
-
์ธ์ฆ ๋ฌธ์
- Google Cloud Console์์ API ํ์ฑํ ์ํ ํ์ธ
- ํด๋ผ์ด์ธํธ ID์ ์ํฌ๋ฆฟ ์ฌํ์ธ
- OAuth ๋์ ํ๋ฉด ์ค์ ํ์ธ
๋ผ์ด์ ์ค
MIT License