Skip to main content
Glama

tocaro-mcp

Tocaro Web API (https://api.tocaro.im) を MCP ツールとして公開するローカル MCP サーバ。 トランスポートは stdio(既定)と Streamable HTTP(--http)に対応する。

実装仕様の詳細は CLAUD.md を参照。

セットアップ

uv sync
cp .env.example .env
# .env を編集して TOCARO_API_TOKEN を設定する

Related MCP server: exercicio-4.2-todo-mcp

起動確認

# stdio で起動(Ctrl-C で終了)
uv run tocaro-mcp

# Streamable HTTP で起動
uv run tocaro-mcp --http --host 127.0.0.1 --port 8000

# MCP Inspector で対話的に確認
uv run fastmcp dev src/tocaro_mcp/server.py

# ツール一覧の確認
uv run fastmcp list src/tocaro_mcp/server.py

環境変数

.env に設定する(.env.example 参照)。

変数名

必須

既定値

説明

TOCARO_API_TOKEN

✅(read/write 個別設定時は不要)

Bot ユーザーの Bearer トークン

TOCARO_API_TOKEN_READ

read スコープ専用トークン(未設定なら TOCARO_API_TOKEN にフォールバック)

TOCARO_API_TOKEN_WRITE

write スコープ専用トークン(未設定なら TOCARO_API_TOKEN にフォールバック)

TOCARO_BASE_URL

https://api.tocaro.im

API のベース URL

TOCARO_TIMEOUT

30.0

リクエストタイムアウト(秒)

TOCARO_READ_ONLY

false

true のとき書き込み系ツールを登録しない

TOCARO_DRY_RUN

false

true のとき書き込み系ツールは送信内容を返すだけで実際に POST しない

TOCARO_LOG_LEVEL

INFO

ログレベル(DEBUG で仕様書とのフィールド差分を stderr に警告出力)

Claude Code への登録

claude mcp add tocaro \
  --env TOCARO_API_TOKEN=xxxxxxxx \
  -- uv --directory /absolute/path/to/tocaro-mcp run tocaro-mcp

--directory は必ず絶対パスで指定する。登録後 /mcp で接続状態を確認できる。

Claude Desktop への登録

claude_desktop_config.json:

{
  "mcpServers": {
    "tocaro": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/tocaro-mcp", "run", "tocaro-mcp"],
      "env": { "TOCARO_API_TOKEN": "xxxxxxxx" }
    }
  }
}

開発

uv run pytest
uv run ruff check .
uv run ruff format --check .

提供ツール

tocaro_ プレフィックスの MCP ツールを10個提供する(TOCARO_READ_ONLY=true の場合は read 系5個のみ)。

ツール名

種別

tocaro_search_users

read

tocaro_list_groups

read

tocaro_get_group_members

read

tocaro_list_todo_lists

read

tocaro_search_tasks

read

tocaro_create_group

write

tocaro_invite_to_group

write

tocaro_post_message

write

tocaro_create_todo_list

write

tocaro_create_task

write

既知の未確認事項

docs/api-responses.md を参照。有効な TOCARO_API_TOKEN がない環境で実装したため、 GET /groups/{group}/membersGET /projects のレスポンス形状、および日時文字列の 実際のフォーマットは未検証。実トークンが用意でき次第、確認して記録すること。

Available Tools

10 tools
tocaro_create_groupA

新しいグループを作成する。

Bot および Bot を作成したユーザーが自動でオーナーになる。 name は必須。作成後のグループコードは戻り値の code に含まれる。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
purposeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It usefully states that the bot and its creator automatically become owners and that the group code is returned in the 'code' field. However, it omits other behavioral details such as uniqueness constraints, naming rules, and potential side effects of creating duplicate groups.

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 three short sentences, each adding distinct value: the core action, automatic ownership behavior, and required/return-value information. It is front-loaded and contains no filler.

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 two-parameter creation tool with an output schema, the description covers the essential action, automatic ownership, required parameter, and return behavior. The only notable gap is the undocumented 'purpose' parameter, but since it is optional and nullable, an agent can still invoke the tool correctly with just 'name'.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only repeats that 'name' is required, which the schema already enforces, and provides no semantic guidance for the 'purpose' parameter. The meaning of 'name' is inferable, but 'purpose' is left entirely unexplained.

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 opens with '新しいグループを作成する' ('Create a new group'), which is a specific verb and resource. It clearly distinguishes creation from the sibling operations like listing groups, inviting to groups, and creating tasks.

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 intended use is clear: this tool creates a group. It does not explicitly name alternatives or state when not to use it, but the creation verb is distinct enough among the sibling tools that no exclusion is necessary.

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

