Unlist the get_issue MCP tool superseded by get_work_item

What does this MR do and why?

Marks the REST-backed get_issue MCP tool as unlisted via route_setting :mcp, ..., unlisted: true in lib/api/issues.rb. It is superseded by get_work_item, whose notes facet now has full cursor pagination. The tool stays callable through tools/call so existing callers keep working while they migrate, but it is no longer advertised in tools/list or the AI Catalog picker.

Docs: adds an "Unlisted in GitLab 19.4" history entry and a supersession note pointing to get_work_item in doc/user/model_context_protocol/mcp_server_tools.md.

Specs: removes get_issue from the CE and EE list_tools expected annotations. The retired-tools context now also asserts get_issue is not advertised but remains resolvable through Mcp::Tools::Manager#get_tool.

This MR is the third layer of the retirement stack: it targets the branch of !254299 (merged), which itself targets the branch of !254298 (merged). Its diff therefore shows only this MR's own commit, and GitLab retargets it automatically as the lower layers merge. This MR is marked as blocked by the layer below.

References

Closes #628333 (closed)

Retirement umbrella: #622712 (closed)

How to verify locally

  • bundle exec rubocop is clean
  • CE and EE list_tools specs pass
  • GDK end-to-end over real HTTP JSON-RPC (POST /api/v4/mcp): tools/list no longer contains get_issue, and tools/call get_issue still returns the issue

Merge request reports

Loading
Loading