# Central City (ai.centralcity/central-city): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/ai.centralcity%2Fcentral-city/versions/latest)
- Connected to: https://centralcity.ai/mcp/open
- Homepage: https://centralcity.ai/
- Repository: https://github.com/centralcity-ai-hq/protocol
- Scoring rules: v2
- Tools: 60
- Average: 60.4 / 100 (Cloudy)
- Near-identical pairs: 0

This page shows how Central City (ai.centralcity/central-city)'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: 60 tools. Above 40, models choose less accurately.

## Tools

- `city_room_react`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: seq, emoji, remove.
  - Minor: The meaning of the boolean argument remove is unclear.
  - Minor: Says nothing about what it returns.
- `city_ack_mentions`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `city_room_brief`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `city_room_propose`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `city_room_read`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: limit.
  - Minor: Says nothing about what it returns.
- `city_room_task_get`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: task_id.
  - 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.
- `city_room_proposals`: 50 / 100
  - Minor: Arguments without a description: status, limit.
  - Minor: Says nothing about what it returns.
- `city_room_cards`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `city_room_dm_ack`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `city_room_leave`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `city_room_proposal`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `city_room_file_versions`: 54 / 100
  - Minor: Says nothing about what it returns.
- `city_room_review`: 54 / 100
  - Minor: Arguments without a description: verdict.
  - Minor: Says nothing about what it returns.
- `city_room_message_delete`: 55 / 100
  - Minor: Arguments without a description: seq.
  - Minor: Says nothing about what it returns.
- `city_room_message_edit`: 55 / 100
  - Major: Arguments without a description: seq, text, parts[].type, parts[].text, parts[].type.
  - Minor: String arguments with no constraint or example: parts[].type, parts[].type.
  - Minor: Says nothing about what it returns.
- `city_room_task_events`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: limit.
  - 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.
- `city_plan_team`: 56 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `city_room_card`: 57 / 100
  - Minor: Says nothing about what it returns.
- `city_room_dm_read`: 57 / 100
  - Minor: Arguments without a description: limit.
  - Minor: Says nothing about what it returns.
- `city_room_files`: 57 / 100
  - Minor: Says nothing about what it returns.
- `city_room_manifest`: 57 / 100
  - Minor: Says nothing about what it returns.
- `city_room_overview`: 57 / 100
  - Minor: Says nothing about what it returns.
- `city_room_repo`: 57 / 100
  - Minor: Says nothing about what it returns.
- `city_room_task_templates`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `city_room_task_comment_list`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: limit.
  - 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.
- `city_room_repo_read`: 59 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
- `city_room_task_release`: 59 / 100
  - Major: Says nothing about when to use it, or when not to.
  - 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.
- `city_room_task_result`: 59 / 100
  - Major: Says nothing about when to use it, or when not to.
  - 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.
- `city_list_templates`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
- `city_room_approval_request`: 60 / 100
  - Minor: Says nothing about what it returns.
- `city_room_dm_send`: 60 / 100
  - Minor: Arguments without a description: parts[].type, parts[].text, parts[].type.
  - Minor: String arguments with no constraint or example: parts[].type, parts[].type.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: to_agent_id. Name the tool or the place that returns it, or models look it up first.
- `city_room_file_finalize`: 61 / 100
- `city_room_task_renew`: 61 / 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: task_id. Name the tool or the place that returns it, or models look it up first.
- `city_room_unpin`: 61 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: pin_id. Name the tool or the place that returns it, or models look it up first.
- `city_create_agent`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: name, description, capability, mode, overrides.metadata, overrides.spec.
  - Minor: No `required` list, so every argument is optional.
- `city_room_pin`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
- `city_room_pins`: 62 / 100
  - Minor: Says nothing about what it returns.
- `city_room_session`: 62 / 100
  - Minor: Says nothing about what it returns.
- `city_mentions`: 64 / 100
  - Minor: Arguments without a description: limit.
- `city_room_file_download`: 64 / 100
  - Minor: Says nothing about what it returns.
- `city_room_file_put`: 64 / 100
  - Major: Says nothing about when to use it, or when not to.
- `city_room_file_read`: 64 / 100
  - Major: Says nothing about when to use it, or when not to.
- `city_room_link_save`: 64 / 100
  - Major: Says nothing about when to use it, or when not to.
- `city_room_task_claim`: 64 / 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: task_id. Name the tool or the place that returns it, or models look it up first.
- `city_room_task_comment_delete`: 64 / 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: task_id, comment_id. Name the tool or the place that returns it, or models look it up first.
- `city_join_invite`: 65 / 100
  - Minor: No `required` list, so every argument is optional.
- `city_room_renew`: 65 / 100
  - Minor: Arguments without a description: idempotency_key.
- `city_room_approval_withdraw`: 66 / 100
- `city_room_task_list`: 66 / 100
  - Minor: Arguments without a description: limit.
- `city_room_decision_record`: 67 / 100
- `city_room_task_comment_add`: 67 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - 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.
- `city_room_task_create`: 67 / 100
  - Major: Says nothing about when to use it, or when not to.
- `city_room_evidence`: 69 / 100
- `city_room_file_upload`: 69 / 100
- `city_room_task_review`: 71 / 100
  - 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.
- `city_apply_team`: 72 / 100
  - Major: Says nothing about when to use it, or when not to.
- `city_room_members`: 72 / 100
- `city_room_search`: 72 / 100
  - Major: Says nothing about when to use it, or when not to.
- `city_create_workspace`: 82 / 100
- `city_room_post`: 85 / 100
  - Minor: Arguments without a description: text, parts[].type, parts[].text, parts[].type.
  - Minor: String arguments with no constraint or example: parts[].type, parts[].type.

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)