tocaro_create_taskA

ToDoリスト(project)配下に新しいタスクを作成する。

project('tr' + 9文字のプロジェクトコード)は必須で、タスクは必ず project 配下に 作成する。project コードが不明な場合は先に tocaro_list_todo_lists で取得すること。 assignees には担当者のユーザーコード('us' + 8文字)のリストを指定する。

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
statusNounstart
projectYes
priorityNolow
assigneesNo
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

There are no annotations, so the description carries the behavioral burden. It discloses the core creation action and the code format constraints, but does not mention side effects, permissions, duplicate behavior, or validation failures. This is adequate but not deeply transparent.

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

Conciseness4/5

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

The description is compact: main action first, followed by the prerequisite and the assignee format. There is slight redundancy in repeating that the task must be under project, but no filler or irrelevant detail.

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 essential calling context is covered: the required project, the preliminary lookup tool, and the user-code format. An output schema exists, so return value details are not required here. Minor gaps such as error behaviors do not prevent correct invocation.

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

Parameters4/5

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

Schema description coverage is 0%, but the description compensates for the two non-obvious parameters by specifying the project code format ('tr' + 9 characters) and assignee user code format ('us' + 8 characters). The remaining parameters are self-explanatory or covered by enums and defaults in the schema.

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

Purpose5/5

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

The description opens with a specific action and resource: 'ToDoリスト(project)配下に新しいタスクを作成する' (create a new task under a ToDo list/project). This clearly differentiates it from siblings such as tocaro_create_todo_list and tocaro_post_message.

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 explicitly states that project is required and instructs the agent to call tocaro_list_todo_lists first when the project code is unknown. It does not explicitly say when not to use the tool, but the prerequisite and resource scope give practical guidance.

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

tocaro_create_todo_listA

グループ配下に新しい ToDoリスト(project)を作成する。

group('gr' + 8-9文字)と name は必須。作成後の project コード('tr' + 9文字)は 戻り値の code に含まれ、tocaro_create_task の project 引数に使う。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
groupYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It discloses that this is a creation operation, that the created project code appears in the return value, and that the code follows the 'tr' + 9 characters format. This is useful behavioral detail beyond the bare schema, though it does not mention permission requirements or failure modes.

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 concise sentences with no filler. The core purpose is front-loaded, followed by required parameters and the essential downstream usage note. Every sentence contributes useful information.

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 two-string-parameter creation tool with an output schema present, the description covers the essential context: what is created, required inputs, ID formats, and how the result connects to a sibling tool. Nothing critical is missing for an agent to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning by specifying the expected group ID format ('gr' + 8-9 characters) and the resulting project code format, and by noting that name is required. However, it does not explain what the name parameter should represent or any constraints on it, so parameter guidance remains incomplete.

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 a specific action and resource: creating a new ToDo list/project under a group. It also differentiates from sibling tools by explicitly connecting the returned project code to tocaro_create_task, so an agent can distinguish creation of a list from creation of a task.

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 clearly states that group and name are required and explains how the result should be used downstream with tocaro_create_task. It gives a clear context for use, though it does not explicitly mention when not to use this tool or name alternative tools like tocaro_list_todo_lists.

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

tocaro_get_group_membersA

指定したグループのメンバー一覧を取得する。

group には tocaro_list_groups で取得したグループコード('gr' + 8-9文字)を指定する。 存在しないグループコードを指定するとエラーになる。

ParametersJSON Schema
NameRequiredDescriptionDefault
groupYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description must carry the burden of behavioral disclosure. It does disclose error behavior for invalid group codes and specifies the required group code format. However, it does not mention whether the operation is read-only, pagination behavior, or any other side effects, though the '取得する' verb and output schema mitigate some ambiguity.

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 only two sentences with no wasted words. The purpose is front-loaded, and the second sentence provides essential parameter semantics. 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?

For a simple one-parameter tool with an output schema, the description covers the essential context: what input to supply, from where, and what happens with invalid input. It could mention pagination or permissions, but the tool is simple enough that these are not major gaps.

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

Parameters5/5

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

Schema coverage is 0%, so the description is the only documentation for the parameter. It fully compensates by defining the exact format ('gr' + 8-9 characters), where to get the value (tocaro_list_groups), and the consequence of providing an invalid value. The single parameter is completely unambiguous.

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 member list) and the resource (specified group), using a specific verb and resource combination. It is distinct from sibling tools like tocaro_search_users and tocaro_list_groups because it targets group membership specifically.

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 gives concrete usage guidance: obtain the group code from tocaro_list_groups and pass that code. It also warns that a nonexistent group code causes an error. It does not explicitly mention when not to use this tool versus alternatives, but the scope is clear enough that an agent can route correctly.

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

tocaro_invite_to_groupA

既存のグループにユーザーを招待する。

group('gr' + 8-9文字)は必須。members には招待するユーザーコード('us' + 8文字)の リストを指定する。ユーザーコードは tocaro_search_users で取得する。 注意: 既にオーナーであるユーザーを再度 invite すると、そのユーザーが owners から 外れ一般メンバーに降格することを実 API で確認している。既にメンバーのユーザーは members に含めないこと(先に tocaro_get_group_members で確認するとよい)。

ParametersJSON Schema
NameRequiredDescriptionDefault
groupYes
membersYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses a critical non-obvious side effect: re-inviting an owner demotes them to a general member, which is invaluable for a mutation tool. It does not cover auth requirements or idempotency, but it meaningfully exceeds baseline expectations.

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 efficiently structured: core purpose first, then parameter formats, then critical caveats. Every sentence adds operational value, and there is no redundant repetition of schema information.

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 2-parameter tool with an output schema, the description fully equips an agent to call it correctly. It covers parameter constraints, data source for members, precondition checking, and a hazardous edge case. No critical operational detail is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate. It fully does: it defines the required 'group' format ('gr' + 8-9 characters), the 'members' format ('us' + 8-character user codes), and explains how to obtain valid member values via tocaro_search_users.

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 opens with a specific verb and resource: '既存のグループにユーザーを招待する' (invite users to an existing group). This clearly differentiates it from sibling tools like create_group and post_message, and the '既存' (existing) qualifier disambiguates its scope.

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

Usage Guidelines5/5

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

The description gives explicit procedural guidance: obtain user codes via tocaro_search_users, verify current membership with tocaro_get_group_members, and avoid including existing members. It also warns against re-inviting owners, making the when-to-use and when-to-avoid conditions very clear.

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

tocaro_list_groupsA

Bot が所属するグループの一覧を取得する。

query はグループ名で検索する。page は 1-100、per_page は 1-100 の範囲。 戻り値の groups には code('gr' + 8-9文字のグループコード)が含まれ、 tocaro_post_message や tocaro_list_todo_lists などに渡すコードとして使う。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
queryNo
per_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It discloses the bot-scoped nature of the list, the query search behavior, pagination ranges, and the format/purpose of the returned group `code`. It does not mention errors or side effects, but for a read-only listing tool this is reasonable.

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 concise, front-loaded sentences with no filler. Purpose comes first, then parameter constraints, then the key output detail about the returned `code`. 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?

The tool is simple with three optional parameters and an output schema, and the description covers the key invocation details and the cross-tool usage of the returned code. It lacks explicit alternative routing and error/edge-case details, but these are partially mitigated by the output schema and low complexity.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining `query` as a group-name search and constraining `page` and `per_page` to 1-100. It does not elaborate on page/default semantics, but the property names and defaults make those reasonably clear.

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: it retrieves the list of groups the bot belongs to. It also clarifies the query behavior and the purpose of the returned code, making it easy to distinguish from sibling tools like tocaro_get_group_members or tocaro_search_users.

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 context on when to use this tool: to fetch groups and obtain `code` values for passing to other tools like tocaro_post_message and tocaro_list_todo_lists. It does not explicitly name alternatives or exclusions, but the use case is evident.

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

tocaro_list_todo_listsA

Tocaro の『ToDoリスト』(API 上は project)の一覧を取得する。

group('gr' + 8-9文字のグループコード)は必須。 after_due_time は ISO 8601 文字列で指定する(内部で UnixTime ミリ秒に変換して送信する)。 戻り値の code('tr' + 9文字)は tocaro_search_tasks / tocaro_create_task の project 引数に使う。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sortNo
groupYes
orderNo
queryNo
per_pageNo
after_due_timeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does disclose meaningful non-obvious behaviors: the group code format, the internal conversion of after_due_time to UnixTime milliseconds, and the return code format used by other tools. It does not mention pagination or sort/query behavior, but the output schema and parameter names cover much of that context.

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?

Four compact sentences, each earning its place: purpose, required parameter, date format conversion, and return-value reuse. The most important information is front-loaded and there is no filler.

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

Completeness3/5

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

For a 7-parameter list tool with no annotations, the description is adequate but has clear gaps. It explains the required parameter and one optional parameter well, and the output schema covers return structure, but the semantics of pagination, sorting, ordering, and query filtering are left to inference.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It does add valuable semantics for group and after_due_time, but five parameters (page, sort, order, query, per_page) receive no explanation beyond their names and schema types. That leaves a significant gap for correct usage of optional parameters.

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 states a specific action ('一覧を取得する') on a specific resource ('ToDoリスト' / API project), and clarifies that the group parameter is required. It clearly distinguishes this tool from siblings like tocaro_search_tasks, tocaro_create_todo_list, and tocaro_list_groups by naming the exact resource returned.

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 gives clear usage context: group must be provided, after_due_time takes an ISO 8601 string, and the returned code is meant to be reused as the project argument in other tools. It does not explicitly state when not to use this tool or compare it to alternatives, but the downstream-use note helps an agent understand its role.

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

tocaro_post_messageA

Tocaro のグループまたは個人トークにメッセージを投稿する。

group と user はどちらか一方のみを指定すること(両方指定・両方未指定はエラー)。 グループコードは tocaro_list_groups、ユーザーコードは tocaro_search_users で取得できる。 本文中で特定ユーザーにメンションする場合は <@us11111111> の形式で埋め込む。

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
userNo
groupNo
attachmentsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does disclose that this is a write operation ('post'), that invalid group/user combinations cause an error, and how mentions must be formatted. It does not cover auth, rate limits, or side effects, but the core behavior is transparent.

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 terse sentences front-load the main action and then give constraints, code sources, and mention syntax without repetition. 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?

For a 4-parameter tool with no annotation coverage, the description covers targeting rules, ID resolution, and one message formatting detail, and an output schema exists. The only notable gap is lack of any guidance on the optional attachments parameter.

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 0%, so the description must compensate. It adds meaning for text, group, and user—especially the code sources and mutual exclusivity—but never mentions the attachments parameter, which is completely undocumented in both schema and description.

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 opens with a specific verb and resource: posting a message to a Tocaro group or personal talk. It clearly distinguishes this action from sibling tools like tocaro_search_users, tocaro_create_group, and tocaro_create_task.

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

Usage Guidelines5/5

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

It states the mutual-exclusion rule for group and user, the error condition if both or neither are supplied, and explicitly points to tocaro_list_groups and tocaro_search_users for obtaining valid codes. This is direct when-to-use guidance and mentions relevant alternatives.

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

tocaro_search_tasksA

指定した ToDoリスト(project)配下のタスクを検索する。

project('tr' + 9文字のプロジェクトコード)は必須。tocaro_list_todo_lists で取得する。 last_updated_after(ISO 8601 文字列)を指定すると page / per_page / sort / direction は 無視され、更新日時の昇順で全件が返る点に注意。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sortNo
queryNo
statusNo
projectYes
per_pageNo
priorityNo
directionNo
last_updated_afterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does disclose an important, non-obvious behavioral trait: specifying last_updated_after ignores page/per_page/sort/direction and returns all results in ascending update order. It also clarifies the mandatory project identifier format. However, it does not mention other search semantics (e.g., how query or status filters combine), so it is not fully exhaustive but goes well beyond the schema.

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 compact and well-structured: main purpose first, then the required project parameter and its source, then the important caveat about last_updated_after. Every sentence adds useful information, and the caveat is front-loaded enough that an agent will not miss it.

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

