Skip to content

jkf87/mcp-google-calendar

Repository files navigation

Claude์˜ MCP Google Calendar ์—ฐ๊ฒฐ ๊ฐ€์ด๋“œ

์ด ๋ฌธ์„œ๋Š” Model Context Protocol(MCP)์„ ์‚ฌ์šฉํ•˜์—ฌ Claude๊ฐ€ Google Calendar์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์‹œํ–‰์ฐฉ์˜ค์™€ ํ•ด๊ฒฐ์ฑ…์„ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด ๋” ์‰ฝ๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

  1. ์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ
  2. ์ €์žฅ์†Œ ์„ค์ •
  3. Google OAuth ์ธ์ฆ ์„ค์ •
  4. ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ์–ป๊ธฐ
  5. ์„œ๋ฒ„ ์„ค์ • ๋ฐ ์‹คํ–‰
  6. Claude for Desktop ์—ฐ๊ฒฐ
    • macOS/Linux ํ™˜๊ฒฝ
    • Windows ํ™˜๊ฒฝ
  7. ๋ฌธ์ œ ํ•ด๊ฒฐ

์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ

  • Node.js v18 ์ด์ƒ
  • Google ๊ณ„์ •
  • Claude for Desktop
  • ๊ธฐ๋ณธ์ ์ธ ํ„ฐ๋ฏธ๋„ ์‚ฌ์šฉ๋ฒ•

์ €์žฅ์†Œ ์„ค์ •

1. ์ €์žฅ์†Œ ํด๋ก 

git clone https://github.com/markelaugust74/mcp-google-calendar.git
cd mcp-google-calendar

2. ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ํ™•์ธ

์ €์žฅ์†Œ๊ฐ€ ์ด์ค‘ ๊ตฌ์กฐ๋กœ ๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ํ™•์ธํ•˜์„ธ์š”:

ls -la

mcp-google-calendar ํด๋” ๋‚ด์— ๋˜ ๋‹ค๋ฅธ mcp-google-calendar ํด๋”๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ๋‚ด๋ถ€ ํด๋”๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

cd mcp-google-calendar

3. ์ข…์†์„ฑ ์„ค์น˜

npm install

Google OAuth ์ธ์ฆ ์„ค์ •

1. Google Cloud Console ์ค€๋น„

  1. Google Cloud Console์— ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
  2. ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  3. Google Calendar API๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค:
    • ์™ผ์ชฝ ๋ฉ”๋‰ด์—์„œ "API ๋ฐ ์„œ๋น„์Šค" > "๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ" ์„ ํƒ
    • "Google Calendar API" ๊ฒ€์ƒ‰ ํ›„ ํ™œ์„ฑํ™”

2. OAuth ํด๋ผ์ด์–ธํŠธ ID ์ƒ์„ฑ

  1. "API ๋ฐ ์„œ๋น„์Šค" > "์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด"๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. "์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋งŒ๋“ค๊ธฐ" > "OAuth ํด๋ผ์ด์–ธํŠธ ID" ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. Google OAuth

  3. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์œ ํ˜•์€ "์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜"์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

  4. ์Šน์ธ๋œ ๋ฆฌ๋””๋ ‰์…˜ URI์— http://localhost:3030/oauth2callback์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. (์ €๋Š” 3000์ด ์ด๋ฏธ ์‚ฌ์šฉ์ค‘์ด๋ผ 3030์œผ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค) ๋ฆฌ๋””๋ ‰์…˜ URI ์„ค์ •

  5. "๋งŒ๋“ค๊ธฐ"๋ฅผ ํด๋ฆญํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ ID์™€ ์‹œํฌ๋ฆฟ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

3. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

ํ”„๋กœ์ ํŠธ ํด๋”์— .env ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค์Œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

# Google OAuth2 credentials
CLIENT_ID=๊ท€ํ•˜์˜_ํด๋ผ์ด์–ธํŠธ_ID
CLIENT_SECRET=๊ท€ํ•˜์˜_ํด๋ผ์ด์–ธํŠธ_์‹œํฌ๋ฆฟ
REDIRECT_URI=http://localhost:3030/oauth2callback

# MCP Server settings
PORT=3030
MCP_SERVER_URL=http://localhost:3030

# Google Calendar API settings (optional)
# CALENDAR_ID=primary

๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ์–ป๊ธฐ

1. Auth.js ์ˆ˜์ •

auth.js ํŒŒ์ผ์—์„œ ๋ฐ˜๋“œ์‹œ prompt: 'consent' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์•ผ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

const authUrl = oauth2Client.generateAuthUrl({
  access_type: 'offline',
  scope: SCOPES,
  prompt: 'consent'  // ์ด ์˜ต์…˜์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค!
});

