Skip to main content
Glama
garoon
by garoon

Garoon MCP Server

ci License

日本語 | English

Garoonの公式ローカルMCPサーバーです。

インストール

MCPB (旧称: DXT)

MCPBは、Claude for desktopのみがサポートしているインストール方式です。
.mcpbファイルをClaudeで開くだけでインストールすることができます。

  1. リリース一覧を開く。

  2. Assetsにあるgaroon-mcp-server.mcpbをダウンロードする。

  3. ダウンロードしたファイルをClaudeで開く。

  4. インストール確認ダイアログが表示されるのでインストールを選択する。

  5. 設定ダイアログが表示されるので、必要な情報を入力して保存する。

  6. トグルスイッチで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

設定ファイルの例

WARNING

ログイン情報を含む設定ファイルをコンピュータ上に保存することはセキュリティ上のリスクがあります。適切に管理していただき、ご利用は自己責任でお願いいたします。

ファイルパス

詳細や最新情報については、利用したい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 Base URL

GAROON_BASE_URL

Garoon環境のベースURL例1: https://example.cybozu.com/g例2: https://example.com/cgi-bin/cbgrn/grn.cgi

✓

Garoon Username

GAROON_USERNAME

Garoonのログイン名

✓

Garoon Password

GAROON_PASSWORD

Garoonのログインパスワード

✓

HTTPS Proxy

https_proxy

HTTPSプロキシのURL例: http://proxy.example.com:8080

-

PFX File Path

GAROON_PFX_FILE_PATH

クライアント証明書(*.pfx)の絶対パス

-

PFX File Password

GAROON_PFX_FILE_PASSWORD

クライアント証明書のパスワード

-

Basic Auth Username

GAROON_BASIC_AUTH_USERNAME

Basic認証のユーザー名

-

Basic Auth Password

GAROON_BASIC_AUTH_PASSWORD

Basic認証のパスワード

-

Public Only Mode

GAROON_PUBLIC_ONLY

非公開予定を除外するモード(デフォルト: 無効)有効にすると予定取得ツールはレスポンスから非公開予定を除外します。また、コメント取得ツールは非公開予定のコメントを返さず、エラーを返します。MCPBではチェックボックスをオンにし、Docker/npmでは環境変数にtrueを設定します。

-

