Skip to content

feat(mcp): accept a human-readable coordinate for the released_prompt contract #124

Description

@kl3inIT

Problem

released_prompt takes asset_id and release_id as UUIDs. MCP completion (#121) inserts the literal argument value, so the picker a host renders is a list of UUIDs. Filtering by title/slug works, but the list itself is unreadable.

Proposal

Additive, non-breaking:

  • keep asset_id / release_id, make them optional;
  • add optional namespace, slug, version;
  • require exactly one complete form, fail closed otherwise;
  • completion then returns readable values for the coordinate arguments.

Precedent in this repository

resolve_skill already does exactly this: namespace + slug + version resolved through /api/asset-delivery/skills/{namespace}/{slug}/versions/{version}/manifest. Prompts have no equivalent resolver yet, so the API needs one.

Pinning is not weakened: resolve_skill requires an exact version label and has no latest. The coordinate form must keep that rule.

Acceptance

  • Prompt coordinate resolver in the API + contracts/openapi.json regenerated
  • released_prompt accepts either form, exactly one, fail closed
  • Completion returns readable coordinate values
  • Existing UUID clients unaffected — covered by a test
  • assistant-and-mcp spec + test matrix reconciled

Depends on

The release-history endpoint, which supplies the exact version labels this contract needs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions