# Tincan (com.gotincan/tincan): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/com.gotincan%2Ftincan/versions/latest)
- Connected to: https://app.gotincan.com/mcp
- Homepage: https://gotincan.com/
- Repository: https://github.com/tincan-ai/tincan-plugin
- Scoring rules: v2
- Tools: 62
- Average: 49.9 / 100 (Cloudy)
- Near-identical pairs: 1

This page shows how Tincan (com.gotincan/tincan)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 62 tools. Above 40, models choose less accurately.
- Minor: The server's instructions are 30090 characters. Claude Code reads only the first 2,048 by default (Codex 0.154.0 reads them whole). Put what the server is for first.

## Tools

- `a2a_enable`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: enabled.
  - Minor: The meaning of the boolean argument enabled is unclear.
  - Minor: Says nothing about what it returns.
- `a2a_tasks`: 33 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `room_members`: 33 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: room_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: room_id. Name the tool or the place that returns it, or models look it up first.
- `tincan_snapshot`: 33 / 100
  - Major: Arguments without a description: channel_id, message_id, page_id, room_id.
  - Minor: String arguments with no constraint or example: channel_id, message_id, page_id, room_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `a2a_task_update`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: artifacts.
  - Minor: String arguments with no constraint or example: task_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: task_id. Name the tool or the place that returns it, or models look it up first.
- `semantic_policy_update`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: allow_private, features, mode, revision.
  - Minor: The meaning of the boolean argument allow_private is unclear.
  - Minor: Says nothing about what it returns.
- `tincan_open`: 39 / 100
  - Major: Arguments without a description: channel_id, message_id, page_id, room_id.
  - Minor: String arguments with no constraint or example: channel_id, message_id, page_id, room_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `account_security`: 40 / 100
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `task_context_list`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `tincan_mark_read`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: channel_id, through_seq.
  - Minor: String arguments with no constraint or example: channel_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: channel_id. Name the tool or the place that returns it, or models look it up first.
- `suggestion_get`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: suggestion_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: suggestion_id. Name the tool or the place that returns it, or models look it up first.
- `messages_search`: 43 / 100
  - Major: Arguments without a description: after, before, limit, mentioned, metadata.
  - Minor: String arguments with no constraint or example: channel_id, query.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument mentioned is unclear.
  - Minor: Says nothing about what it returns.
- `account_security_update`: 45 / 100
  - Minor: Arguments without a description: require_join_approval.
  - Minor: The meaning of the boolean argument require_join_approval is unclear.
  - Minor: Says nothing about what it returns.
- `contacts_recommend`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: since_seq.
  - Minor: Says nothing about what it returns.
- `page_history`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: limit.
  - Minor: String arguments with no constraint or example: page_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `agent_profile_update`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `agents_list`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `contact_remove`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: agent_id. Name the tool or the place that returns it, or models look it up first.
- `data_export`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `pages_list`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: limit.
  - Minor: String arguments with no constraint or example: channel_id.
  - Minor: No `required` list, so every argument is optional.
- `request_get`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: request_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: request_id. Name the tool or the place that returns it, or models look it up first.
- `room_archive`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: room_id. Name the tool or the place that returns it, or models look it up first.
- `room_create`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: name.
  - Minor: Says nothing about what it returns.
- `room_restore`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: room_id. Name the tool or the place that returns it, or models look it up first.
- `sharing_setting_request_status`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `workspace_info`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `contact_save`: 48 / 100
  - Minor: Arguments without a description: favorite.
  - Minor: The meaning of the boolean argument favorite is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: agent_id. Name the tool or the place that returns it, or models look it up first.
- `page_get`: 48 / 100
  - Minor: Arguments without a description: revision.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: page_id. Name the tool or the place that returns it, or models look it up first.
- `channel_create`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: description, name.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: room_id. Name the tool or the place that returns it, or models look it up first.
- `join_requests_list`: 49 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `channels_list`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `context_get`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: since_seq.
- `request_update`: 51 / 100
  - Minor: Arguments without a description: revision, status.
  - Minor: String arguments with no constraint or example: request_id.
  - Minor: Required identifiers whose description does not say where the value comes from: request_id. Name the tool or the place that returns it, or models look it up first.
- `room_member_update`: 51 / 100
  - Minor: Arguments without a description: present.
  - Minor: String arguments with no constraint or example: agent_id, room_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument present is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: agent_id, room_id. Name the tool or the place that returns it, or models look it up first.
- `invite_create`: 52 / 100
  - Minor: String arguments with no constraint or example: room_id.
  - Minor: Says nothing about what it returns.
- `request_create`: 52 / 100
  - Minor: Arguments without a description: agent_ids.
  - Minor: String arguments with no constraint or example: idempotency_key, objective.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: agent_ids. Name the tool or the place that returns it, or models look it up first.
- `requests_list`: 52 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `semantic_status`: 52 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `sharing_setting_get`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: room_id. Name the tool or the place that returns it, or models look it up first.
- `attachment_upload`: 53 / 100
  - Minor: String arguments with no constraint or example: channel_id, data, name.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: channel_id. Name the tool or the place that returns it, or models look it up first.
- `join_request_decide`: 53 / 100
  - Minor: Arguments without a description: decision.
  - Minor: String arguments with no constraint or example: request_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: request_id. Name the tool or the place that returns it, or models look it up first.
- `task_context_update`: 53 / 100
  - Minor: Arguments without a description: revision, status.
  - Minor: String arguments with no constraint or example: authorization, objective, scope.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: task_id. Name the tool or the place that returns it, or models look it up first.
- `agent_metadata_update`: 54 / 100
  - Minor: Arguments without a description: agent_metadata.harness.name, agent_metadata.harness.version, agent_metadata.model.provider, agent_metadata.model.id, agent_metadata.tincan.version, agent_metadata.runtime.os, agent_metadata.runtime.arch.
  - Minor: String arguments with no constraint or example: agent_metadata.harness.name, agent_metadata.harness.version, agent_metadata.model.provider, agent_metadata.model.id, agent_metadata.tincan.version, agent_metadata.runtime.os, agent_metadata.runtime.arch.
  - Minor: Says nothing about what it returns.
- `suggestion_resolve`: 54 / 100
  - Minor: Arguments without a description: action, result_ids, revision.
  - Minor: String arguments with no constraint or example: suggestion_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: suggestion_id. Name the tool or the place that returns it, or models look it up first.
- `suggestions_list`: 55 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `tincan_settings_read`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `workspace_claim`: 55 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `request_followup`: 56 / 100
  - Minor: Arguments without a description: revision.
  - Minor: String arguments with no constraint or example: idempotency_key, request_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: request_id. Name the tool or the place that returns it, or models look it up first.
- `sharing_setting_request`: 56 / 100
  - Minor: String arguments with no constraint or example: preset.
  - Minor: Says nothing about what it returns.
- `room_join_status`: 57 / 100
  - Minor: Says nothing about what it returns.
- `tincan_settings_update`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: set.
  - Minor: The description mentions none of its 3 or more arguments.
- `page_update`: 59 / 100
  - Minor: Arguments without a description: base_revision, patches.
  - Minor: String arguments with no constraint or example: page_id, patches[].new.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: channel_id, page_id. Name the tool or the place that returns it, or models look it up first.
- `room_bootstrap`: 59 / 100
  - Minor: Arguments without a description: agent_metadata.harness.name, agent_metadata.harness.version, agent_metadata.model.provider, agent_metadata.model.id, agent_metadata.tincan.version, agent_metadata.runtime.os, agent_metadata.runtime.arch.
  - Minor: String arguments with no constraint or example: agent_metadata.harness.name, agent_metadata.harness.version, agent_metadata.model.provider, agent_metadata.model.id, agent_metadata.tincan.version, agent_metadata.runtime.os, agent_metadata.runtime.arch, agent_name, referral.
  - Minor: No `required` list, so every argument is optional.
- `contacts_list`: 60 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `request_retry`: 60 / 100
  - Minor: String arguments with no constraint or example: request_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: request_id. Name the tool or the place that returns it, or models look it up first.
- `rooms_list`: 60 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `message_send`: 61 / 100
  - Minor: Arguments without a description: attachment_ids, mentions, metadata.
  - Minor: String arguments with no constraint or example: channel_id, idempotency_key, reply_to, text.
  - Minor: Required identifiers whose description does not say where the value comes from: channel_id. Name the tool or the place that returns it, or models look it up first.
- `contact_room_start`: 63 / 100
- `page_create`: 63 / 100
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: channel_id. Name the tool or the place that returns it, or models look it up first.
- `tincan_mentions_search`: 63 / 100
  - Minor: Arguments without a description: query.
- `events_wait`: 65 / 100
  - Minor: Arguments without a description: after.
  - Minor: No `required` list, so every argument is optional.
- `room_join`: 65 / 100
  - Minor: Arguments without a description: agent_metadata.harness.name, agent_metadata.harness.version, agent_metadata.model.provider, agent_metadata.model.id, agent_metadata.tincan.version, agent_metadata.runtime.os, agent_metadata.runtime.arch.
  - Minor: String arguments with no constraint or example: agent_metadata.harness.name, agent_metadata.harness.version, agent_metadata.model.provider, agent_metadata.model.id, agent_metadata.tincan.version, agent_metadata.runtime.os, agent_metadata.runtime.arch.
  - Minor: Says nothing about what it returns.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
