garoon-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@garoon-mcp-serverGet my schedule for tomorrow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Garoon MCP Server
日本語 | English
Garoonの公式ローカルMCPサーバーです。
インストール
MCPB (旧称: DXT)
MCPBは、Claude for desktopのみがサポートしているインストール方式です。.mcpbファイルをClaudeで開くだけでインストールすることができます。
リリース一覧を開く。
Assetsにある
garoon-mcp-server.mcpbをダウンロードする。ダウンロードしたファイルをClaudeで開く。
インストール確認ダイアログが表示されるのでインストールを選択する。
設定ダイアログが表示されるので、必要な情報を入力して保存する。
トグルスイッチでGaroon MCP Serverが無効になっていれば有効にする。
Dockerイメージ
Dockerをインストールして使える状態にする必要があります。 インストール後、以下のコマンドでDockerイメージをプルできます。
docker pull ghcr.io/garoon/mcp-server:latestこの方法で利用するにはMCPクライアントに応じた設定ファイルが必要です。 後述の設定ファイルの例をご参考ください。
npmパッケージ
Node.jsをインストールして使える状態にする必要があります。 インストール後、以下のコマンドでグローバルインストールできます。
npm install -g @garoon/mcp-serverこの方法で利用するにはMCPクライアントに応じた設定ファイルが必要です。 後述の設定ファイルの例をご参考ください。
Related MCP server: kintone MCP Server
設定ファイルの例
ログイン情報を含む設定ファイルをコンピュータ上に保存することはセキュリティ上のリスクがあります。適切に管理していただき、ご利用は自己責任でお願いいたします。
ファイルパス
詳細や最新情報については、利用したいMCPクライアントツールの公式ドキュメントをご参照ください。
Cursorの例[ref]:
特定のワークスペース内で以下のファイルを作成します。
.cursor/mcp.json
Visual Studio Codeの例[ref]:
特定のワークスペース内で以下のファイルを作成します。
.vscode/mcp.json
設定内容
設定は環境変数で行います。 不要な環境変数については省略できるため、ご利用の環境に合わせて削除してください。 環境変数の意味については後述の設定項目をご参照ください。
Cursor
{
"mcpServers": {
"garoon-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"GAROON_BASE_URL",
"-e",
"GAROON_USERNAME",
"-e",
"GAROON_PASSWORD",
"-e",
"https_proxy",
"-e",
"GAROON_BASIC_AUTH_USERNAME",
"-e",
"GAROON_BASIC_AUTH_PASSWORD",
"-e",
"GAROON_PUBLIC_ONLY",
"ghcr.io/garoon/mcp-server:latest"
],
"env": {
"GAROON_BASE_URL": "https://example.cybozu.com/g",
"GAROON_USERNAME": "username",
"GAROON_PASSWORD": "password",
"https_proxy": "http://proxy.example.com:8080",
"GAROON_BASIC_AUTH_USERNAME": "username",
"GAROON_BASIC_AUTH_PASSWORD": "password",
"GAROON_PUBLIC_ONLY": "false"
}
}
}
}クライアント証明書を利用する場合は、docker runの--mountオプション[ref]でホストマシン上の*.pfxファイルをコンテナ内にマウントする必要があります。
{
"mcpServers": {
"garoon-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--mount",
"type=bind,src=/absolute/path/to/pfx_file.pfx,dst=/cert.pfx",
"-e",
"GAROON_BASE_URL",
"-e",
"GAROON_USERNAME",
"-e",
"GAROON_PASSWORD",
"-e",
"GAROON_PFX_FILE_PATH",
"-e",
"GAROON_PFX_FILE_PASSWORD",
"-e",
"GAROON_PUBLIC_ONLY",
"ghcr.io/garoon/mcp-server:latest"
],
"env": {
"GAROON_BASE_URL": "https://example.s.cybozu.com/g",
"GAROON_USERNAME": "username",
"GAROON_PASSWORD": "password",
"GAROON_PFX_FILE_PATH": "/cert.pfx",
"GAROON_PFX_FILE_PASSWORD": "password",
"GAROON_PUBLIC_ONLY": "false"
}
}
}
}{
"mcpServers": {
"garoon-mcp-server": {
"command": "garoon-mcp-server",
"env": {
"GAROON_BASE_URL": "https://example.s.cybozu.com/g",
"GAROON_USERNAME": "username",
"GAROON_PASSWORD": "password",
"https_proxy": "http://proxy.example.com:8080",
"GAROON_PFX_FILE_PATH": "/absolute/path/to/pfx_file.pfx",
"GAROON_PFX_FILE_PASSWORD": "pfx_password",
"GAROON_BASIC_AUTH_USERNAME": "username",
"GAROON_BASIC_AUTH_PASSWORD": "password",
"GAROON_PUBLIC_ONLY": "false"
}
}
}
}お使いの環境によっては、グローバルインストールしたgaroon-mcp-serverコマンドのPATHが正しく解決されない場合があります。
コマンドを絶対パスで指定するか、npxコマンドをお試しください。
{
"mcpServers": {
"garoon-mcp-server": {
"command": "npx",
"args": ["@garoon/mcp-server"],
"env": {
"GAROON_BASE_URL": "https://example.cybozu.com/g",
"GAROON_USERNAME": "username",
"GAROON_PASSWORD": "password",
"GAROON_PUBLIC_ONLY": "false"
}
}
}
}Visual Studio Code
{
"servers": {
"garoon-mcp-server": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"GAROON_BASE_URL",
"-e",
"GAROON_USERNAME",
"-e",
"GAROON_PASSWORD",
"-e",
"https_proxy",
"-e",
"GAROON_BASIC_AUTH_USERNAME",
"-e",
"GAROON_BASIC_AUTH_PASSWORD",
"-e",
"GAROON_PUBLIC_ONLY",
"ghcr.io/garoon/mcp-server:latest"
],
"env": {
"GAROON_BASE_URL": "https://example.cybozu.com/g",
"GAROON_USERNAME": "username",
"GAROON_PASSWORD": "password",
"https_proxy": "http://proxy.example.com:8080",
"GAROON_BASIC_AUTH_USERNAME": "username",
"GAROON_BASIC_AUTH_PASSWORD": "password",
"GAROON_PUBLIC_ONLY": "false"
}
}
}
}クライアント証明書を利用する場合は、docker runの--mountオプション[ref]でホストマシン上の*.pfxファイルをコンテナ内にマウントする必要があります。
{
"servers": {
"garoon-mcp-server": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--mount",
"type=bind,src=/absolute/path/to/pfx_file.pfx,dst=/cert.pfx",
"-e",
"GAROON_BASE_URL",
"-e",
"GAROON_USERNAME",
"-e",
"GAROON_PASSWORD",
"-e",
"GAROON_PFX_FILE_PATH",
"-e",
"GAROON_PFX_FILE_PASSWORD",
"-e",
"GAROON_PUBLIC_ONLY",
"ghcr.io/garoon/mcp-server:latest"
],
"env": {
"GAROON_BASE_URL": "https://example.s.cybozu.com/g",
"GAROON_USERNAME": "username",
"GAROON_PASSWORD": "password",
"GAROON_PFX_FILE_PATH": "/cert.pfx",
"GAROON_PFX_FILE_PASSWORD": "password",
"GAROON_PUBLIC_ONLY": "false"
}
}
}
}{
"servers": {
"garoon-mcp-server": {
"type": "stdio",
"command": "garoon-mcp-server",
"env": {
"GAROON_BASE_URL": "https://example.s.cybozu.com/g",
"GAROON_USERNAME": "username",
"GAROON_PASSWORD": "password",
"https_proxy": "http://proxy.example.com:8080",
"GAROON_PFX_FILE_PATH": "/absolute/path/to/pfx_file.pfx",
"GAROON_PFX_FILE_PASSWORD": "pfx_password",
"GAROON_BASIC_AUTH_USERNAME": "username",
"GAROON_BASIC_AUTH_PASSWORD": "password",
"GAROON_PUBLIC_ONLY": "false"
}
}
}
}お使いの環境によっては、グローバルインストールしたgaroon-mcp-serverコマンドのPATHが正しく解決されない場合があります。
コマンドを絶対パスで指定するか、npxコマンドをお試しください。
{
"servers": {
"garoon-mcp-server": {
"type": "stdio",
"command": "npx",
"args": ["@garoon/mcp-server"],
"env": {
"GAROON_BASE_URL": "https://example.cybozu.com/g",
"GAROON_USERNAME": "username",
"GAROON_PASSWORD": "password",
"GAROON_PUBLIC_ONLY": "false"
}
}
}
}設定項目
MCPB | Docker/npmの環境変数 | 説明 | 必須 |
|
| Garoon環境のベースURL例1: | ✓ |
|
| Garoonのログイン名 | ✓ |
|
| Garoonのログインパスワード | ✓ |
|
| HTTPSプロキシのURL例: | - |
|
| クライアント証明書( | - |
|
| クライアント証明書のパスワード | - |
|
| Basic認証のユーザー名 | - |
|
| Basic認証のパスワード | - |
|
| 非公開予定を除外するモード(デフォルト: | - |
注意事項:
クライアント証明書認証を使用する場合、URLのドメインは
.s.cybozu.comとなります(例:https://example.s.cybozu.com)
ツール一覧
ツール名 | 説明 |
Create Schedule Event | スケジュールを作成します。 |
Get Schedule Events | ユーザー/組織/施設を指定し、対象の予定を取得します。 |
Search Available Times | ユーザーや時間範囲などの条件を指定して空き時間を検索します。 |
Get Facilities | 施設名から施設IDを検索します。 |
Garoon Get Facility Groups | 施設グループの一覧を取得します。 |
Get Facilities In Group | 指定した施設グループに所属する施設を取得します。 |
Get Current Datetime | 現在の日時を取得します。 |
Get Garoon Users | 名前からユーザーID/表示名/ログイン名を検索します。「私」「自分」等のプロンプトにも対応しています。 |
Get Organizations | 組織名から組織IDを検索します。 |
Get Users In Organization | 指定した組織IDに所属するユーザーを取得します。 |
Garoon Get Bulletin Categories | 掲示板のカテゴリー一覧を取得します。 |
Garoon Get Bulletin Topics | 指定したカテゴリーに含まれる掲示の一覧を取得します。 |
Garoon Get Bulletin Topic Detail | 指定した掲示の本文、添付ファイル、公開期間などの詳細を取得します。 |
注意事項:
ツールは内部的にGaroonのREST APIを使用しています。 パッケージ版をご利用の場合、バージョンによってはツールが使用するREST APIがGaroon側に存在しない場合がございます。
REST APIの対応バージョンについてはGaroon APIドキュメントをご参照ください。本MCPサーバーはDB分割構成には対応していません。
サポート方針
GaroonローカルMCPサーバーは、サポート窓口の対象外です。
バグ報告や機能要望はIssuesから登録をお願いします。
コントリビューション
Contributing Guide を参照してください。
ライセンス
Copyright 2025 Cybozu, Inc.
Licensed under the Apache 2.0.
Available Tools
13 toolsgaroon-create-schedule-eventCreate Schedule EventA
Create a new schedule event in Garoon
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End datetime of the event - REQUIRED when isStartOnly=false, OPTIONAL when isStartOnly=true. For ALL_DAY events, endDateTime is always required | |
| notes | No | Notes/description of the schedule event | |
| start | Yes | Start datetime of the event - ALWAYS REQUIRED for both REGULAR and ALL_DAY events | |
| subject | No | Subject/title of schedule event | New Schedule |
| isAllDay | No | Only applies to REGULAR events. When true, the event spans the entire day but still requires specific start/end times (start-00:00, end-23:59). This is different from ALL_DAY event type which doesn't require time specifications. | |
| watchers | No | List of watchers for the schedule event | |
| attendees | No | List of attendees for the schedule event | |
| eventMenu | No | The event label (e.g., 'Meeting', 'Holiday', etc.) | |
| eventType | No | Event type that determines validation rules: 'REGULAR' = event with specific start/end times (can be modified by isAllDay flag start-00:00, end-23:59), 'ALL_DAY' = event spanning full days without time specifications (only date matters) | REGULAR |
| facilities | No | List of facilities for the schedule event | |
| isStartOnly | No | When true, the event only has a start time (no end time). When false, both start and end times are required. This field controls whether the 'end' parameter is mandatory. | |
| visibilityType | No | Publishing type { 'PUBLIC': 'Public', 'PRIVATE': 'Private' } | PUBLIC |
| facilityUsingPurpose | No | Facility usage purpose - required if 'Application for facility use' is enabled |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message. Present on error |
| result | No | Result of the operation. Present on success |
| status | No | HTTP status code from the Garoon API. Present only when the error is an HTTP error response |
| responseText | No | Raw response body from the Garoon API. Present only when the error is an HTTP error response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are present but minimal (readOnlyHint=false, destructiveHint=false, etc.), and they don't contradict. The description is sparse, but the schema provides substantial behavioral context, such as conditional requirements (end required when isStartOnly=false, eventType affects validation), defaults, and the distinction between isAllDay and ALL_DAY. The description itself doesn't add much, but it doesn't need to since the schema is rich. However, it doesn't mention any side effects like sending notifications to attendees, which might be expected. With annotations covering the basic safety profile, a 4 is justified due to the lack of contradiction and the schema's richness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that clearly states the tool's purpose. It is appropriately short and front-loaded. However, it could be slightly more informative without losing conciseness, such as mentioning that it creates a calendar event. But given the tool's name and schema, it is efficient. A 4 is reasonable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (13 parameters, nested objects, conditional logic, output schema) and the rich schema descriptions, the description itself is minimal but the schema carries the context. The output schema is present, so return values are not needed. However, the description does not mention any prerequisites like authentication, required permissions, or how to handle facility usage, which might be important. With the schema being thorough, but the description lacking any high-level guidance, a 3 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 of the tool does not add any parameter semantics beyond what the schema provides. However, the schema descriptions are quite detailed, explaining nuances like isAllDay vs ALL_DAY and the conditional requirement for end. The tool description itself doesn't go beyond the schema, but the schema does the heavy lifting, so a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a new schedule event in Garoon with a specific verb and resource. However, it does not differentiate from sibling tools like garoon-get-schedule-events, but that is less critical for a create operation. The purpose is specific enough, but could mention that it adds an event to a calendar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool vs alternatives. However, the context of creating a schedule event is implicit from the name and description, and sibling tools are mostly for reading (get) or searching, so the usage is inferred. However, there is no exclusions or alternatives mentioned, so a 3 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
garoon-get-bulletin-categoriesGaroon Get Bulletin CategoriesARead-only
Get bulletin board categories from Garoon. Use parentId to browse sub-categories. Special values: 1=root (default), -1=pending approval, -2=drafts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of categories to return (1-1000, default: 100) | |
| offset | No | Number of categories to skip from the beginning (default: 0) | |
| parentId | No | Parent category ID. Special values: 1=root (default), -1=pending approval, -2=drafts |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message. Present on error |
| result | No | Result of the operation. Present on success |
| status | No | HTTP status code from the Garoon API. Present only when the error is an HTTP error response |
| responseText | No | Raw response body from the Garoon API. Present only when the error is an HTTP error response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true, the agent already knows it's a safe read. The description adds the special parentId values (1, -1, -2) which are not fully explained by the schema, and clarifies browsing behaviorais, but it doesn't disclose pagination details or response structure. Given the annotations cover safety, the description adds useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, and each word earns its place. It efficiently communicates the core action and the critical parameter nuance without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 optional parameters, output schema exists, readOnly annotation present), the description is sufficiently complete. It covers the purposechers, the special parentId values, and there is nothing critical missing for a list-retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already has 100% coverage of parameters, including the special values for parentId, so the description adds little beyond what the schema provides. The description reinforces the parentId behavior but offers no new meaning for limit or offset. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get bulletin board categories') and the resource ('from Garoon'), and it distinguishes the tool from siblings by focusing on categories rather than topics or facilities. It also introduces the key parameter (parentId) for browsing sub-categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning 'browse sub-categories' and special parentId values, but it does not explicitly say when to use this tool instead of alternatives or when not to use it. However, the special values provide clear context for when to use those values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
garoon-get-bulletin-topicGaroon Get Bulletin Topic DetailARead-only
Get full details of a specific bulletin board topic from Garoon, including body content, attachments, public period, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| topicId | Yes | Topic ID to get details for (numeric string) |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message. Present on error |
| result | No | Result of the operation. Present on success |
| status | No | HTTP status code from the Garoon API. Present only when the error is an HTTP error response |
| responseText | No | Raw response body from the Garoon API. Present only when the error is an HTTP error response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, covering the safe-read behavior. The description adds useful context about what the response will include (body, attachments, public period, metadata), but it does not disclose behaviors such as error conditions or behavior for invalid topic IDs. This is acceptable but not rich, given the read-only annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that states the action and key detail inclusions with no redundant wording. It earns its place by differentiating the tool and informing the agent of what to expect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read-only detail endpoint with an output schema and readOnlyHint annotation, the description is sufficiently complete. It identifies the topic, the target system, and the expected content categories; the output schema handles the rest of the return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the lone parameter topicId has a clear description and pattern in the schema. The tool description only mentions "specific topic" and does not add meaningful semantic information beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description starts with "Get full details of a specific bulletin board topic from Garoon"—a specific verb, resource, and scope that clearly identifies the action. It distinguishes itself from sibling list tools like get-bulletin-topics by emphasizing "specific" and enumerating the detail fields (body, attachments, public period, metadata).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool to call when a single topic's full detail is needed, especially in contrast to the list sibling. However, it does not explicitly state when to prefer get-bulletin-topics or any exclusion criteria, so guidance is only implicit rather than clearly articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
garoon-get-bulletin-topicsGaroon Get Bulletin TopicsARead-only
Get bulletin board topics in a specific category from Garoon. Returns topic summaries with subject, updater, and update time.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of topics to return (1-1000, default: 100) | |
| offset | No | Number of topics to skip from the beginning (default: 0) | |
| categoryId | Yes | Category ID to get topics from (numeric string) |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message. Present on error |
| result | No | Result of the operation. Present on success |
| status | No | HTTP status code from the Garoon API. Present only when the error is an HTTP error response |
| responseText | No | Raw response body from the Garoon API. Present only when the error is an HTTP error response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions that it returns topic summaries with specific fields, and the readOnlyHint annotation already indicates no side effects. It does not describe pagination behavior, but the schema includes limit/offset, so that is partially covered. The description adds clarity on the return content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action and followed by the return type. It is concise and free of extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential function and return data. It does not mention potential edge cases or sorting, but for a simple retrieval tool, this is sufficient. The schema provides parameter details, so the context is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides detailed descriptions for each parameter (categoryId, limit, offset), so the description does not need to add parameter semantics. The coverage is 100%, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get bulletin topics), the resource (bulletin board topics in a category), and the context (from Garoon). It also specifies the returned data, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly mention when to use this tool over alternatives, such as when needing schedule events or facilities. However, it is clear that it is for bulletin topics, which is a distinct resource. It could benefit from stating that it is for retrieving data, but it is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
garoon-get-current-timeGet Current DatetimeARead-only
Get the current datetime in RFC 3339 format in Garoon.
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | No | The IANA timezone name (e.g., 'Asia/Tokyo') |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message. Present on error |
| result | No | Result of the operation. Present on success |
| status | No | HTTP status code from the Garoon API. Present only when the error is an HTTP error response |
| responseText | No | Raw response body from the Garoon API. Present only when the error is an HTTP error response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds useful behavioral context by specifying RFC 3339 format and the Garoon scope. It does not contradict annotations and no side-effect disclosure is needed for a read-only clock tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the verb and resource, no redundant words. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one optional parameter, a full schema description, output schema, and read-only annotation, the description is nearly complete. It could mention the default timezone behavior when the parameter is omitted, but this is a minor gap for a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the timezone parameter is fully described in the schema. The tool description adds no additional parameter semantics, such as default timezone behavior when omitted, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Get' with resource 'current datetime' and specifies output format 'RFC 3339 format' and scope 'in Garoon'. This clearly distinguishes it from sibling tools, none of which concern current time.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear context: use when you need the current datetime in RFC3339 from Garoon. It does not explicitly name alternatives, but no sibling tool provides this capability, so exclusions are unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
garoon-get-facilitiesGet FacilitiesARead-only
Get facilities data from Garoon by searching facility names with optional limit and offset parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the facilities to search for | |
| limit | No | Maximum number of facilities to return (1-1000, default: 100) | |
| offset | No | Number of facilities to skip from the beginning (default: 0) |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message. Present on error |
| result | No | Result of the operation. Present on success |
| status | No | HTTP status code from the Garoon API. Present only when the error is an HTTP error response |
| responseText | No | Raw response body from the Garoon API. Present only when the error is an HTTP error response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description only adds the search-by-name and limit/offset behavior, which is already present in the schema, so no meaningful extra behavioral context is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence contains the essential information: the action, resource, search criterion, and pagination parameters. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool shape, full schema coverage, readOnly annotation, and presence of an output schema, the description is largely sufficient. It only lacks explicit guidance on search matching semantics (exact vs. partial) and differentiation from sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents name, limit, and offset. The description's mention of 'optional limit and offset parameters' adds no semantics beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Get') and resource ('facilities data from Garoon') with clear scoping ('by searching facility names'). It does not explicitly distinguish from the sibling 'garoon-get-facilities-in-group', but the search-by-name scope is reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it—when you need facilities matched by name—but provides no explicit guidance about when to prefer alternatives like garoon-get-facilities-in-group or how to choose between similar get tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
garoon-get-facilities-in-groupGet Facilities In GroupARead-only
Get facilities that belong to a specific facility group with optional limit and offset parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of facilities to return (1-1000, default: 100) | |
| offset | No | Number of facilities to skip from the beginning (default: 0) | |
| facilityGroupId | Yes | Facility group ID to list facilities for (numeric string) |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message. Present on error |
| result | No | Result of the operation. Present on success |
| status | No | HTTP status code from the Garoon API. Present only when the error is an HTTP error response |
| responseText | No | Raw response body from the Garoon API. Present only when the error is an HTTP error response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true and openWorldHint=false, which already cover safety (read-only) and closed-world expectations. The description adds the optional limit/offset behavior, which is a mild behavioral detail. It doesn't elaborate on pagination semantics or error cases, but given annotations are present, the bar is met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, efficient and front-loaded with the main purpose. It conveys the essential action without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a simple read operation with a clear output schema, the description plus annotations and schema provide sufficient context. The only minor gap is lack of explicit pagination details, but that is covered by the parameter descriptions. The output schema exists, so return value details are not needed in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters (facilityGroupId, limit, offset) are well-documented in the schema with types, defaults, and patterns. The description simply mentions 'optional limit and offset' without adding new meaning. Baseline 3 is appropriate since schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves facilities belonging to a specific facility group, which is specific enough to differentiate from sibling tools like get-facilities (all facilities) and get-facility-groups (groups only). The verb 'get' and resource are identified, though the title already implies this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a basic context of what it does (list facilities in a group) but does not explicitly state when to use this over siblings. The sibling list includes get-facilities and get-facility-groups, but the description does not mention alternatives or exclusions. Usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
garoon-get-facility-groupsGaroon Get Facility GroupsBRead-only
Get facility groups data from Garoon with optional limit and offset parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of facility groups to return (1-1000, default: 100) | |
| offset | No | Number of facility groups to skip from the beginning (default: 0) |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message. Present on error |
| result | No | Result of the operation. Present on success |
| status | No | HTTP status code from the Garoon API. Present only when the error is an HTTP error response |
| responseText | No | Raw response body from the Garoon API. Present only when the error is an HTTP error response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the readOnlyHint=true annotation, and no contradiction exists. Beyond the annotations, the description adds that limit and offset are optional, but this information is already present in the input schema, so no additional behavioral context (e.g., default pagination behavior, ordering) is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence that communicates the action, resource, source, and key optional parameters without unnecessary words. It is appropriately front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with two optional parameters, a present output schema, and readOnlyHint annotation, the description is mostly complete. It adequately indicates what data is returned and the pagination knobs, though it could have noted that it returns all facility groups when no filters are applied, which would have made it more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both limit and offset already fully described including ranges and defaults. The description merely mentions 'optional limit and offset parameters' without adding any semantic value beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('facility groups data from Garoon'), making the tool's function unambiguous. It does not explicitly name sibling tools like get-facilities or get-facilities-in-group, but the resource name itself differentiates it from those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus sibling tools. The description only states what it does, without mentioning related tools (e.g., get-facilities, get-facilities-in-group) or any exclusions, leaving the agent to infer the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
garoon-get-organizationsGet OrganizationsARead-only
Get Garoon organization's name, ID, and code data by searching for organization names - supports pagination with optional limit and offset parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Organization name to search for (e.g., 'Sales Department', 'Engineering', 'HR') | |
| limit | No | Maximum number of organizations to return (1-1000, default: 100 - server default) | |
| offset | No | Starting position for results (0 or greater, default: 0 - server default) |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message. Present on error |
| result | No | Result of the operation. Present on success |
| status | No | HTTP status code from the Garoon API. Present only when the error is an HTTP error response |
| responseText | No | Raw response body from the Garoon API. Present only when the error is an HTTP error response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so no contradiction. The description adds useful context about search behavior and pagination support, but it does not disclose edge behavior such as no-results handling or response format details beyond what the output schema presumably provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that conveys the tool's purpose, search behavior, returned fields, and pagination support. Every phrase earns its place with no padding or unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, full schema coverage, read-only annotations, and presence of an output schema, the description provides sufficient context. It covers the core purpose, search input, returned fields, and pagination without requiring elaboration on return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents name, limit, and offset with clear semantics. The description's mention of 'name, ID, and code data' and pagination adds some alignment but little new parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb (get), resource (Garoon organizations), scope (search by organization names), and returned fields (name, ID, code). This distinguishes it from sibling tools like garoon-get-users and garoon-get-users-in-organization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you need to look up organizations by name. However, it does not explicitly distinguish when to use this tool over related sibling tools, nor does it mention exclusions or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
garoon-get-schedule-eventsGet Schedule EventsBRead-only
Search for schedule events in a specified period in Garoon
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of events to return (1-1000, default: 100 - server default) | |
| offset | No | Starting position for results (0 or greater, default: 0 - server default) | |
| target | Yes | Target ID as a numeric string (e.g., 12345) - user ID, organization ID, or facility ID | |
| rangeEnd | Yes | End datetime of the search range in RFC 3339 format (e.g., 2024-01-07T23:59:59+09:00). Must be after rangeStart | |
| rangeStart | Yes | Start datetime of the search range in RFC 3339 format (e.g., 2024-01-01T00:00:00+09:00). Must be before rangeEnd | |
| targetType | No | Type of target: 'user', 'organization', or 'facility' (default: 'user') | user |
| showPrivate | No | Whether to include private events in the search results. When true, includes both public and private events. When false, only public events are returned. NOTE: If GAROON_PUBLIC_ONLY is set to 'true', this parameter will be automatically overridden to false and only public events will be returned, regardless of the value specified |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message. Present on error |
| result | No | Result of the operation. Present on success |
| status | No | HTTP status code from the Garoon API. Present only when the error is an HTTP error response |
| responseText | No | Raw response body from the Garoon API. Present only when the error is an HTTP error response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, establishing the read-only safety profile. The description adds the period-based search scope but does not mention pagination, private-event handling, or target-type implications, though it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately states the action and scope with no filler or redundant detail. It is concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and output schema provide strong parameter and result context, and annotations cover safety. However, the description lacks sibling differentiation and does not highlight relevant behavioral nuances, leaving some contextual gaps for an agent choosing among schedule-related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with rich detail for all 7 parameters including defaults, enum values, and the GAROON_PUBLIC_ONLY override behavior. The description itself adds no parameter semantics, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and resource ('schedule events') with a specified period, clearly indicating the tool's core function. It does not explicitly differentiate this from the sibling tool 'garoon-search-available-times', which is also schedule-related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus alternatives such as 'garoon-search-available-times' or 'garoon-create-schedule-event'. The description only states the basic action, leaving the agent to infer usage context from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
garoon-get-usersGet Garoon UsersARead-only
Get user data (name, ID, code) from Garoon by searching name/code. IMPORTANT: Omit name parameter for self-referential queries ('me', 'my', 'I', 'myself', 私, 僕, 自分) to return current user info. Supports pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | A searchable display name or user code. IMPORTANT: Omit for self-referential queries ('me', 'my', 'I', 'myself', 私, 僕, 自分) to return current user info. | |
| limit | No | Maximum number of users to return (1-1000, default: 100) | |
| offset | No | Number of users to skip from the beginning (default: 0) |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message. Present on error |
| result | No | Result of the operation. Present on success |
| status | No | HTTP status code from the Garoon API. Present only when the error is an HTTP error response |
| responseText | No | Raw response body from the Garoon API. Present only when the error is an HTTP error response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the description does not need to restate that it is read-only. It adds value by disclosing the special self-referential behavior and supports pagination, which are not covered by annotations. No contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded. It states the core purpose in the first sentence, follows with a critical usage note, and ends with pagination support. No redundant or extraneous wording exists; every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, has an output schema, and sufficient annotations. The description covers the returned fields (name, ID, code), the searchable criteria (name/code), pagination, and the self-referential edge case. It does not mention prerequisites like authentication, but given the read-only nature and existing schema, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with detailed parameter descriptions, including the IMPORTANT note about omitting the name parameter for self-referential queries. The tool description repeats this note and mentions pagination, but does not add significant meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves user data (name, ID, code) from Garoon by searching name/code. It uses a specific verb (Get), names the resource (user data), and mentions the search method, which distinguishes it from sibling tools dealing with schedules, facilities, or bulletins.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by specifying how to use the tool for standard name/code searches and highlights a critical usage note for self-referential queries (omitting the name parameter). It does not explicitly mention alternatives or when not to use it, but given the sibling list, its purpose is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
garoon-get-users-in-organizationGet Users In OrganizationARead-only
Get users from a specific organization with support for pagination parameters (limit, offset) in Garoon.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of users to return (1-1000, default: 100) | |
| offset | No | Number of users to skip from the beginning (default: 0) | |
| organizationId | Yes | Organization unique ID as a numeric string (e.g., 12345) |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message. Present on error |
| result | No | Result of the operation. Present on success |
| status | No | HTTP status code from the Garoon API. Present only when the error is an HTTP error response |
| responseText | No | Raw response body from the Garoon API. Present only when the error is an HTTP error response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe read-only nature is clear. The description adds mention of pagination, but that is also visible in the schema. No additional behavioral details (e.g., rate limits, ordering) are provided, so the description adds minimal value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that gets straight to the point. It includes the core purpose and relevant parameters without any filler or redundant wording, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters fully documented in the schema, a readOnly annotation, and an output schema present, the description is adequate. It could slightly elaborate on pagination defaults or edge cases, but these are already in the schema, so the overall completeness is high.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptive text, so the baseline is 3. The description only restates the organization scope ('specific organization') which is already implied by the organizationId parameter name and description, adding no new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get users) and the specific scope (a specific organization), which distinguishes it from sibling tool garoon-get-users that likely returns all users. It also mentions pagination support, making the purpose precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for fetching users within a single organization, which provides clear context. However, it does not explicitly mention when not to use it or contrast with alternatives like garoon-get-users for all users, so it falls short of an explicit 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
garoon-search-available-timesSearch Available TimesARead-only
Search for available time slots for specified attendee or facility within given time ranges in Garoon
| Name | Required | Description | Default |
|---|---|---|---|
| attendees | No | List of attendees to check availability for | |
| facilities | No | List of facilities to check availability for | |
| timeRanges | Yes | List of time ranges to search for available times | |
| timeInterval | Yes | Time interval for available time slots | |
| facilitySearchCondition | No | Logical operator for combining multiple facility search conditions |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message. Present on error |
| result | No | Result of the operation. Present on success |
| status | No | HTTP status code from the Garoon API. Present only when the error is an HTTP error response |
| responseText | No | Raw response body from the Garoon API. Present only when the error is an HTTP error response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, confirming this is a safe read operation. The description adds that it searches within given time ranges but does not describe what the output contains (e.g., the format of available time slots) or any constraints like maximum time range duration. Since annotations cover safety, a moderate score reflects minimal additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that conveys the tool's purpose without redundant information. It is appropriately front-loaded, stating the action and key targets. Slight improvement could be made by separating the purpose from non-essential details, but overall it is concise and structured well.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 100% schema coverage, detailed parameter descriptions, and an output schema present, the description does not need to explain return values. The tool is complex due to multiple parameter types and combinations, but the schema and annotations cover the essentials. The description is complete enough for an agent to understand when and how to invoke it, though it could benefit from noting that both attendees and facilities can be specified simultaneously, which the schema implies but the description does not highlight.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed descriptions for each parameter (e.g., attendees identified by type and id/code, timeRanges in RFC 3339 format). The description adds minimal nuance beyond the schema, such as the logical operator for facilities, but does not explain the relationship between attendees and facilities (e.g., whether both must be free simultaneously). Thus, it provides adequate but not extensive semantic enhancement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for available time slots for specified attendees or facilities within given time ranges in Garoon. It distinguishes itself from sibling tools like `garoon-get-schedule-events` (which retrieves events) and `garoon-get-facilities` (which lists facilities), making its unique purpose evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking availability before scheduling, with clear required parameters (timeRanges, timeInterval). However, it does not explicitly state when not to use this tool or mention alternative tools for other scheduling operations, such as `garoon-create-schedule-event` which would be used after finding availability.
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. Dates show when Glama detected each change.
13 tool updates
v1.2.0- Changed
garoon-create-schedule-event2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
garoon-get-bulletin-categories4 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / properties / result / properties / categories / items / properties / id / descriptionPrevious value: -"Category unique identifier as a numeric string (e.g., 12345)"New value: +"Category identifier as a numeric string. Special categories use negative values: -1=pending approval, -2=drafts" - changed
Output schema / properties / result / properties / categories / items / properties / id / patternPrevious value: -"^\\d+$"New value: +"^(?:-[12]|\\d+)$"
- Changed
garoon-get-bulletin-topic4 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / properties / result / properties / topic / properties / category / properties / id / descriptionPrevious value: -"Category identifier"New value: +"Category identifier as a numeric string. Special categories use negative values: -1=pending approval, -2=drafts" - changed
Output schema / properties / result / properties / topic / properties / category / properties / id / patternPrevious value: -"^\\d+$"New value: +"^(?:-[12]|\\d+)$"
- Changed
garoon-get-bulletin-topics2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
garoon-get-current-time2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
garoon-get-facilities2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
garoon-get-facilities-in-group2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
garoon-get-facility-groups2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
garoon-get-organizations2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
garoon-get-schedule-events2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
garoon-get-users2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
garoon-get-users-in-organization2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
garoon-search-available-times2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
13 tool updates
v1.1.0- First observed
garoon-create-schedule-event - First observed
garoon-get-bulletin-categories - First observed
garoon-get-bulletin-topic - First observed
garoon-get-bulletin-topics - First observed
garoon-get-current-time - First observed
garoon-get-facilities - First observed
garoon-get-facilities-in-group - First observed
garoon-get-facility-groups - First observed
garoon-get-organizations - First observed
garoon-get-schedule-events - First observed
garoon-get-users - First observed
garoon-get-users-in-organization - First observed
garoon-search-available-times
TDQS
Each tool targets a distinct resource-action combination: schedules, bulletin topics/categories, facilities/groups, users/organizations, and current time. Even 'get-schedule-events' and 'search-available-times' serve clearly separate purposes.
All tools follow the consistent `garoon-<verb>-<object>` pattern, with get, search, and create as the only verbs. The naming style is uniformly snake_case and easily predictable.
13 tools is a reasonable size for a Garoon integration, covering several major modules without feeling bloated. However, the inclusion of a simple current-time utility is slightly peripheral and pushes the count marginally higher than necessary.
The set covers read/search operations well across schedules, bulletin boards, facilities, users, and organizations, and it can create schedule events. However, it lacks obvious lifecycle operations like updating or canceling events, or creating updating, or deleting bulletin topics, leaving notable workflow gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- AlicenseAqualityCmaintenanceA lightweight MCP server that connects AI assistants to Kintone applications for managing records and automating business workflows. It enables secure authentication and natural language interaction for performing CRUD operations and querying data within the Kintone platform.101MIT

kintone MCP Serverofficial
AlicenseAqualityAmaintenanceOfficial MCP server for kintone, enabling AI assistants to manage kintone apps, records, and settings through natural language.201,50455Apache 2.0- AlicenseNot gradedqualityDmaintenanceOfficial MCP server for Feishu/Lark OpenAPI, enabling AI assistants to interact with Feishu/Lark platform for document processing, messaging, calendar scheduling, and more.8,845MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that integrates Cybozu's Garoon groupware, enabling schedule management, meeting scheduling, and user search through natural language.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/garoon/garoon-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server