Skip to main content
Glama
CHIHI913
by CHIHI913

Google Calendar MCP Server

Google Calendar APIを操作するMCP (Model Context Protocol) サーバーです。

機能

カレンダー操作

  • list_calendars - カレンダー一覧の取得

  • get_calendar - カレンダー詳細の取得

イベント操作

  • list_events - イベント一覧の取得

  • get_event - イベント詳細の取得

  • search_events - イベントの検索

  • create_event - イベントの作成(定期イベント対応)

  • update_event - イベントの更新

  • delete_event - イベントの削除

定期イベント操作

  • update_recurring_event - 定期イベントの更新

    • thisEventOnly: この予定のみ

    • all: すべての予定

    • thisAndFollowing: これ以降の予定

  • delete_recurring_instance - 定期イベントの特定インスタンス削除

ユーティリティ

  • get_freebusy - 空き時間情報の取得

  • list_colors - 利用可能なカラーパレットの取得

Related MCP server: mcp-google-calendar

セットアップ

1. Google Cloud Consoleでの準備

  1. Google Cloud Consoleでプロジェクトを作成

  2. Google Calendar APIを有効化

  3. OAuth 2.0クライアントIDを作成

    • アプリケーションの種類: ウェブアプリケーション

    • 承認済みのリダイレクトURI: http://localhost:8080/callback

  4. 認証情報JSONファイルをダウンロード

2. 環境変数の設定

export CLIENT_SECRET_PATH="/path/to/client_secret.json"
export TOKEN_PATH="/path/to/token.json"

3. インストールとビルド

pnpm install
pnpm build

4. 初回認証

サーバーを起動すると、初回はブラウザでGoogle認証を求められます。認証後、トークンが保存され、以降は自動的に認証されます。

使用方法

Claude Desktopでの設定

claude_desktop_config.jsonに以下を追加:

{
  "mcpServers": {
    "google-calendar": {
      "command": "node",
      "args": ["/path/to/google-calendar-mcp/dist/index.js"],
      "env": {
        "CLIENT_SECRET_PATH": "/path/to/client_secret.json",
        "TOKEN_PATH": "/path/to/token.json"
      }
    }
  }
}

Claude Codeでの設定

claude mcp add google-calendar node /path/to/google-calendar-mcp/dist/index.js \
  -e CLIENT_SECRET_PATH=/path/to/client_secret.json \
  -e TOKEN_PATH=/path/to/token.json

使用例

イベント一覧の取得

今日の予定を教えて

イベントの作成

明日の14時から15時に「打ち合わせ」という予定を作成して

定期イベントの作成

毎週月曜日の10時から11時に「週次ミーティング」を10回作成して

定期イベントの個別編集

今週の週次ミーティングだけ時間を11時からに変更して

技術スタック

  • TypeScript

  • Node.js >= 18.0.0

  • @modelcontextprotocol/sdk

  • googleapis

  • zod

ライセンス

MIT

Available Tools

12 tools
create_eventA

新しいカレンダーイベントを作成します。定期イベントの作成も可能です

ParametersJSON Schema
NameRequiredDescriptionDefault
endYes終了日時
startYes開始日時
colorIdNoイベントの色ID
summaryYesイベントタイトル
locationNo場所
attendeesNo参加者リスト
remindersNoリマインダー設定
calendarIdNoカレンダーIDprimary
recurrenceNo繰り返しルール(RRULE形式、例: ["RRULE:FREQ=WEEKLY;COUNT=10"])
visibilityNo公開設定
descriptionNoイベントの説明
transparencyNo予定あり(opaque)/予定なし(transparent)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states it creates events and supports recurring events, but with no annotations provided, it does not disclose potential side effects such as sending invitations, required permissions, or how the created event is returned. The 'creates' verb indicates mutation, but richer behavioral context is absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loaded with the main purpose and then a key extension (recurring events). No fluff or redundancy; every word contributes value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the schema is rich and covers parameters, the description is thin given the tool's complexity (12 params, nested objects, no output schema). It does not mention return values, error behavior, or usage specifics like all-day vs timed events, leaving the agent without guidance except what the schema already provides.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 12 parameters are fully documented in the schema, including descriptions for each, so the schema covers parameter semantics. The description adds nothing beyond mentioning recurring events, which relates to the recurrence parameter but does not add new meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('create') and resource ('calendar event'), and also highlights the capability to create recurring events. This distinguishes it from sibling tools like update_event and delete_event.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating new calendar events, including recurring ones, but does not explicitly state when to use this tool versus alternatives or provide any exclusions. Guidance is minimal but not misleading.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_eventB

