Thing Description Check
Guest access is available after setup. Full account linking verified by PowMCP: Claude only.
Use in your browser
Validate a hosted or pasted W3C WoT Thing Description against the TD 1.1 schema, then check security references, duplicate keys, and data-schema consistency. Compare a baseline and revised TD to see which findings appeared or cleared.
Guest includes 50 lifetime app requests. Create a free account for 100 app requests each calendar month. One allowance across every app, in your browser and your agent.One allowance across every app, in your browser and your agent. Manage usage
Guest access is available after setup. Full account linking verified by PowMCP: Claude only.
Connect this app on its own. Add other PowMCP apps whenever your agent needs another job done.
Open the apps workspace
Choose your agent. Each button opens a new tab with only this app's endpoint ready to add.
Copy one ready-to-send prompt for any agent that supports remote MCP connections.
For clients that require manual configuration, use this app-only endpoint, its JSON entry, or one terminal command.
ChatGPT: enable Developer mode in Settings → Security and login, then add this MCP endpoint from the Plugins page. Availability depends on your account and workspace policy. PowMCP has not yet verified ChatGPT account linking. OpenAI setup guide
https://powmcp.com/thing-description-check/mcp {
"mcpServers": {
"powmcp-thing-description-check": {
"type": "http",
"url": "https://powmcp.com/thing-description-check/mcp"
}
}
}Terminal agents add this app with one command:
claude mcp add --transport http powmcp-thing-description-check https://powmcp.com/thing-description-check/mcpcodex mcp add powmcp-thing-description-check --url https://powmcp.com/thing-description-check/mcpgemini mcp add --transport http powmcp-thing-description-check https://powmcp.com/thing-description-check/mcpManage, disable, or remove this connection in your agent's own MCP settings. PowMCP does not label an external connection as installed without confirmation from that client.
Proof
Validate a hosted or pasted W3C WoT Thing Description against both the JSON Schema and the beyond-schema assertions ajv alone cannot check, in chat
Validate one W3C Web of Things Thing Description 1.1 (the JSON-LD a device or service exposes, at a URL or pasted raw) against the shipped JSON Schema AND the normative additional assertions (resolved security-scheme references, raw duplicate-key detection, and data-schema sanity), reporting the schema and additional dimensions separately, or compare two same-lineage TDs to see what regressed or resolved, with a clear conforms-versus-device-actually-works boundary.
Request cost1 completed result
Guests get 50 lifetime app requests. Free accounts get 100 each calendar month.
td_check
Validate one W3C WoT Thing Description 1.1 (the JSON-LD a device or service exposes) against the shipped JSON Schema AND the beyond-schema assertions a plain schema run cannot do (resolving every security entry against securityDefinitions and detecting raw duplicate keys that JSON parsing silently drops), and reports the schema and additional dimensions separately plus defaults handling. Supply the TD as exactly one of a publicly fetchable http(s) URL (a raw file, a device /.well-known/wot-td endpoint, or a public Thing Directory entry) or a pasted raw TD body. Use it for single-TD validity, security-scheme, and readiness questions and for diagnosing why a device descriptor is rejected. Validation runs offline against the engine's pinned schema (the remote @context is never fetched); a URL adds one SSRF-guarded, 2 MB-capped fetch, so a call is typically well under a second. A pass means only that the bytes conform at the pinned engine version, never that the described device works, is secure as deployed, or is reachable.
td_compare
Compare exactly two same-lineage W3C WoT Thing Descriptions under identical bounded validation to see which schema or additional findings regressed or were resolved between them: the same TD before and after a change, or two TDs sharing the TD 1.1 @context. Give two inputs, each a public http(s) TD URL or a pasted raw TD body (urlA or bodyA, and urlB or bodyB). Select it whenever two Thing Descriptions are given; the tool reports the pair as not comparable if they do not share the TD 1.1 @context lineage (semantic-extension contexts and the version pin may differ). It runs the same schema and beyond-schema checks as td_check on each side, then reports per-TD conformance, which findings were introduced or cleared, and a ranking by conformance state then fewer findings when the measured findings support it. It judges automated conformance only and never infers that one TD's device works better, is more secure, or is more reachable than the other.
Other apps for the jobs next to Thing Description Check.
Scope and boundaries for Thing Description Check.
Paste the included Example lamp TD JSON-LD with checkDefaults enabled to validate its nosec_sc definition, security reference, boolean on property, and read/write form.
Read state and pass first, then the schema and additional dimensions. Pass means the input reached td-conformant; defaults warnings and context.state do not independently fail that verdict. Fix schema errors, unresolved security schemes, duplicate keys, and additional findings, then make defaulted values explicit where needed. Truncated additional findings make diagnosis incomplete, and conformance does not establish device behavior, deployed security, or endpoint reachability.
Validation runs offline against the pinned TD 1.1 schema and does not fetch remote @context documents. A conformant description does not prove that the described device works, is reachable, or is secure as deployed; URL fetches and pasted bodies are capped at roughly 2 MB.