谷歌日历mcp库
谷歌日历 主控程序 用TypeScript编写的服务器。可以作为stdio MCP服务器运行,也可以直接用作具有导入函数的库。
工具
所有工具都以前缀 googleCalendar:
| 工具 | 说明 |
|---|---|
googleCalendarListCalendars | 列出经过身份验证的用户可访问的所有日历 |
googleCalendarListEvents | 使用可选筛选器列出日历中的事件 |
googleCalendarGetEvent | 按ID获取特定事件 |
googleCalendarCreateEvent | 创建新事件 |
googleCalendarUpdateEvent | 更新现有事件 |
googleCalendarDeleteEvent | 删除事件 |
认证
每个工具都接受可选的身份验证参数。如果没有提供,服务器将回退到环境变量。
| 参数 | 环境变量 |
|---|---|
accessToken | GOOGLE_ACCESS_TOKEN |
refreshToken | GOOGLE_REFRESH_TOKEN |
clientId | GOOGLE_CLIENT_ID |
clientSecret | GOOGLE_CLIENT_SECRET |
仅 accessToken 是必需的。 clientId 和 clientSecret 仅当您希望客户端使用 refreshToken.
要获取凭据,请在 谷歌云控制台 随着 https://www.googleapis.com/auth/calendar 范围。
用法
作为MCP stdio服务器
构建并运行:
npm install
npm run build
node dist/index.js或者在开发过程中:
npm run devClaude桌面配置
添加 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"google-calendar": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {
"GOOGLE_ACCESS_TOKEN": "ya29.xxx",
"GOOGLE_REFRESH_TOKEN": "1//xxx",
"GOOGLE_CLIENT_ID": "xxx.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "xxx"
}
}
}
}作为一个图书馆
直接导入和调用函数,每次调用传递凭据:
import {
googleCalendarListEvents,
googleCalendarCreateEvent,
googleCalendarDeleteEvent,
} from "./dist/api.js";
// List upcoming events
const events = await googleCalendarListEvents({
accessToken: "ya29.xxx",
calendarId: "primary",
timeMin: new Date().toISOString(),
maxResults: 10,
});
// Create an event
const event = await googleCalendarCreateEvent({
accessToken: "ya29.xxx",
summary: "Team standup",
start: { dateTime: "2026-03-10T09:00:00-08:00", timeZone: "America/Los_Angeles" },
end: { dateTime: "2026-03-10T09:30:00-08:00", timeZone: "America/Los_Angeles" },
attendees: [{ email: "colleague@example.com" }],
sendUpdates: "all",
});
// Delete it
await googleCalendarDeleteEvent({
accessToken: "ya29.xxx",
eventId: event.id,
});或者依赖环境变量并完全省略auth-parms:
export GOOGLE_ACCESS_TOKEN=ya29.xxxconst calendars = await googleCalendarListCalendars({});发展
npm install # install dependencies
npm run build # compile TypeScript → dist/
npm run dev # run stdio server with tsx (no build step)项目结构
src/
auth.ts — credential resolution and OAuth2Client factory
calendar.ts — Google Calendar API v3 wrappers
tools.ts — callable functions + Zod input schemas
server.ts — MCP server with all tools registered
api.ts — library entry point (re-exports everything)
index.ts — stdio entry point (bin)