Define _meta scoping guidelines for skill resources#60
Conversation
Replace PR #53 links with relative references to the now-merged skill-uri-scheme.md document. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
JAORMX
left a comment
There was a problem hiding this comment.
oh! this is really handy!
pja-ant
left a comment
There was a problem hiding this comment.
Hmm, this is maybe worth some more discussion.
I did put in the skill URI doc that we could use _meta for additional metadata, but I was more thinking metadata related to MCP-specific things rather than more generic skills metadata.
My sense is that for skills metadata, it should use the existing agentskills.io mechanism for that, which is YAML frontmatter. Certainly things like allowed-tools should not be in _meta when it is already in the YAML.
@pja-ant re: adding existing skills metadata to resources: my thinking was that the frontmatter in a skill file is still the source of truth, but if resources are the preferred way to expose skills through MCP, then it seems more ergonomic + predictable for clients to read that data from standardized Weighing a few tradeoffs: A few arguments for
Against:
One way to reconcile the 'deduplication' risk: treat What do you think? |
|
@olaservo Those are good points! I see the optimization argument most compelling: it would be nice to avoid pulling the whole file just to get the frontmatter. Not sure I agree with the "consistent client interface" argument since I think we want to be consistent with agent skills: you need to understand frontmatter to work with skills. I assume most clients are going to support more skills than just MCP skills, so they'll need to do that anyway. Agree it would be good for servers to materialize the _meta from the frontmatter if we do this so that we avoid them getting out of sync. I'm wondering how strong the optimization argument is though:
I imagine that what well-built clients will do is to read skills locally and try and keep them cached. Resources have lastModifiedTime metadata so a client can use that (+ change notifications) to keep things cached. My expectation is that metadata reads will greatly outnumber content reads, so we should optimize for light metadata reads and rely on caching to reduce/amortize the cost of getting the frontmatter. If I'm wrong and we're actually in a world where clients read a small % of skill contents in general then yes this would mean that we'd be reading more skills than necessary. If this happen though, we can add the optimization later. If we add the optimization now, it's much more difficult to remove it. I'd wager 10:1 that we never need that optimization. |
@pja-ant it makes sense that we don't want to over-optimize before knowing that it's a problem, and that we wouldn't prefer to recommend alternatives (such as caching). There is another angle I originally had in mind when creating this doc but then I got a little fixated on mapping existing frontmatter. Will add some revisions (or close this PR) this after airing those thoughts in the discord channel. Edit: adding a link to the related discord thread: https://discord.com/channels/1358869848138059966/1482008994062274610 |
Address PR feedback: remove recommended keys that duplicate frontmatter or belong at the plugin/distribution layer. Change namespace to io.modelcontextprotocol.skills/. Establish scoping principles for when _meta is appropriate vs frontmatter, annotations, or distribution-layer mechanisms. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Records the decision from PR #60 review that skill-level semantics stay in frontmatter, _meta is for MCP-transport-specific metadata, and no specific keys are recommended yet. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Update skill-meta-keys.md to reference merged URI scheme doc Replace PR #53 links with relative references to the now-merged skill-uri-scheme.md document. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Refactor skilljack-mcp section and update notes on `_meta` keys for clarity * Refocus _meta doc as scoping framework, not key recommendations Address PR feedback: remove recommended keys that duplicate frontmatter or belong at the plugin/distribution layer. Change namespace to io.modelcontextprotocol.skills/. Establish scoping principles for when _meta is appropriate vs frontmatter, annotations, or distribution-layer mechanisms. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Add decision record: _meta reserved for MCP-transport concerns Records the decision from PR #60 review that skill-level semantics stay in frontmatter, _meta is for MCP-transport-specific metadata, and no specific keys are recommended yet. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Summary
docs/skill-meta-keys.mdfrom recommending specific_metakeys to establishing scoping principles for when_metais appropriate vs frontmatter, annotations, or the plugin/distribution layerio.modelcontextprotocol.skills/namespace convention for any future standardized keysAddresses #55
Context
Based on PR review feedback and Discord discussion:
_metaio.agentskills/toio.modelcontextprotocol.skills/Test plan
🤖 Generated with Claude Code