# `MCP009` List all IDs {bdg-ref-info}`mcp | tools ` {bdg-ref-info}`mcp | discovery ` > I would like to see all requirement and test IDs that exist in the specification. > This helps me discover what's available, avoid ID collisions when creating new items, > and understand the naming conventions used in the project. > The user shall be able to retrieve a list of all requirement and test IDs. The MCP server shall expose a tool named `list_all_ids` that returns all requirement and test IDs in the specification. The response shall be an object with two fields: - `requirements`: Sorted list of all requirement IDs - `tests`: Sorted list of all test IDs Each list shall be sorted alphabetically. If the specification has no requirements or tests, the corresponding list shall be empty. :::{dropdown} Properties :icon: note :color: primary __author__: Claude __since__: `0.2.0` ::: :::{dropdown} Tested by :open: :icon: check-circle-fill :color: success - [`TMCP029` list_all_ids returns all requirement and test IDs sorted](/tests/TMCP029) - [`TMCP030` list_all_ids includes IDs from all categories](/tests/TMCP030) ::: :::{dropdown} Source :icon: file-code :color: info __Source file__: [`specs/mcp/discovery.yaml`](https://github.com/agagniere/speky/blob/master/specs/mcp/discovery.yaml) __Loaded from__: [`speky_mcp`](https://github.com/agagniere/speky/blob/master/specs/mcp/mcp.toml) __Implemented in:__ {fab}`python` [`handle_list_all_ids`](https://github.com/agagniere/speky/blob/master/python/speky_mcp/tools.py#L196) :::