{"ok":true,"tool":"mcp-elicitation-safety-linter","module_version":"0.1.0","result":{"slug":"mcp-elicitation-safety-linter","name":"MCP Elicitation Safety Linter","version":"0.1.0","category":"compatibility","status":"beta","mode":"lookup","summary":"Flag sensitive MCP elicitation fields that should use URL mode.","description":"Inspects only bounded field names, types, and descriptions. It identifies secret-like or high-risk personal fields in form-mode elicitation and never accepts the field values themselves.","when_to_use":["An MCP elicitation design needs a secret and personal-data safety review.","A developer must choose between form and trusted URL collection."],"do_not_use_when":["Actual elicited values would be supplied to the tool.","A legal privacy, security, or compliance determination is required."],"tested_with":["MCP form elicitation","MCP URL elicitation"],"input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"mode":{"type":"string","enum":["form","url"]},"fields":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["string","number","integer","boolean","email","uri"]},"description":{"type":"string","maxLength":300},"required":{"default":false,"type":"boolean"}},"required":["name","type","required"],"additionalProperties":false}}},"required":["mode","fields"],"additionalProperties":false},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"safe":{"type":"boolean"},"recommended_mode":{"type":"string","enum":["form","url"]},"findings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"type":"string","enum":["error","warning"]},"field":{"anyOf":[{"type":"string"},{"type":"null"}]},"message":{"type":"string"}},"required":["code","severity","field","message"],"additionalProperties":false}}},"required":["safe","recommended_mode","findings"],"additionalProperties":false},"payment":{"kind":"free"},"side_effects":[],"retention":"Field metadata is linted in memory. No elicited values are accepted or retained.","limits":{"max_fields":30,"max_field_description_bytes":300,"caller_supplied_values":0,"max_client_requests_per_minute":30,"max_global_requests_per_minute":120},"examples":{"input":{"mode":"form","fields":[{"name":"project_name","type":"string","required":true}]},"output":{"safe":true,"recommended_mode":"form","findings":[]},"negative":[{"scenario":"Actual elicited values would be supplied to the tool.","expected_error":"INVALID_INPUT","charged":false}]},"execution":{"errors":[{"code":"INVALID_INPUT","retryable":false,"charged":false,"recovery":"Correct the request to match input_schema."},{"code":"TOOL_PAUSED","retryable":true,"charged":false,"recovery":"Wait for the operator to resume the tool."},{"code":"RATE_LIMITED","retryable":true,"charged":false,"recovery":"Retry after the response Retry-After interval."},{"code":"DEPENDENCY_UNAVAILABLE","retryable":true,"charged":false,"recovery":"Retry with the same idempotency identity."}],"idempotency":{"required":false,"mock_or_unpaid_header":null,"x402_extension":null,"replay_retention":null}},"endpoints":{"describe":"/v1/tools/mcp-elicitation-safety-linter","execute":"/v1/tools/mcp-elicitation-safety-linter"}},"meta":{"request_id":"req_31f76ea4e88b46d78f714aaa9df572f9","observed_at":"2026-07-25T08:24:08.233Z"}}