Skip to content

docs(findings): PHP MCP SDK + Symfony AI Mate skills-as-resources#95

Open
wachterjohannes wants to merge 2 commits into
modelcontextprotocol:mainfrom
wachterjohannes:findings-php-sdk-mate
Open

docs(findings): PHP MCP SDK + Symfony AI Mate skills-as-resources#95
wachterjohannes wants to merge 2 commits into
modelcontextprotocol:mainfrom
wachterjohannes:findings-php-sdk-mate

Conversation

@wachterjohannes
Copy link
Copy Markdown

Adds an experimental-findings entry for the first PHP-ecosystem implementation of SEP-2640.

  • Server / SDK: modelcontextprotocol/php-sdk#372 adds io.modelcontextprotocol/skills to the official PHP MCP SDK — addSkillsFromDirectory() serves a directory of SKILL.md files (plus supporting files) as skill:// resources and generates skill://index.json.
  • Consumer: symfony/ai#2132 ships two skills in the Symfony AI "Mate" MCP server, colocated with the tools they orchestrate (including a multi-file skill with references/).

The entry records, per the contribution guidelines, what was tested (serving verified via MCP Inspector stdio snapshots + unit tests), the spec-text frictions hit while implementing the server side (undefined _meta namespace → had to invent io.modelcontextprotocol.skills/; resource name charset can't hold a skill name, making the "name SHOULD = frontmatter name" recommendation unsatisfiable; empty-payload capability serializing to [] instead of {}), the Claude Code consumption gap observed from current docs (data point for #38), and what remains untested (model-adherence evals, the mcp-resource-template type, model-driven client loading).

Happy to adjust framing or move any of this into the relevant open issues (#38/#54/#55) if preferred.

… entry

First PHP-ecosystem implementation of SEP-2640: php-sdk#372 serves a
directory of SKILL.md files as skill:// resources, symfony/ai#2132 ships
the skill content in the Mate MCP server. Records what was verified
(serving via MCP Inspector snapshots), the spec-text frictions hit
(_meta namespace, resource name charset, empty-payload serialization),
and the Claude Code consumption gap.
…view

The SEP PR specifies the io.modelcontextprotocol.skills/ _meta prefix
(our SDK independently converged on it); the resource-name point is an
SDK registration-uniqueness detail, not a spec gap. Reframe both and
note the PR-vs-repo-draft drift on the _meta sentence.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant