v1.0.2 — MCP Registry metadata and server instructions
Added
The server now publishes instructions in its initialize response.
With progressive discovery on, tools/list advertises five meta-tools and hides the other 1,672 until a category is activated. A client had no way to learn they existed — directories that introspect the server reported it as a five-tool server. The instructions carry the real tool count, the five meta-tools by name, the SYMFONY_MCP_DYNAMIC_TOOLS=false escape hatch, and the read-only guarantee.
They cost 261 tokens. Advertising every schema up front costs about 154,000:
| tools advertised | tools/list payload |
|
|---|---|---|
| default | 5 | 2.2 kB (~568 tokens) |
SYMFONY_MCP_DYNAMIC_TOOLS=false |
1,677 | 616 kB (~153,981 tokens) |
Registry metadata — server.json (validated against the official MCP Registry 2025-12-11 schema), mcpName in package.json, glama.json and smithery.yaml, plus a registry-metadata test suite so a future release cannot bump the version in one file and forget the others.
Fixed
symfony-health-endpoint-securityscanned almost nothing. The filename check rancontinuebefore the route check, so theHEALTH_PATHSlookup below it could never change the outcome — a health endpoint in a controller not named*health*/*ping*/*status*was skipped entirely. Either signal now qualifies.- Prototype pollution in
symfony-translation-yaml-lint. The domain map was a plain object, sohasOwnProperty(map, '__proto__')read false, the guarded assignment went through the prototype setter, and the write landed on the map's prototype instead of an own key. Both levels now have a null prototype. doctrine-dbal-driveroptionsandphp-gd-securityeach tested the same condition on both sides of an||.http-cachelet a non-arraytrusted_proxies/trusted_headersthrough a cast that pretended otherwise.
Changed
- CodeQL scans GitHub Actions workflows alongside JavaScript/TypeScript, one job per language. Both security panels are at zero open alerts.
This is the first release published from CI, so it is the first to carry an SLSA provenance attestation.
Full changelog: https://github.com/shakaran/symfony-agent-mcp/blob/main/CHANGELOG.md