カレンダーイベントを削除します

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYes削除するイベントのID
calendarIdNoカレンダーIDprimary
sendUpdatesNo参加者への通知設定all

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must communicate behavioral traits. While 'delete' implies destructive action, it doesn't disclose whether the deletion is permanent, affects attendees (related to the 'sendUpdates' parameter), or how recurring events are handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence with no wasted words. It effectively conveys the core action without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation, the description covers the primary purpose, but given the sibling 'delete_recurring_instance' and the 'sendUpdates' default, additional context would help. The lack of annotations and output schema leaves behavioral details undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides full descriptions for all three parameters, including the enum for 'sendUpdates'. The description itself adds no additional parameter semantics, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb '削除' (delete) and resource 'カレンダーイベント' (calendar event), clearly identifying the operation. However, it doesn't distinguish between deleting a single event or a recurring series, and the sibling tool 'delete_recurring_instance' suggests a potential ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description doesn't explain when to use this tool versus 'update_recurring_event' or 'delete_recurring_instance', nor does it mention any prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_recurring_instanceA

定期イベントの特定のインスタンス(1回分)のみを削除します

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYes定期イベントの親イベントID
calendarIdNoカレンダーIDprimary
sendUpdatesNo参加者への通知設定all
instanceDateNo削除するインスタンスの日付(YYYY-MM-DD形式)
instanceDateTimeNo削除するインスタンスの日時(ISO 8601形式)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the key behavioral trait of deleting only a single occurrence rather than the entire recurring event, which is valuable. However, it does not mention any side effects (e.g., attendee notifications via sendUpdates), requirements, or whether the operation is reversible. The description adds some context beyond the schema but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately states the tool's core function. It is front-loaded with the action and scope, with no wasted words or redundancy. This is appropriately sized for the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 5 parameters including two alternative date/time identifiers (instanceDate and instanceDateTime), the description does not explain how to choose between them or what happens if both are provided. With no annotations and no output schema, the description leaves significant ambiguity about usage. It is not complete enough for an agent to reliably invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific information; it does not clarify the relationship between instanceDate and instanceDateTime or explain when to use each. The schema already provides detailed parameter descriptions, but the tool description adds no extra semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: deleting only a specific instance of a recurring event. It uses a specific verb ('削除します') and resource ('定期イベントの特定のインスタンス'), and distinguishes itself from the sibling delete_event by emphasizing '1回分のみ' (only one occurrence).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for recurring events by mentioning '定期イベントの特定のインスタンス', but it does not explicitly state when to use this tool versus alternatives like delete_event for the whole series. There is no explicit when/when-not guidance or comparison with sibling tools, so the usage context is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_calendarA

指定したカレンダーの詳細情報を取得します

