# Gemmein (com.gemmein/mcp): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/com.gemmein%2Fmcp/versions/latest)
- Connected to: https://api.gemmein.com/mcp
- Homepage: https://gemmein.com/
- Repository: https://github.com/gemmeinhq/gemmein-release
- Scoring rules: v2
- Tools: 139
- Average: 54.3 / 100 (Cloudy)
- Near-identical pairs: 244

This page shows how Gemmein (com.gemmein/mcp)'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: 139 tools. Above 40, models choose less accurately.
- Minor: 244 pairs with nearly the same description in all; the top 12 are shown.
- Minor: The server's instructions are 9029 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

- `put_ai_alias`: 26 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name, provider, model.
  - Minor: String arguments with no constraint or example: name, provider, model.
  - Minor: Says nothing about what it returns.
- `set_sender_words`: 26 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: account, support, news.
  - Minor: String arguments with no constraint or example: account, support, news.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `put_email_template`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name, content.
  - Minor: String arguments with no constraint or example: name, content.
  - Minor: Says nothing about what it returns.
- `validate_collection_name`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name.
  - Minor: String arguments with no constraint or example: name.
  - Minor: Says nothing about what it returns.
- `set_email_switches`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: sends, newSignIn.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument sends is unclear.
  - Minor: The meaning of the boolean argument newSignIn is unclear.
  - Minor: Says nothing about what it returns.
- `dev_delete_record`: 34 / 100
  - Major: Arguments without a description: collection, recordId.
  - Minor: String arguments with no constraint or example: collection, recordId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: recordId. Name the tool or the place that returns it, or models look it up first.
- `publish_record`: 34 / 100
  - Major: Arguments without a description: collection, recordId, published.
  - Minor: String arguments with no constraint or example: collection, recordId.
  - Minor: The meaning of the boolean argument published is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: recordId. Name the tool or the place that returns it, or models look it up first.
- `rename_app`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name.
  - Minor: String arguments with no constraint or example: name.
  - Minor: Says nothing about what it returns.
- `set_alert_preferences`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: preferences[].kind, preferences[].enabled.
  - Minor: String arguments with no constraint or example: preferences[].kind.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument preferences[].enabled is unclear.
  - Minor: Says nothing about what it returns.
- `set_app_lives`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: lives.
  - Minor: Says nothing about what it returns.
- `test_member_add`: 34 / 100
  - Major: Arguments without a description: name.
  - Minor: String arguments with no constraint or example: name.
  - Minor: Says nothing about what it returns.
- `update_record`: 34 / 100
  - Major: Arguments without a description: collection, recordId, data, replace.
  - Minor: String arguments with no constraint or example: collection, recordId.
  - Minor: The meaning of the boolean argument replace is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: recordId. Name the tool or the place that returns it, or models look it up first.
- `test_outcome`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: as, since.
  - Minor: String arguments with no constraint or example: as, since.
- `put_record`: 38 / 100
  - Major: Arguments without a description: collection, ownerUserId, audienceUserId.
  - Minor: String arguments with no constraint or example: collection, ownerUserId, audienceUserId.
  - Minor: Says nothing about what it returns.
- `put_view`: 39 / 100
  - Major: Arguments without a description: name, definition.
  - Minor: String arguments with no constraint or example: name.
  - Minor: Says nothing about what it returns.
- `view_reorder`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name, recordId, move.
  - Minor: String arguments with no constraint or example: name, recordId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: recordId. Name the tool or the place that returns it, or models look it up first.
- `approvals_list`: 41 / 100
  - Major: Arguments without a description: open.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument open is unclear.
  - Minor: Says nothing about what it returns.
- `dev_email_templates`: 41 / 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.
- `explain_error`: 41 / 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.
- `set_ai_settings`: 41 / 100
  - Major: Arguments without a description: provider, rawCalls, models, baseUrl, name.
  - Minor: String arguments with no constraint or example: baseUrl, name.
  - Minor: The meaning of the boolean argument rawCalls is unclear.
  - Minor: Says nothing about what it returns.