Completeness4/5

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

Given the tool has an output schema, the description does not need to describe return values. It covers the core requirement, a prerequisite lookup, and the most impactful edge case (last_updated_after overriding pagination/sort), which is enough for an agent to call it correctly in most situations. It could be more complete by clarifying what 'query' searches against, but overall it is solid.

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 0%, so the description must compensate. It adds meaningful semantics for the project parameter (required format and source) and the last_updated_after parameter (override behavior). However, it does not explain the meanings or interactions of query, sort, direction, status, priority, page, and per_page, leaving a clear gap for an agent that needs to understand filtering behavior.

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 states a specific action ('タスクを検索する' – search tasks) and a specific scope (specified ToDo list / project), which clearly distinguishes it from sibling tools like tocaro_search_users and tocaro_list_todo_lists. It also gives the exact project code format ('tr' + 9 chars), leaving no ambiguity about the resource being operated on.

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 for usage: project is required and should be obtained via tocaro_list_todo_lists, which is an explicit prerequisite and sibling-tool pointer. It also warns about the special last_updated_after mode that changes pagination/sort behavior, but it does not explicitly state when not to use this tool or compare it with alternatives beyond the one pointer.

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

tocaro_search_usersA

Bot を作成したユーザーと同一契約に所属するユーザーを検索する。

query はメールアドレスまたはユーザー名の前方一致で検索する。 page は 1-100、per_page は 1-100 の範囲。 戻り値の users には code('us' + 8文字のユーザーコード)が含まれ、 他のツール(tocaro_post_message など)に渡すコードとして使う。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
queryNo
per_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses the search scope (same contract as bot creator), query behavior (prefix match), pagination limits, and return code format ('us' + 8 characters). It does not mention null-query behavior or ordering, but it is not misleading and covers the essential behavior.

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 four compact, purposeful sentences. It front-loads the main purpose and then adds parameter constraints and return-value usage without redundancy or filler.

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 optional-parameter search tool with an output schema present, this is nearly complete: it covers scope, query format, pagination bounds, and how results should be consumed. Minor gaps such as null-query semantics and result ordering are unlikely to prevent correct invocation.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate for the missing parameter documentation. It adds meaning for query (email/username prefix search), page, and per_page (valid ranges). It does not explicitly state behavior when query is null, but the schema's default null and the described prefix-match semantics make the intent reasonably clear.

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 opens with a specific action and resource: searching for users in the same contract as the bot creator. This clearly distinguishes it from sibling tools such as tocaro_search_tasks and tocaro_get_group_members.

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?

It gives clear practical context: query performs prefix matching on email or username, and the returned user code is meant to be passed to tools like tocaro_post_message. It does not explicitly state exclusion conditions or alternatives, but it provides enough guidance for an agent to select it appropriately.

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

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: users search, group members, groups, todo lists, tasks, and messages. Even where two tools return user codes, their scope is clearly separated (all users vs group members). No two tools appear to do the same thing.

Naming Consistency5/5

All tools follow the consistent `tocaro_<verb>_<noun>` pattern in snake_case. Verbs like search/list/get/create/invite/post are used predictably and match the operation performed. There are no mixed conventions or irregular names.

Tool Count5/5

Ten tools is well within the ideal range for a domain-specific server. Each tool covers a meaningful operation for Tocaro group, user, messaging, and task workflows without unnecessary duplication. The count feels appropriately scoped rather than sparse or bloated.

Completeness3/5

The surface covers creation and retrieval flows for groups, todo lists, and tasks, but missing update/delete operations leave obvious lifecycle gaps. There is also no way to read messages despite having post_message, which limits conversational workflows. The domain is clear, but several common operations are absent.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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/guanglaiyouzhen30-lang/tocalo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server