ParametersJSON Schema
NameRequiredDescriptionDefault
calendarIdYesカレンダーID(例: "primary" または メールアドレス)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It simply states 'retrieve detailed information' without specifying read-only semantics, permission requirements, error behavior, or return format. The action 'get' is implied but not explicitly framed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence in Japanese that communicates purpose without redundancy. It is appropriately front-loaded with the verb and resource, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple get-by-ID tool with one parameter and no output schema. The description is minimally sufficient to understand the basic function but does not clarify what '詳細情報' includes or how errors are handled. Given low complexity, it meets the minimum viable threshold but lacks richer detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the single parameter 'calendarId' with a clear description and examples (e.g., 'primary' or email). The tool description adds no parameter-specific information, so it does not improve on the schema. Baseline 3 is appropriate given 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb '取得' (retrieve) with the resource '指定したカレンダー' (specified calendar), and specifies '詳細情報' (detailed information), clearly indicating a single calendar lookup rather than listing. This distinguishes it from sibling 'list_calendars'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for a specific calendar (指定した) but does not explicitly state when to use this tool versus alternatives like list_calendars or get_event. No exclusions or alternative references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_eventA

特定のイベントの詳細情報を取得します

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYesイベントID
calendarIdNoカレンダーIDprimary

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states 'get detailed information', which largely repeats the tool name and provides no insight into error behavior, required permissions, or side effects. It does not add meaningful behavioral context beyond the obvious read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence in Japanese. It is front-loaded with the verb and resource, contains no fluff, and earns its place by clearly stating the primary function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with two clearly defined parameters, the one-line description is mostly sufficient. However, since there is no output schema, the description could optionally specify what 'detailed information' includes, but the simplicity of the tool and complete schema make the current description adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions for eventId and calendarId. The tool description itself adds no parameter-level meaning, but the schema already fully documents both parameters, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb '取得' (retrieve) and resource '特定のイベント' (specific event), clearly distinguishing it from sibling tools like list_events or search_events. It unambiguously states the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving details of a specific event, but it does not explicitly contrast with alternative tools or mention when not to use it. No guidance on edge cases or prerequisites beyond the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_freebusyA

指定した期間の空き時間情報を取得します。複数のカレンダーの予定が埋まっている時間帯を確認できます

ParametersJSON Schema
NameRequiredDescriptionDefault
timeMaxYes確認終了日時(ISO 8601形式)
timeMinYes確認開始日時(ISO 8601形式)
timeZoneNoタイムゾーン(例: Asia/Tokyo)
calendarIdsNo確認するカレンダーIDのリスト

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It conveys that this is a read operation retrieving availability for a period and multiple calendars, but it does not disclose the response format, limitations, or that it returns busy/free markers rather than event details. This is a minimal but acceptable level of transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise, consisting of two sentences that front-load the primary purpose and add the multi-calendar detail. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the full schema coverage and the simple nature of a free/busy query, the description provides the essential context. However, since there is no output schema, it could have described the return structure more explicitly, but the mention of free and occupied time slots is mostly sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage for all four parameters, so the baseline of 3 applies. The description adds no parameter-specific syntax or details beyond what the schema already offers, only loosely aligning 'specified period' with timeMin/timeMax and 'multiple calendars' with calendarIds.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the function: retrieving free/busy information for a specified period. It also mentions the ability to check time slots where multiple calendars are occupied, which clearly distinguishes it from sibling tools like list_events or search_events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its use case (checking availability across calendars) but provides no explicit guidance on when to use it versus alternatives, nor any exclusions. It could be improved by contrasting with list_events or search_events.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_calendarsA

ユーザーがアクセス可能なカレンダーの一覧を取得します

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full transparency burden. It states that the list includes only calendars the user can access, providing some scope context, but it does not disclose details about return structure, ordering, or any side effects (though 'list' implies read-only).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence in Japanese, front-loaded with the primary action. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter listing tool with no output schema, the description sufficiently captures the core functionality. It lacks explicit mention of return format, but the simple nature of listing calendars makes this acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so the description need not explain parameter usage. The baseline of 4 is appropriate; there is nothing to add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the list of calendars available to the user. It uses a specific verb ('取得します' – retrieves) and resource ('カレンダーの一覧' – list of calendars), and distinguishes itself from sibling 'get_calendar' by focusing on listing all accessible calendars rather than a single one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is provided about when to use this tool versus alternatives. The verb 'list' and the scope 'accessible' imply usage for enumerating calendars, but no direct comparison to 'get_calendar' or other tools is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_colorsA