2. ์ธ์ฆ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰

ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

node auth.js

3. ์ธ์ฆ ์ฝ”๋“œ ์–ป๊ธฐ

  1. ํ‘œ์‹œ๋œ URL์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ฝ๋‹ˆ๋‹ค. ์ธ์ฆ์ฝ”๋“œ์–ป๊ธฐ1

  2. Google ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•˜๊ณ  ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

  3. ๋ฆฌ๋””๋ ‰์…˜๋œ URL์—์„œ code= ๋‹ค์Œ์— ์˜ค๋Š” ๊ฐ’์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฆ์ฝ”๋“œ์–ป๊ธฐ2

http://localhost:3030/oauth2callback?code=4/0AQSTg...&scope=... <-- ์—ฌ๊ธฐ์„œ 'code=' ๋‹ค์Œ๋ถ€ํ„ฐ '&scope=' ์•ž๊นŒ์ง€๋งŒ ๋ณต์‚ฌ!!

โš ๏ธ ์ค‘์š”: ์ธ์ฆ ์ฝ”๋“œ๋Š” code= ๋‹ค์Œ๋ถ€ํ„ฐ &scope= ์•ž๊นŒ์ง€์˜ ๋ถ€๋ถ„๋งŒ ๋ณต์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค! ์ „์ฒด URL์„ ๋ณต์‚ฌํ•˜์ง€ ๋งˆ์„ธ์š”.

404 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

  1. ํ„ฐ๋ฏธ๋„์— ๋ณต์‚ฌํ•œ ์ฝ”๋“œ๋ฅผ ๋ถ™์—ฌ๋„ฃ๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

4. ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ํ™•์ธ

์„ฑ๊ณตํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค:

Your refresh token: 1//0eNafnMj...

โš ๏ธ ๋งค์šฐ ์ค‘์š”: ์œ„์— ํ‘œ์‹œ๋œ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ๊ฐ’์„ ์ •ํ™•ํ•˜๊ฒŒ ๋ณต์‚ฌํ•˜์„ธ์š”. ์ด ๊ฐ’์€ ์ธ์ฆ ์ฝ”๋“œ์™€ ์™„์ „ํžˆ ๋‹ค๋ฅด๋ฉฐ, ๋ฐ˜๋“œ์‹œ ์ด ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ index.js ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„ ์„ค์ • ๋ฐ ์‹คํ–‰

1. index.js ์ˆ˜์ •

index.js ํŒŒ์ผ์—์„œ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ๋ถ€๋ถ„์„ ์ฐพ์•„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค:

oauth2Client.setCredentials({
  refresh_token: "์—ฌ๊ธฐ์—_๋ฆฌํ”„๋ ˆ์‹œ_ํ† ํฐ_๋ถ™์—ฌ๋„ฃ๊ธฐ", // ๋ฐ˜๋“œ์‹œ "Your refresh token:" ๋‹ค์Œ์— ํ‘œ์‹œ๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์„ธ์š”!
  token_uri: "https://oauth2.googleapis.com/token"
});

๐Ÿšจ ๊ฐ€์žฅ ํ”ํ•œ ์˜ค๋ฅ˜: URL์—์„œ ์ถ”์ถœํ•œ ์ธ์ฆ ์ฝ”๋“œ๋ฅผ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์œผ๋กœ ์ฐฉ๊ฐํ•˜์—ฌ ์—ฌ๊ธฐ ์ž…๋ ฅํ•˜๋Š” ์‹ค์ˆ˜๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋“œ์‹œ auth.js ์‹คํ–‰ ํ›„ "Your refresh token:" ๋‹ค์Œ์— ํ‘œ์‹œ๋˜๋Š” ๊ฐ’์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

2. ์‹œ๊ฐ„๋Œ€ ์„ค์ •

ํ•œ๊ตญ ์‹œ๊ฐ„์œผ๋กœ ์ œ๋Œ€๋กœ ์ผ์ •์ด ํ‘œ์‹œ๋˜๋„๋ก ์‹œ๊ฐ„๋Œ€๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค:

const event = {
  // ... ๊ธฐ์กด ์ฝ”๋“œ ...
  start: {
    dateTime: args.start_time,
    timeZone: 'Asia/Seoul',  // America/New_York์—์„œ ๋ณ€๊ฒฝ
  },
  end: {
    dateTime: args.end_time,
    timeZone: 'Asia/Seoul',  // America/New_York์—์„œ ๋ณ€๊ฒฝ
  }
};

Claude for Desktop ์—ฐ๊ฒฐ

macOS/Linux ํ™˜๊ฒฝ

1. Claude for Desktop ๊ตฌ์„ฑ ํŒŒ์ผ ์ƒ์„ฑ

