[DOCS] Redundant Metadata – Plugin Manifest Structure in MCP Documentation
Documentation Type
Missing documentation (feature not documented)
Documentation Location
https://code.claude.com/docs/en/mcp (File: docs/en/mcp.md)
Section/Topic
The "Plugin-provided MCP servers" section, specifically the example regarding inline configuration within plugin.json.
Current Documentation
The documentation provides two examples for plugin-provided MCP servers. While one is for .mcp.json, the general context of the "inline" configuration for plugin.json suggests a structure that may lead users to place server definitions at the root level of the manifest.
What's Wrong or Missing?
The example JSON snippet for a plugin-provided MCP server within plugin.json is missing the mandatory mcpServers wrapper key.
In a standalone .mcp.json file, the root object contains the server names as keys. however, when these same configurations are placed inline inside the main plugin.json manifest, they must be nested under the mcpServers key to be valid. Providing a snippet with the server name at the root level is technically invalid for the plugin.json schema and leads to configuration errors.
Suggested Improvement
Wrap the JSON snippet in the mcpServers key to match the required schema for plugin.json.
Suggested Text for the "inline in plugin.json" example:
{
"name": "my-plugin",
"version": "1.0.0",
"mcpServers": {
"my-server-name": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/my-server",
"args": ["--port", "8080"]
}
}
}
Impact
High - Prevents users from using a feature
Additional Context
- Severity: Nitpick
- Related Documentation: This should be cross-referenced with
docs/en/plugins-reference.md, which correctly identifies thatmcpServersis a top-level key in the manifest used to point to a file or an inline object. Conflicting styles betweendocs/en/mcp.mdanddocs/en/plugins-reference.mdcreates confusion for developers starting with plugins.
---
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