カレンダーとイベントで使用可能なカラーパレットを取得します

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It confirms a read operation but doesn't disclose return format, potential localization, or any side effects. Since it's a simple list operation, the absence of extra behavioral details is not critical, but some additional context would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately states the purpose. It front-loads the key action and resource, with no unnecessary filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, no parameters, and no output schema, the description is largely sufficient. It doesn't detail the return structure, but that is self-evident for a palette getter. The context of calendars and events is clear enough for the agent to select it appropriately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema is empty with 100% coverage by definition. The baseline for 0 params is 4, and the description doesn't need to explain any parameter nuances. No improvement needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the color palette available for calendars and events, using the specific verb '取得します' (get) and a concrete resource. This distinguishes it from sibling tools, which focus on calendar/event CRUD and free/busy information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys the context of use: obtaining colors for calendars and events. It doesn't explicitly provide exclusions or alternative tool comparisons, but the scope is clear, and for a parameterless lookup tool, this is adequate guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_eventsB

指定した期間のカレンダーイベント一覧を取得します

ParametersJSON Schema
NameRequiredDescriptionDefault
qNo検索クエリ
orderByNoソート順startTime
timeMaxNo取得終了日時(ISO 8601形式)
timeMinNo取得開始日時(ISO 8601形式、例: 2024-01-01T00:00:00Z)
calendarIdNoカレンダーIDprimary
maxResultsNo最大取得件数
singleEventsNo定期イベントを個別インスタンスに展開するか

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only mentions the time period filter, but fails to disclose important behaviors like default sorting (startTime), max results, recurring event expansion (singleEvents), or default calendarId. This is insufficient for a complex listing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that directly states the core purpose. It is concise, front-loaded, and contains no wasted words, even though it may be under-specified for other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 parameters, no annotations, and no output schema, this description is incomplete. It fails to mention usage context, default behaviors, or differentiation from search_events. While the schema covers parameters, the description does not help the agent decide when to invoke it or what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level meaning beyond what the schema already provides; it only paraphrases the time range that is already described in timeMin/timeMax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a list of calendar events for a specified period, using a specific verb and resource. However, it does not distinguish this from the sibling tool 'search_events', which may also list events in a period.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need events within a date range ('指定した期間'), but it provides no explicit guidance on when to use this tool versus search_events or other sibling alternatives. No exclusions or alternative recommendations are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_eventsC

キーワードでイベントを検索します

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes検索キーワード
timeMaxNo検索終了日時(ISO 8601形式)
timeMinNo検索開始日時(ISO 8601形式)
calendarIdNoカレンダーIDprimary
maxResultsNo最大取得件数

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only states the basic functionality without disclosing any behavioral traits such as filtering semantics, results ordering, pagination, or authorization requirements. With no annotations provided, the description carries the full burden but fails to provide meaningful behavioral context beyond the purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no fluff. However, it is under-specified and lacks any structure or elaboration that would make it more useful, such as mentioning parameter combinations or return behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, no annotations, and no output schema, the description is too sparse. It does not explain how timeMin/timeMax, calendarId, or maxResults affect the search, nor what the response contains. The schema partially fills the gap, but the description itself provides minimal context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters have descriptions in the schema. The description text adds no extra meaning beyond the schema, but the baseline for high coverage is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches events by keyword, which is a specific verb+resource+method. It distinguishes from sibling list_events which likely lists events without keyword filtering, though it doesn't explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies it is for keyword-based searching, but does not mention when to prefer it over list_events or get_event, or exclude when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_eventB