๋‹ค์Œ ๊ฒฝ๋กœ์— ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:

~/Library/Application Support/Claude/claude_desktop_config.json

2. ๊ตฌ์„ฑ ๋‚ด์šฉ ์ถ”๊ฐ€

{
  "mcpServers": {
    "google-calendar": {
      "command": "bash",
      "args": [
        "-c",
        "cd /์ ˆ๋Œ€/๊ฒฝ๋กœ/mcp-google-calendar/mcp-google-calendar && node index.js"
      ]
    }
  }
}

Windows ํ™˜๊ฒฝ

1. Claude for Desktop ๊ตฌ์„ฑ ํŒŒ์ผ ์ƒ์„ฑ

Windows์—์„œ๋Š” ๋‹ค์Œ ๊ฒฝ๋กœ์— ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:

%APPDATA%\Claude\claude_desktop_config.json

์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ C:\Users\์‚ฌ์šฉ์ž์ด๋ฆ„\AppData\Roaming\Claude\claude_desktop_config.json๊ณผ ๊ฐ™์€ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

2. ๋ฐฐ์น˜ ํŒŒ์ผ ์ƒ์„ฑ

MCP ์„œ๋ฒ„ ์‹คํ–‰์„ ์œ„ํ•œ ๋ฐฐ์น˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ฉด Windows์—์„œ ๋” ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ํด๋”์— run-calendar.bat ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค์Œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

@echo off
cd /d D:\path\to\mcp-google-calendar
node index.js

D:\path\to\mcp-google-calendar๋ฅผ ์‹ค์ œ ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ๋กœ ๋ฐ”๊พธ์„ธ์š”.

3. ๊ตฌ์„ฑ ๋‚ด์šฉ ์ถ”๊ฐ€

{
  "mcpServers": {
    "google-calendar": {
      "command": "D:\\path\\to\\mcp-google-calendar\\run-calendar.bat",
      "args": []
    }
  }
}

์ฃผ์˜: Windows ๊ฒฝ๋กœ์—์„œ๋Š” ๋ฐฑ์Šฌ๋ž˜์‹œ(\)๋ฅผ ๋‘ ๊ฐœ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

4. ์ฃผ์˜์‚ฌํ•ญ: ์˜ฌ๋ฐ”๋ฅธ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ์‚ฌ์šฉ

Windows์—์„œ๋Š” ํŠนํžˆ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์œผ๋กœ, ์ธ์ฆ ์ฝ”๋“œ์™€ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ํ˜ผ๋™ํ•˜์ง€ ๋งˆ์„ธ์š”:

  • ์ธ์ฆ ์ฝ”๋“œ: ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ›์€ URL์˜ code= ๋‹ค์Œ๋ถ€ํ„ฐ &scope= ์•ž๊นŒ์ง€์˜ ๊ฐ’

    • ์˜ˆ์‹œ: 4/0AQSTgQGxCBUNcl8eapA6jW4nRTQv1gM-Q_-N73iDcUGpQa3E087w0_-jdeacYzRNEFmbJQ
    • โŒ ์ด ๊ฐ’์„ index.js์— ๋„ฃ์œผ๋ฉด invalid_grant ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค!
  • ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ: auth.js ์‹คํ–‰ ํ›„ "Your refresh token:" ๋‹ค์Œ์— ํ‘œ์‹œ๋˜๋Š” ๊ฐ’

    • ์˜ˆ์‹œ: 1//0eNOnSp_LqfZ4CgYIARAAGA4SNwF-L9IrQSQKSZOtj-od75N5oCxiUb6yI_JtIawRfXApkIwz9OEVX7F_DBHc74XCeXH0j8ZvPKk
    • โœ… ์ด ๊ฐ’์„ index.js์— ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค!

index.js ํŒŒ์ผ์— ์„ค์ •ํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

oauth2Client.setCredentials({
  refresh_token: "1//0eNOnSp...(์‹ค์ œ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ)...", // ์ธ์ฆ ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค!
  token_uri: "https://oauth2.googleapis.com/token"
});

3. Claude for Desktop ์žฌ์‹œ์ž‘

Claude for Desktop์„ ์™„์ „ํžˆ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ

๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์ด undefined๋กœ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ

  1. auth.js์— prompt: 'consent' ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  2. Google Cloud Console์—์„œ ๋ฆฌ๋””๋ ‰์…˜ URI๊ฐ€ .env ํŒŒ์ผ๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  3. ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค(3000์—์„œ 3030์œผ๋กœ ๋ณ€๊ฒฝํ•œ ๊ฒฝ์šฐ).

์‹œ๊ฐ„๋Œ€ ๋ฌธ์ œ

๋ฏธ๊ตญ ๋™๋ถ€ ์‹œ๊ฐ„(America/New_York)๊ณผ ํ•œ๊ตญ ์‹œ๊ฐ„(Asia/Seoul) ์‚ฌ์ด์—๋Š” 13~14์‹œ๊ฐ„ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋Œ€๋ฅผ 'Asia/Seoul'๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ํ•œ๊ตญ ์‹œ๊ฐ„์— ๋งž๊ฒŒ ์ผ์ •์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„ ์—ฐ๊ฒฐ ๋ฌธ์ œ

  1. ์‹คํ–‰ ์ค‘์ธ ์„œ๋ฒ„ ํ™•์ธ:
    ps aux | grep "node index.js" (Linux/macOS)
    tasklist | findstr "node.exe" (Windows)

  2. ๋ชจ๋“  ์„œ๋ฒ„ ์ข…๋ฃŒ:
    pkill -f "node index.js" (Linux/macOS)
    taskkill /F /IM node.exe (Windows)

  3. ๋กœ๊ทธ ํ™•์ธ:
    tail -f ~/Library/Logs/Claude/mcp*.log (macOS)
    type %APPDATA%\Claude\logs\mcp*.log (Windows)

Windows์—์„œ "invalid_grant" ์˜ค๋ฅ˜

Windows์—์„œ "invalid_grant" ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ธ์ฆ ์ฝ”๋“œ์™€ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ํ˜ผ๋™ํ–ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ ์ƒํ™ฉ:

  • index.js ํŒŒ์ผ์— ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ›์€ ์ธ์ฆ ์ฝ”๋“œ๋ฅผ ๋ถ™์—ฌ๋„ฃ์Œ โ†’ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
  • ์ธ์ฆ ์ฝ”๋“œ๋Š” ์งง์€ ์ˆ˜๋ช…์„ ๊ฐ€์ง€๋ฉฐ ์ผํšŒ์„ฑ์ด๋ฏ€๋กœ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:

  1. auth.js๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š”: node auth.js
  2. ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ  ์ธ์ฆ ์ฝ”๋“œ๋ฅผ ์–ป์€ ํ›„ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•˜์„ธ์š”
  3. ํ„ฐ๋ฏธ๋„์— ํ‘œ์‹œ๋˜๋Š” "Your refresh token:" ๋‹ค์Œ์— ์˜ค๋Š” ๊ฐ’์„ ํ™•์ธํ•˜์„ธ์š”
  4. index.js ํŒŒ์ผ์—์„œ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ์ด ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”

์ธ์ฆ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์ž…๋‹ˆ๋‹ค: 4/0AQSTgQGxCBUNcl8eapA6jW4nRTQv1gM-Q_-N73iDcUGpQa3E087w0_-jdeacYzRNEFmbJQ

์‹ค์ œ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์ž…๋‹ˆ๋‹ค: 1//0eNOnSp_LqfZ4CgYIARAAGA4SNwF-L9IrQSQKSZOtj-od75N5oCxiUb6yI_JtIawRfXApkIwz9OEVX7F_DBHc74XCeXH0j8ZvPKk

Windows์—์„œ Claude๊ฐ€ MCP ์„œ๋ฒ„๋ฅผ ์ฐพ์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ

  1. Claude Desktop์ด index.js ํŒŒ์ผ์„ ์ฐพ์ง€ ๋ชปํ•˜๋ฉด ๋ฐฐ์น˜ ํŒŒ์ผ ๋ฐฉ์‹์œผ๋กœ ์‹œ๋„ํ•˜์„ธ์š”.
  2. ๋กœ๊ทธ ํŒŒ์ผ์„ ํ™•์ธํ•˜์—ฌ ์ •ํ™•ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธํ•˜์„ธ์š”: %APPDATA%\Claude\logs\mcp-server-google-calendar.log
  3. claudeDesktop_config.json ํŒŒ์ผ์ด ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.
  4. Claude Desktop์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•ด ๋ณด์„ธ์š”.
  5. ์ง์ ‘ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•œ ํ›„ Claude Desktop์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Claude for Desktop์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ผ์ •์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

๋‚ด์ผ ์˜คํ›„ 3์‹œ๋ถ€ํ„ฐ 4์‹œ๊นŒ์ง€ ํŒ€ ๋ฏธํŒ… ์ผ์ •์„ ์ถ”๊ฐ€ํ•ด์ค˜

Claude๋Š” ์ž๋™์œผ๋กœ MCP ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด Google Calendar์— ์ผ์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.


์ด ๊ฐ€์ด๋“œ๊ฐ€ MCP๋ฅผ ํ†ตํ•ด Claude๋ฅผ Google Calendar์™€ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์œ„์˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors