{"ok":true,"tool":"mcp-tool-contract-linter","module_version":"0.1.0","result":{"slug":"mcp-tool-contract-linter","name":"MCP Tool Contract Linter","version":"0.1.0","category":"compatibility","status":"beta","mode":"lookup","summary":"Lint one bounded MCP tool contract for review and interoperability risks.","description":"Checks a supplied tool name, description, JSON input/output schema, security declarations, and action annotations. It performs bounded local analysis only and never contacts the declared server.","when_to_use":["An MCP tool contract needs a bounded pre-review lint pass.","Names, schemas, security declarations, or action hints may be ambiguous."],"do_not_use_when":["Runtime behavior or host compatibility must be measured empirically.","The contract contains secrets or exceeds the published schema bounds."],"tested_with":["MCP tool contracts","JSON Schema 2020-12"],"input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":128},"description":{"type":"string","minLength":1,"maxLength":2000},"input_schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"output_schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"annotations":{"type":"object","properties":{"readOnlyHint":{"type":"boolean"},"destructiveHint":{"type":"boolean"},"openWorldHint":{"type":"boolean"},"idempotentHint":{"type":"boolean"}},"required":["readOnlyHint","destructiveHint","openWorldHint","idempotentHint"],"additionalProperties":false},"security_schemes":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"string","enum":["noauth","oauth2","apiKey","http"]}}},"required":["name","description","input_schema","annotations","security_schemes"],"additionalProperties":false},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"valid":{"type":"boolean"},"finding_count":{"type":"integer","minimum":0,"maximum":9007199254740991},"checked_rules":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"findings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"type":"string","enum":["error","warning"]},"path":{"type":"string"},"message":{"type":"string"}},"required":["code","severity","path","message"],"additionalProperties":false}}},"required":["valid","finding_count","checked_rules","findings"],"additionalProperties":false},"payment":{"kind":"free"},"side_effects":[],"retention":"The supplied contract is validated and linted in memory. Raw schemas are not retained.","limits":{"max_contract_bytes":65536,"max_schema_depth":8,"max_schema_nodes":512,"max_client_requests_per_minute":30,"max_global_requests_per_minute":120},"examples":{"input":{"name":"lookup_contract","description":"Look up one known contract without changing external state.","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"}},"required":["contract_id"],"additionalProperties":false},"output_schema":{"type":"object","properties":{"found":{"type":"boolean"}},"required":["found"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"idempotentHint":true},"security_schemes":["noauth"]},"output":{"valid":true,"finding_count":0,"checked_rules":9,"findings":[]},"negative":[{"scenario":"Runtime behavior or host compatibility must be measured empirically.","expected_error":"NOT_COVERED","charged":false}]},"execution":{"errors":[{"code":"INVALID_INPUT","retryable":false,"charged":false,"recovery":"Correct the request to match input_schema."},{"code":"NOT_COVERED","retryable":false,"charged":false,"recovery":"Check dataset scope or submit a capability request."},{"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-tool-contract-linter","execute":"/v1/tools/mcp-tool-contract-linter"}},"meta":{"request_id":"req_4cc12a1fec714ff49e5f7842761cc974","observed_at":"2026-07-25T08:33:01.191Z"}}