既存のカレンダーイベントを更新します

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo終了日時
startNo開始日時
colorIdNoイベントの色ID
eventIdYes更新するイベントのID
summaryNoイベントタイトル
locationNo場所
attendeesNo参加者リスト
calendarIdNoカレンダーIDprimary
visibilityNo公開設定
descriptionNoイベントの説明
transparencyNo予定あり/予定なし

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It only states 'updates' without disclosing permissions, error handling, partial update behavior, or return value. This is inadequate for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence with no wasted words. While brief, it is appropriately concise, though it forgoes structure for additional context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 params, nested objects, no output schema, no annotations), the one-sentence description is insufficient. It lacks information on return values, required fields, and operational effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% parameter coverage, so the schema provides descriptions for all 11 parameters. The tool description adds no parameter semantics beyond the schema, warranting the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'updates an existing calendar event,' using a specific verb ('update') and resource ('existing calendar event'), distinguishing it from create/delete siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives like create_event or update_recurring_event. The description merely states the function without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_recurring_eventA

定期イベント(繰り返しイベント)を更新します。「この予定のみ」「すべての予定」「これ以降の予定」の3つの編集スコープをサポートします

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo終了日時
scopeYes編集スコープ
startNo開始日時
colorIdNoイベントの色ID
eventIdYes定期イベントの親イベントID
summaryNoイベントタイトル
locationNo場所
calendarIdNoカレンダーIDprimary
descriptionNoイベントの説明
instanceDateNo特定インスタンスの日付(thisEventOnly/thisAndFollowing時に必要、YYYY-MM-DD形式)
instanceDateTimeNo特定インスタンスの日時(thisEventOnly/thisAndFollowing時に必要、ISO 8601形式)

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden of behavior disclosure. It only states that it updates recurring events and supports three scopes; it does not mention side effects, permission requirements, how the scopes alter the recurrence series, or what happens to exceptions. This is a significant gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the primary purpose and followed by the key differentiator (three scopes). There is no redundant information; every sentence contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the tool's complexity (11 parameters, nested objects, no output schema), the description only provides a high-level overview. It does not explain how to use the scopes in practice, the relationship between scopes and instanceDate/instanceDateTime, or that certain parameters are required for specific scopes. The schema offers individual parameter descriptions, but the tool-level context is insufficient for an agent to invoke it correctly in varied scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-specific meaning beyond what the schema already provides (e.g., it mentions scopes but does not explain the instanceDate/instanceDateTime requirements). It neither enhances nor contradicts the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'updates a recurring event' (定期イベントを更新します) with a specific verb and resource. It further distinguishes itself from sibling tools like update_event by explicitly mentioning the three editing scopes ('this event only', 'all', 'this and following'), which is unique to recurring event handling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description identifies the tool's use case (updating recurring events) and the supported scopes, providing clear context for when to use it. However, it does not explicitly mention alternatives or exclusions (e.g., 'use update_event for non-recurring events'), so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv1.0.0
    • First observedcreate_event
    • First observeddelete_event
    • First observeddelete_recurring_instance
    • First observedget_calendar
    • First observedget_event
    • First observedget_freebusy
    • First observedlist_calendars
    • First observedlist_colors
    • First observedlist_events
    • First observedsearch_events
    • First observedupdate_event
    • First observedupdate_recurring_event

TDQS

A3.7/5.0

Scored across 12 tools

Disambiguation5/5

Each tool targets a distinct resource and action: calendars vs. events, list vs. get vs. search, and specific recurring-event tools are clearly separated from regular event tools. Descriptions further clarify any potential overlap, such as delete_recurring_instance versus delete_event.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (list_, get_, search_, create_, update_, delete_), using snake_case throughout. Compound names like update_recurring_event and delete_recurring_instance are logical extensions of the pattern.

Tool Count5/5

12 tools is well within the ideal 3-15 range for a calendar server. Each tool addresses a meaningful aspect of calendar and event management without unnecessary redundancy or bloat.

Completeness4/5

The set provides comprehensive event CRUD, recurring event handling, free/busy lookup, and color details. Minor gaps include no ability to create/delete calendars (only list and get), but the core calendar workflow is well covered.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers