# `TMCP008` get_test with all fields The user shall be able to query a test that includes all optional fields: short description, initial state, prerequisites, and multiple steps with various fields. :::{dropdown} Is a test for :open: :icon: check-circle-fill :color: primary [`MCP004` Get test by ID](/requirements/MCP004) ::: :::{dropdown} Automated in :open: :icon: check-circle-fill :color: success {fab}`python` [`test_get_test_all_fields`](https://github.com/agagniere/speky/blob/master/tests/test_mcp_server.py#L264) ::: :::{dropdown} Source :icon: file-code :color: info __Source file__: [`specs/mcp/test_04.yaml`](https://github.com/agagniere/speky/blob/master/specs/mcp/test_04.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_test` request for test T04 ```json { "id": 2, "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "get_test", "arguments": {"id": "T04"} } } ``` ### Step 2 Verify response contains all fields including short, initial, prereq, and steps with action, run, expected, sample, and sample_lang fields. ```json { "id": 2, "jsonrpc": "2.0", "result": { "structuredContent": { "category": "non-functional", "id": "T04", "initial": "Requires ls and cat", "long": "The third test, that validates the third requirement", "prereq": [{"id": "T03", "short": "Create files"}], "ref": [{"id": "RF03"}], "short": "Yet another test", "steps": [ { "action": "Do that shell command", "expected": "topsecret.txt", "run": "ls *secret*" }, { "action": "Show file content", "run": "cat foo.json", "sample_lang": "json", "sample": "{\"foo\": \"bar\", \"baz\": 21}" } ] } } } ```