Turn the Schema.org markup a page already has into MCP tools an agent can call.
Critical failures across all three tools. Tool definitions are inferred from dynamic generation code rather than explicitly registered with schemas. Descriptions are generic boilerplate about dynamic generation rather than specific, actionable guidance for LLM tool selection. No parameter descriptions exist (tools accept no parameters). No output schemas documented. No error handling guidance. The server generates tools at runtime from Schema.org markup, but the MCP tool registration itself lacks the rigor required for production agent use.
Dynamically generated action tools based on Schema.org potentialAction properties. Tool names and descriptions derived from action specifications.
Dynamically generated read tools based on Schema.org entity profiles. Tool names and descriptions are derived from the entity type and profile specifications.
Dynamically generated group tools that aggregate multiple entities of the same type. Returns a list of all entities matching the type.
All tools have empty input schemas (no properties, additionalProperties: false).
Tool definitions are inferred from dynamic generation code (packages/core/src/map/index.ts, packages/core/src/map/actions.ts) rather than explicitly registered with full schemas.
Descriptions are generic boilerplate ('Dynamically generated read tools...') rather than specific guidance for when/why to call each tool.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields without knowing what each tool returns.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 19 | 2026-07-28+ | v2 |
Tool naming is inconsistent and vague. '<action_name>' is a placeholder, not a verb_noun pattern. 'get_<slug>' and 'list_<slug>' use placeholders instead of concrete names. LLMs cannot infer intent from placeholder names.