# `TMCP006` get_requirement errors on unknown ID The user shall receive a tool execution error when requesting a requirement ID that does not exist in the loaded specifications. :::{dropdown} Is a test for :open: :icon: check-circle-fill :color: primary [`MCP003` Get requirement by ID](/requirements/MCP003) ::: :::{dropdown} Automated in :open: :icon: check-circle-fill :color: success {fab}`python` [`test_get_requirement_not_found`](https://github.com/agagniere/speky/blob/master/tests/test_mcp_server.py#L182) ::: :::{dropdown} Source :icon: file-code :color: info __Source file__: [`specs/mcp/test_03.yaml`](https://github.com/agagniere/speky/blob/master/specs/mcp/test_03.yaml) __Loaded from__: [`speky_mcp`](https://github.com/agagniere/speky/blob/master/specs/mcp/mcp.toml) ::: ## Initial state The expected state is the final state of [`TMCP003` Initialize the MCP server](/tests/TMCP003) ## Procedure ### Step 1 The client sends a `get_requirement` request for non-existent requirement `NOTFOUND` ```json { "id": 2, "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "get_requirement", "arguments": {"id": "NOTFOUND"} } } ``` ### Step 2 Verify response contains a tool execution error (not a protocol error). The error message indicates the requirement was not found. ```json { "id": 2, "jsonrpc": "2.0", "result": { "isError": true, "structuredContent": { "error": "Requirement NOTFOUND not found" } } } ```