注意事項:

  • クライアント証明書認証を使用する場合、URLのドメインは .s.cybozu.com となります(例: https://example.s.cybozu.com)

ツール一覧

ツール名

説明

Create Schedule Event

スケジュールを作成します。

Get Schedule Events

ユーザー/組織/施設を指定し、対象の予定を取得します。

Get Schedule Event Comments

指定した予定のコメント一覧を取得します。

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

14 tools
garoon-create-schedule-eventCreate Schedule EventC

Create a new schedule event in Garoon

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoEnd datetime of the event - REQUIRED when isStartOnly=false, OPTIONAL when isStartOnly=true. For ALL_DAY events, endDateTime is always required
notesNoNotes/description of the schedule event
startYesStart datetime of the event - ALWAYS REQUIRED for both REGULAR and ALL_DAY events
subjectNoSubject/title of schedule eventNew Schedule
isAllDayNoOnly 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.
watchersNoList of watchers for the schedule event
attendeesNoList of attendees for the schedule event
eventMenuNoThe event label (e.g., 'Meeting', 'Holiday', etc.)
eventTypeNoEvent 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
facilitiesNoList of facilities for the schedule event
isStartOnlyNoWhen 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.
visibilityTypeNoPublishing type { 'PUBLIC': 'Public', 'PRIVATE': 'Private' }PUBLIC
facilityUsingPurposeNoFacility usage purpose - required if 'Application for facility use' is enabled

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=false, so the write/non-destructive profile is covered. The description adds nothing beyond that: it does not say whether creating an event notifies attendees, whether it can fail on facility conflicts, or what the event type / isStartOnly interplay means for callers.

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?

A single front-loaded sentence with no filler or repetition of the title. It is appropriately short, though its brevity contributes to the broader under-specification of the tool.

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 high-complexity creation tool with 13 parameters, nested objects, and event-type validation rules, a one-line description is inadequate. An output schema exists so return values need no explanation, but nothing is said about side effects on attendees/watchers, permission requirements, or the REGULAR/ALL_DAY and isStartOnly interaction.

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 13 richly documented parameters including nested objects and enum semantics, so the schema does the heavy lifting. The description adds zero parameter meaning, which is the baseline 3 for high-coverage schemas.

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?

States a specific verb+resource ('Create a new schedule event in Garoon'), which is clear enough that an agent can distinguish it from the get-* siblings by verb alone. No explicit sibling differentiation is offered, but the resource and operation are unambiguous.

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 when-to-use guidance, no prerequisites (e.g., required permissions, event menu resolution, attendee/watcher lookup workflow), and no mention of any alternative tool. The agent gets no routing help beyond the face-value verb.

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 CategoriesA
Read-only

Get bulletin board categories from Garoon. Use parentId to browse sub-categories. Special values: 1=root (default), -1=pending approval, -2=drafts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of categories to return (1-1000, default: 100)
offsetNoNumber of categories to skip from the beginning (default: 0)
parentIdNoParent category ID. Special values: 1=root (default), -1=pending approval, -2=drafts

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safe-read profile is covered by structured data. The description adds the parentId special-value semantics but says nothing about pagination, total counts, or return behavior beyond what annotations and the output schema carry.

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?

Three short sentences with zero filler; the core action is front-loaded and the parentId guidance follows immediately. Every sentence earns its place.

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?

With an output schema present, return values need not be described, and the read-only annotations cover the safety profile. The description is complete for invocation, missing only cross-tool routing context that a sibling-heavy toolset would benefit from.

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 schema already documents limit, offset, and parentId, including the same 1/-1/-2 special values. The description merely repeats the parentId values rather than adding format or interpretation beyond the schema, making 3 the correct baseline.

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?

States a specific verb (Get) and resource (bulletin board categories) tied to Garoon, which is enough to tell it apart from siblings like garoon-get-bulletin-topics. It stops short of explicitly naming the closest sibling, so it is clear but not maximally differentiated.

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?

It gives one concrete usage instruction ('Use parentId to browse sub-categories'), which implies how to traverse the hierarchy, but offers no guidance on when to reach for this tool versus garoon-get-bulletin-topics or garoon-get-bulletin-topic. Usage is implied rather than stated.

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 DetailA
Read-only

Get full details of a specific bulletin board topic from Garoon, including body content, attachments, public period, and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicIdYesTopic ID to get details for (numeric string)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 TopicsA
Read-only

Get bulletin board topics in a specific category from Garoon. Returns topic summaries with subject, updater, and update time.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of topics to return (1-1000, default: 100)
offsetNoNumber of topics to skip from the beginning (default: 0)
categoryIdYesCategory ID to get topics from (numeric string)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 DatetimeA
Read-only

Get the current datetime in RFC 3339 format in Garoon.

ParametersJSON Schema
NameRequiredDescriptionDefault
timezoneNoThe IANA timezone name (e.g., 'Asia/Tokyo')

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 FacilitiesA
Read-only

Get facilities data from Garoon by searching facility names with optional limit and offset parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the facilities to search for
limitNoMaximum number of facilities to return (1-1000, default: 100)
offsetNoNumber of facilities to skip from the beginning (default: 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 GroupA
Read-only

Get facilities that belong to a specific facility group with optional limit and offset parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of facilities to return (1-1000, default: 100)
offsetNoNumber of facilities to skip from the beginning (default: 0)
facilityGroupIdYesFacility group ID to list facilities for (numeric string)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds essentially nothing beyond that, merely alluding to pagination, and omits auth requirements or behavior on invalid group IDs, so a baseline 3 is warranted.

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?

One front-loaded sentence with the resource and scope stated first. The trailing clause about limit/offset is redundant with the schema, a minor waste, but the whole thing is short and readable.

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?

An output schema exists, so return values need no explanation, and all three parameters are fully schema-documented. The only gap is how to obtain a valid facilityGroupId, which is left implicit.

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 coverage is 100% and each parameter is documented with defaults and bounds, so the schema carries the meaning. The description only restates that limit/offset exist as optional, adding no new semantics beyond the schema.

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?

States a specific verb ('Get') and resource ('facilities') scoped to 'a specific facility group', which distinguishes it from the sibling garoon-get-facilities (all facilities) by narrowing to a group. It never names the alternatives explicitly, but the scope is unambiguous.

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?

Usage is only implied: the required facilityGroupId suggests the caller must first know a group ID (e.g., from garoon-get-facility-groups), but the description states no when-to-use condition or contrast with garoon-get-facilities/get-facility-groups.

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 GroupsB
Read-only

Get facility groups data from Garoon with optional limit and offset parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of facility groups to return (1-1000, default: 100)
offsetNoNumber of facility groups to skip from the beginning (default: 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 OrganizationsA
Read-only

Get Garoon organization's name, ID, and code data by searching for organization names - supports pagination with optional limit and offset parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesOrganization name to search for (e.g., 'Sales Department', 'Engineering', 'HR')
limitNoMaximum number of organizations to return (1-1000, default: 100 - server default)
offsetNoStarting position for results (0 or greater, default: 0 - server default)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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-event-commentsGet Schedule Event CommentsA
Read-only

Get the list of comments on a Garoon schedule event, including each comment's author, creation datetime, body, and mentions. Supports optional limit and offset parameters for pagination. NOTE: If GAROON_PUBLIC_ONLY is set to 'true', comments of private events are not returned and this tool fails with an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of comments to return (1-1000, default: 100)
offsetNoNumber of comments to skip from the beginning (default: 0)
eventIdYesSchedule event ID to list comments for (numeric string)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the exact field set returned and, more importantly, the configuration-dependent failure mode where private-event comments are withheld. It stops short of describing error shape or permission requirements.

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?

Three sentences, each doing work: purpose and payload first, pagination second, failure caveat last. No filler, no repetition of the schema, and the most important information is front-loaded.

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?

An output schema exists, so return-value documentation is not required, and the description still previews the fields. Combined with the pagination note and the environment-dependent error caveat, an agent has what it needs to call this correctly; only the precise error surface is left unspecified.

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 limit, offset, and eventId are already fully documented in the schema with ranges and defaults. The description only restates that limit/offset exist 'for pagination' without adding format or interaction detail, so the baseline 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?

States a specific verb and resource ('Get the list of comments on a Garoon schedule event') and enumerates the returned fields (author, creation datetime, body, mentions). It is unambiguously distinct from siblings like garoon-get-schedule-events, which operate on events rather than their comments.

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?

Gives clear usage context: pagination via limit/offset, and an explicit condition under which the call fails (GAROON_PUBLIC_ONLY='true' hides private-event comments). It does not name a sibling alternative, but no sibling returns event comments, so there is no real alternative to route against.

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 EventsC
Read-only

Search for schedule events in a specified period in Garoon

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of events to return (1-1000, default: 100 - server default)
offsetNoStarting position for results (0 or greater, default: 0 - server default)
targetYesTarget ID as a numeric string (e.g., 12345) - user ID, organization ID, or facility ID
rangeEndYesEnd datetime of the search range in RFC 3339 format (e.g., 2024-01-07T23:59:59+09:00). Must be after rangeStart
rangeStartYesStart datetime of the search range in RFC 3339 format (e.g., 2024-01-01T00:00:00+09:00). Must be before rangeEnd
targetTypeNoType of target: 'user', 'organization', or 'facility' (default: 'user')user
showPrivateNoWhether 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

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered by structured data. The description adds nothing beyond that: it omits return format, pagination behavior, the public-only override, or any auth/permission context, leaving the description with no incremental behavioral value.

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?

A single, front-loaded sentence with no filler. It is efficient, though terse enough that it under-specifies rather than deliberately condensing.

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?

With an output schema present and annotations covering the read-only profile, the description does not need to explain return values or safety. It is still missing usage context and pagination/override awareness for a 7-parameter tool, so it is adequate but not complete.

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%, including detailed notes on target, rangeStart/rangeEnd RFC 3339 format, limit/offset defaults, and the showPrivate GAROON_PUBLIC_ONLY override. The description adds no parameter meaning beyond the schema, so the baseline 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 states a specific verb ('Search') and resource ('schedule events') scoped to a period, so an agent knows the core operation. However, it does not differentiate from sibling tools like garoon-search-available-times or garoon-get-schedule-event-comments, which also operate on schedule events.

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?

There is no explicit when-to-use or when-not-to-use guidance, nor any mention of alternatives. 'In a specified period' implies a time-bounded lookup, but routing among the schedule/comment/available-times siblings is left entirely to inference.

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 UsersA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoA searchable display name or user code. IMPORTANT: Omit for self-referential queries ('me', 'my', 'I', 'myself', 私, 僕, 自分) to return current user info.
limitNoMaximum number of users to return (1-1000, default: 100)
offsetNoNumber of users to skip from the beginning (default: 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

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 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.

Usage Guidelines4/5

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 OrganizationA
Read-only

Get users from a specific organization with support for pagination parameters (limit, offset) in Garoon.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of users to return (1-1000, default: 100)
offsetNoNumber of users to skip from the beginning (default: 0)
organizationIdYesOrganization unique ID as a numeric string (e.g., 12345)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 TimesC
Read-only

Search for available time slots for specified attendee or facility within given time ranges in Garoon

ParametersJSON Schema
NameRequiredDescriptionDefault
attendeesNoList of attendees to check availability for
facilitiesNoList of facilities to check availability for
timeRangesYesList of time ranges to search for available times
timeIntervalYesTime interval for available time slots
facilitySearchConditionNoLogical operator for combining multiple facility search conditions

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message. Present on error
resultNoResult of the operation. Present on success
statusNoHTTP status code from the Garoon API. Present only when the error is an HTTP error response
responseTextNoRaw response body from the Garoon API. Present only when the error is an HTTP error response

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered, but the description adds no further behavioral context such as rate limits, permission needs, or how attendee/facility combinations resolve. It essentially restates the purpose without behavioral detail.

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?

A single front-loaded sentence with no filler, clearly placing the verb and resource first. It is efficient, though its brevity borders on under-specification for a 5-parameter tool.

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?

With an output schema present and full schema coverage, the description need not explain return values. However, it omits meaningful context about how attendee versus facility searches behave and how timeInterval shapes results, leaving it adequate but not complete for a moderately complex query tool.

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 schema fully documents attendees, facilities, timeRanges, timeInterval, and facilitySearchCondition. The description names the concepts but adds no meaning beyond what the schema already provides, making the baseline 3 appropriate.

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 states a specific verb and resource ('Search for available time slots') with scope ('for specified attendee or facility within given time ranges'), so an agent understands exactly what the tool returns. It does not, however, distinguish itself from scheduling siblings like garoon-get-schedule-events, which also concern calendars.

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?

The description offers no when-to-use guidance, no prerequisites, and no mention of alternatives. There is no indication of when to prefer this availability search over fetching existing schedule events, so the agent must infer the scenario entirely.

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. 6 tool updatesv1.3.0
    • Changedgaroon-create-schedule-event4 fields changed
      • changedInput schema / properties / end / properties / dateTime / pattern
        Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
      • changedInput schema / properties / start / properties / dateTime / pattern
        Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
      • changedOutput schema / properties / result / properties / end / properties / dateTime / pattern
        Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
      • changedOutput schema / properties / result / properties / start / properties / dateTime / pattern
        Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    • Changedgaroon-get-bulletin-categories2 fields changed
      • removedOutput schema / properties / result / properties / categories / items / properties / description / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / result / properties / categories / items / properties / description / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedgaroon-get-facilities-in-group5 fields changed
      • addedOutput schema / properties / result / properties / facilities / items / additionalProperties
        Added value: +false
      • removedOutput schema / properties / result / properties / facilities / items / allOf
        Removed value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "code": {
        -        "description": "Facility code (e.g., '101', '202')",
        -        "type": "string"
        -      },
        -      "id": {
        -        "description": "Facility unique identifier as a numeric string (e.g., 12345)",
        -        "pattern": "^\\d+$",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Facility name (e.g., 'Conference Room 1', 'Meeting Room 2')",
        -        "type": "string"
        -      },
        -      "notes": {
        -        "description": "Notes about the facility",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "id",
        -      "code",
        -      "name"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "facilityGroup": {
        -        "description": "ID of the facility group this facility belongs to",
        -        "pattern": "^\\d+$",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "facilityGroup"
        -    ],
        -    "type": "object"
        -  }
        -]
      • addedOutput schema / properties / result / properties / facilities / items / properties
        Added value: +{
        +  "code": {
        +    "description": "Facility code (e.g., '101', '202')",
        +    "type": "string"
        +  },
        +  "facilityGroup": {
        +    "description": "ID of the facility group this facility belongs to",
        +    "pattern": "^\\d+$",
        +    "type": "string"
        +  },
        +  "id": {
        +    "description": "Facility unique identifier as a numeric string (e.g., 12345)",
        +    "pattern": "^\\d+$",
        +    "type": "string"
        +  },
        +  "name": {
        +    "description": "Facility name (e.g., 'Conference Room 1', 'Meeting Room 2')",
        +    "type": "string"
        +  },
        +  "notes": {
        +    "description": "Notes about the facility",
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / result / properties / facilities / items / required
        Added value: +[
        +  "id",
        +  "code",
        +  "name",
        +  "facilityGroup"
        +]
      • addedOutput schema / properties / result / properties / facilities / items / type
        Added value: +"object"
    • Addedgaroon-get-schedule-event-comments
    • Changedgaroon-get-schedule-events4 fields changed
      • changedInput schema / properties / rangeEnd / pattern
        Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
      • changedInput schema / properties / rangeStart / pattern
        Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
      • changedOutput schema / properties / result / properties / events / items / properties / end / properties / dateTime / pattern
        Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
      • changedOutput schema / properties / result / properties / events / items / properties / start / properties / dateTime / pattern
        Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    • Changedgaroon-search-available-times4 fields changed
      • changedInput schema / properties / timeRanges / items / properties / end / pattern
        Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
      • changedInput schema / properties / timeRanges / items / properties / start / pattern
        Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
      • changedOutput schema / properties / result / properties / availableTimes / items / properties / end / properties / dateTime / pattern
        Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
      • changedOutput schema / properties / result / properties / availableTimes / items / properties / start / properties / dateTime / pattern
        Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
  2. 13 tool updatesv1.2.0
    • Changedgaroon-create-schedule-event2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgaroon-get-bulletin-categories4 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / properties / result / properties / categories / items / properties / id / description
        Previous 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"
      • changedOutput schema / properties / result / properties / categories / items / properties / id / pattern
        Previous value: -"^\\d+$"New value: +"^(?:-[12]|\\d+)$"
    • Changedgaroon-get-bulletin-topic4 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / properties / result / properties / topic / properties / category / properties / id / description
        Previous value: -"Category identifier"New value: +"Category identifier as a numeric string. Special categories use negative values: -1=pending approval, -2=drafts"
      • changedOutput schema / properties / result / properties / topic / properties / category / properties / id / pattern
        Previous value: -"^\\d+$"New value: +"^(?:-[12]|\\d+)$"
    • Changedgaroon-get-bulletin-topics2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgaroon-get-current-time2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgaroon-get-facilities2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgaroon-get-facilities-in-group2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgaroon-get-facility-groups2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgaroon-get-organizations2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgaroon-get-schedule-events2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgaroon-get-users2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgaroon-get-users-in-organization2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgaroon-search-available-times2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  3. 13 tool updatesv1.1.0
    • First observedgaroon-create-schedule-event
    • First observedgaroon-get-bulletin-categories
    • First observedgaroon-get-bulletin-topic
    • First observedgaroon-get-bulletin-topics
    • First observedgaroon-get-current-time
    • First observedgaroon-get-facilities
    • First observedgaroon-get-facilities-in-group
    • First observedgaroon-get-facility-groups
    • First observedgaroon-get-organizations
    • First observedgaroon-get-schedule-events
    • First observedgaroon-get-users
    • First observedgaroon-get-users-in-organization
    • First observedgaroon-search-available-times

TDQS

A3.7/5.0

Scored across 14 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions (create schedule event, search available times, get comments, get facilities vs facility groups vs facilities-in-group, bulletin categories vs topics vs topic). The only mild overlap is get-users vs get-users-in-organization, but descriptions make the boundary clear.

Naming Consistency5/5

Every tool uses the same garoon- prefix followed by a kebab-case verb_noun pattern (create-schedule-event, get-facilities, get-bulletin-topics). Naming is highly predictable and uniform across all 14 tools.

Tool Count5/5

14 tools is well within a healthy range for a groupware server covering scheduling, facilities, organizations, and bulletins. Each tool maps to a distinct resource or query, with no filler.

Completeness3/5

Coverage is heavily read-oriented: schedules support create+get but no update/delete, and bulletins are read-only (categories/topics/topic) with no create or reply. Core browsing is thorough, but write/lifecycle operations for bulletins and event management leave notable gaps.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A 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.
    10
    1
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Official MCP server for kintone, enabling AI assistants to manage kintone apps, records, and settings through natural language.
    20
    696 npm
    58
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that integrates Cybozu's Garoon groupware, enabling schedule management, meeting scheduling, and user search through natural language.
    MIT