- `test_mail`: 41 / 100
  - Major: Arguments without a description: to, latest.
  - Minor: String arguments with no constraint or example: to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument latest is unclear.
  - Minor: Says nothing about what it returns.
- `waiting_review`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: collection.
  - Minor: String arguments with no constraint or example: collection.
  - Minor: Says nothing about what it returns.
- `site_test_result`: 43 / 100
  - Major: Arguments without a description: runId, screenshots, pages.
  - Minor: String arguments with no constraint or example: runId.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument screenshots is unclear.
- `declare_collection`: 44 / 100
  - Major: Arguments without a description: name, declaration.
  - Minor: String arguments with no constraint or example: name.
  - Minor: Says nothing about what it returns.
- `dev_delete_ai_alias`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `dev_delete_email_template`: 44 / 100
  - Major: Arguments without a description: name.
  - Minor: Says nothing about what it returns.
- `live_records`: 44 / 100
  - Major: Arguments without a description: collection, limit.
  - Minor: String arguments with no constraint or example: collection.
  - Minor: Says nothing about what it returns.
- `put_ai_tool`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name, tool.
  - Minor: String arguments with no constraint or example: name.
- `replay_relay`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: env.
  - Minor: Says nothing about what it returns.
- `request_server_key`: 44 / 100
  - Major: Arguments without a description: name, env, access.
  - Minor: String arguments with no constraint or example: name, access.
  - Minor: Says nothing about what it returns.
- `alert_preferences`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `dev_people`: 46 / 100
  - Major: Arguments without a description: limit.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `live_inbox`: 46 / 100
  - Major: Arguments without a description: threadId, unansweredOnly.
  - Minor: String arguments with no constraint or example: threadId.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument unansweredOnly is unclear.
  - Minor: Says nothing about what it returns.
- `live_people`: 46 / 100
  - Major: Arguments without a description: limit.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `provider_key`: 46 / 100
  - Major: Arguments without a description: env, wait.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `resume_relay`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `put_relay`: 47 / 100
  - Major: Arguments without a description: definition.
  - Minor: Says nothing about what it returns.
- `test_member_credits`: 47 / 100
  - Minor: Arguments without a description: amount.
  - Minor: Says nothing about what it returns.
- `ai_calls_read`: 49 / 100
  - Minor: Arguments without a description: before.
  - Minor: String arguments with no constraint or example: before.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `dev_delete_collection`: 49 / 100
  - Minor: Says nothing about what it returns.
- `live_revenue`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `pause_relay`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `site_publish`: 49 / 100
  - Minor: Arguments without a description: draftId.
  - Minor: String arguments with no constraint or example: draftId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: draftId. Name the tool or the place that returns it, or models look it up first.
- `test_member_cancel_subscription`: 49 / 100
  - Minor: Says nothing about what it returns.
- `test_member_unsuspend`: 49 / 100
  - Minor: Says nothing about what it returns.
- `live_webhooks`: 50 / 100
  - Minor: Arguments without a description: status.
  - Minor: No `required` list, so every argument is optional.
- `remove_follow`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `request_email_sender_look`: 50 / 100
  - Major: Arguments without a description: account, support, news.
  - Minor: String arguments with no constraint or example: account, support, news.
  - Minor: No `required` list, so every argument is optional.
- `dev_functions`: 51 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `live_errors`: 51 / 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.
- `request_email_switches`: 51 / 100
  - Major: Arguments without a description: sends, newSignIn.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument sends is unclear.
  - Minor: The meaning of the boolean argument newSignIn is unclear.
- `dev_records`: 52 / 100
  - Minor: Arguments without a description: collection.
  - Minor: String arguments with no constraint or example: collection.
  - Minor: Says nothing about what it returns.
- `live_logs`: 52 / 100
  - Major: Arguments without a description: stream, limit.
  - Minor: Says nothing about what it returns.
- `live_usage`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `test_run_ai_tool`: 52 / 100
  - Minor: Says nothing about what it returns.
- `reference`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `site_history`: 53 / 100
  - Minor: Arguments without a description: cursor.
  - Minor: String arguments with no constraint or example: cursor.
  - Minor: No `required` list, so every argument is optional.
- `cancel_approval`: 54 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `close_circle`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `dev_delete_ai_tool`: 54 / 100
  - Minor: Says nothing about what it returns.
- `dev_delete_function`: 54 / 100
  - Minor: Says nothing about what it returns.
- `dev_delete_relay`: 54 / 100
  - Minor: Says nothing about what it returns.
- `dev_delete_view`: 54 / 100
  - Minor: Says nothing about what it returns.
- `live_overview`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `request_publish_record`: 54 / 100
  - Minor: Arguments without a description: recordId, published.
  - Minor: String arguments with no constraint or example: recordId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument published is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: recordId. Name the tool or the place that returns it, or models look it up first.
- `test_member_suspend`: 54 / 100
  - Minor: Says nothing about what it returns.
- `remove_from_circle`: 55 / 100
  - Minor: Says nothing about what it returns.
- `dev_errors`: 56 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `live_emails`: 56 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `search_docs`: 56 / 100
  - Major: Says nothing about when to use it, or when not to.
- `site_promote`: 56 / 100
- `site_rollback`: 56 / 100
  - Major: Says nothing about when to use it, or when not to.
- `site_share_link`: 56 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `dev_view`: 57 / 100
  - Minor: Arguments without a description: limit, cursor.
  - Minor: String arguments with no constraint or example: cursor.
  - Minor: Says nothing about what it returns.
- `live_view`: 57 / 100
  - Minor: Arguments without a description: limit, cursor.
  - Minor: String arguments with no constraint or example: cursor.
  - Minor: Says nothing about what it returns.
- `refund_steps`: 57 / 100
  - Minor: Says nothing about what it returns.
- `site_test`: 57 / 100
  - Minor: Arguments without a description: journeys[].name, journeys[].steps.
  - Minor: String arguments with no constraint or example: journeys[].name.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `view_action`: 57 / 100
  - Minor: Arguments without a description: recordId.
  - Minor: String arguments with no constraint or example: recordId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: recordId. Name the tool or the place that returns it, or models look it up first.
- `view_edit`: 57 / 100
  - Minor: Arguments without a description: name, recordId, showUntil.
  - Minor: String arguments with no constraint or example: name, recordId, showUntil.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: recordId. Name the tool or the place that returns it, or models look it up first.
- `explain_rule`: 58 / 100
  - Minor: No `required` list, so every argument is optional.
- `function_secret`: 58 / 100
  - Minor: Arguments without a description: function.
  - Minor: String arguments with no constraint or example: function.
- `people_graph`: 58 / 100
  - Minor: Arguments without a description: cursor.
  - Minor: String arguments with no constraint or example: cursor.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `request_update_record`: 58 / 100
  - Minor: Arguments without a description: recordId.
  - Minor: String arguments with no constraint or example: recordId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: recordId. Name the tool or the place that returns it, or models look it up first.
- `site_download`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `site_rebuild`: 58 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `prove_app`: 59 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `relay_runs`: 59 / 100
  - Minor: Arguments without a description: env, status.
  - Minor: No `required` list, so every argument is optional.
- `request_app_lives`: 59 / 100
  - Minor: Arguments without a description: lives.
- `sends_read`: 59 / 100
  - Minor: Says nothing about what it returns.
- `site_put_file`: 59 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: draftId.
  - Minor: String arguments with no constraint or example: draftId.
  - Minor: Required identifiers whose description does not say where the value comes from: draftId. Name the tool or the place that returns it, or models look it up first.
- `site_revoke_previews`: 59 / 100
  - Minor: Says nothing about what it returns.
- `site_unpublish`: 59 / 100
  - Minor: Says nothing about what it returns.
- `sync`: 59 / 100
  - Minor: Says nothing about what it returns.
- `dev_logs`: 60 / 100
  - Minor: Arguments without a description: stream.
  - Minor: Says nothing about what it returns.
- `pull`: 61 / 100
- `reaffirm_template`: 61 / 100
- `request_accept_terms`: 61 / 100
  - Minor: No `required` list, so every argument is optional.
- `request_cancel_subscription`: 61 / 100
- `request_create_record`: 61 / 100
  - Minor: The description mentions none of its 3 or more arguments.
- `request_delete_person`: 61 / 100
- `request_delete_record`: 61 / 100
  - Minor: Arguments without a description: recordId.
  - Minor: String arguments with no constraint or example: recordId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: recordId. Name the tool or the place that returns it, or models look it up first.
- `request_suspend_person`: 61 / 100
- `request_unsuspend_person`: 61 / 100
- `set_payments`: 61 / 100
  - Minor: Arguments without a description: payments.
- `site_draft`: 61 / 100
  - Major: Says nothing about when to use it, or when not to.
- `changes`: 63 / 100
  - Minor: No `required` list, so every argument is optional.
- `buy_plan`: 64 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `inbox_reply`: 64 / 100
  - Minor: Arguments without a description: threadId.
  - Minor: String arguments with no constraint or example: threadId.
  - Minor: Required identifiers whose description does not say where the value comes from: threadId. Name the tool or the place that returns it, or models look it up first.
- `keys_list`: 64 / 100
  - Minor: Says nothing about what it returns.
- `live_action_status`: 64 / 100
  - Minor: Says nothing about what it returns.
- `live_subscriptions`: 64 / 100
  - Minor: Says nothing about what it returns.
- `request_delete_collection`: 64 / 100
- `request_grant_credits`: 64 / 100
- `request_rename_app`: 64 / 100
  - Minor: String arguments with no constraint or example: name.
- `view_add`: 65 / 100
  - Minor: Arguments without a description: showUntil.
  - Minor: String arguments with no constraint or example: showUntil.
  - Minor: Says nothing about what it returns.
- `check_integration`: 66 / 100
  - Minor: The description mentions none of its 3 or more arguments.
- `guide`: 66 / 100
  - Minor: No `required` list, so every argument is optional.
- `request_go_live`: 66 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `request_promote`: 66 / 100
  - Minor: No `required` list, so every argument is optional.
- `request_revoke_server_key`: 66 / 100
- `domain_site`: 67 / 100
  - Minor: Says nothing about what it returns.
- `put_function`: 67 / 100
  - Minor: Arguments without a description: name, reach.
  - Minor: String arguments with no constraint or example: name.
- `site_status`: 68 / 100
  - Minor: No `required` list, so every argument is optional.
- `test_pay`: 68 / 100
- `connect_payments`: 69 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `create_app`: 69 / 100
- `explain_relay`: 69 / 100
- `request_delete_ai_tool`: 69 / 100
- `request_delete_domain`: 69 / 100
- `request_delete_relay`: 69 / 100
- `request_unpublish_site`: 69 / 100
- `site_read`: 70 / 100
  - Minor: No `required` list, so every argument is optional.
- `domain_check`: 71 / 100
- `request_replace_every_key`: 71 / 100
  - Minor: No `required` list, so every argument is optional.
- `app_status`: 74 / 100
- `request_add_domain`: 74 / 100
- `domain_connect_link`: 76 / 100
- `site_errors`: 76 / 100
  - Minor: The description is long (411 words). It helps selection but costs steps and tokens.
  - Minor: No `required` list, so every argument is optional.
- `tools_map`: 76 / 100
  - Minor: No `required` list, so every argument is optional.

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)
