Skip to content

[Tool] MCP server: create, validate and get adoption guidance for OTE from any AI agent #40

Description

@hhkaos

Problem

An organiser who asks an AI assistant for help drafting or checking an events.json today depends entirely on that assistant having read the spec correctly on its own, or on us handing it a prompt (#38, #39). Nothing structural stops the model from hallucinating a field, guessing at an enum value, or telling an organiser their JSON is fine when it silently fails one of the schemas in spec/v0.4/. The generate→validate loop still lives in the model's head, not in a deterministic check.

Why this matters for OTE

MCP (Model Context Protocol) lets any compatible agent — Claude (Desktop/Code), ChatGPT (apps/connectors), Codex, and others — install a server from its own marketplace and call typed tools instead of just reading prose. For OTE that means the "create + validate" half of adoption could run as actual tool calls, backed by the same deterministic engine the ecosystem already trusts, rather than depending on how well a given chat session happened to read the docs:

  • Create — draft an event/feed from a plain-language description.
  • Validate, deterministically — check the draft (or any existing document) against spec/v0.4/event.schema.json / feed.schema.json (+ the .recommended.schema.json pair), reusing the same engine already published as @opentechevents/validate and used by the editor's live validation and the kit's CI. "Valid" would mean "passes the real JSON Schema," never the model's opinion.
  • Guide — answer "how do I adopt OTE" questions grounded in spec/v0.4/README.md / reference.*.md (and llms-full.txt), so answers cite the actual current-version prose instead of the model's memory.

The determinism boundary matters: creation and guidance are inherently model-driven (like any RAG-style helper), but validation would not be — it's the same schema/CLI logic wrapped as a tool, not a second opinion from the LLM.

Possible shape

Non-goals

  • Not a rewrite of the editor/generator or the validator web app — it would wrap the already-published packages and schemas rather than reimplement validation logic.
  • Not a hosted service that stores or proxies anyone's feed — that's the different shape proposed in [Tool] Hosted conversion service: OTE feed → ICS / RSS / schema.org JSON-LD #37 (a live, cached, always-on conversion endpoint). This is a client-side tool that runs in the organiser's own agent session.
  • Doesn't touch spec/v0.4/ or any frozen version — no schema change is being proposed here.

Open questions

  • Which MCP-compatible surfaces to target first, and whether their marketplaces/manifests are compatible enough to ship once, or packaging has to diverge per platform.
  • Overlap vs. complement with [Tool] Conversational bot to draft OTE events #9 (Conversational bot to draft OTE events): is draft_event the same idea wearing an MCP transport instead of a dedicated bot, or a distinct, lighter-weight sibling (no memory of "your usual repos", no bot backend to run, works in whatever agent the organiser already has installed)?
  • Where this would live — a new package under the @opentechevents/* npm scope (e.g. @opentechevents/mcp-server), given it would depend directly on @opentechevents/validate?

Related

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions