com.intellij.mcpServer exists only in 2025.2+. On older IDEs the optional descriptor is not loaded, so SSHWorkbenchToolset (which implements com.intellij.mcpserver.McpToolset) is never registered.
Marketplace Verifier is inconsistent for the same optional dependency and the same bytecode:
| Target IDE | Has MCP Server? | Verdict |
|—|—|—|
| IU-241.19416.15 (2024.1.7) | No | Compatible – warning: optional plugin com.intellij.mcpServer could not be resolved |
| IU-242.26775.15 (2024.2.6) | No | Critical – Package com.intellij.mcpserver is not found (McpToolset referenced from SSHWorkbenchToolset) |
| IU-243.28141.41 (2024.3.7.1) | No | Critical – same package-not-found |
| IU-251.29188.72 (2025.1.7.2) | No | Critical – same package-not-found |
2024.1 treats the missing optional plugin as a warning. 2024.2-2025.1 treat the class reference as binary incompatibility, even though those IDEs also do not ship MCP Server.
I’ve had this issue in the past with v1 style optional dependencies. Typically, a note explaining the false positives to the marketplace team in response to the verification failure email they send you will suffice to unblock your submission.
<idea-plugin>
<dependencies>
<!-- if the mcpServer dependency is missing,
this content module won't attempt to load -->
<plugin id="com.intellij.mcpServer"/>
<!-- if you care about remote development, these backend deps will ensure
the module only attempts to load on the backend -->
<module name="intellij.platform.backend"/>
<module name="intellij.platform.kernel.backend"/>
</dependencies>
<extensions defaultExtensionNs="com.intellij.mcpServer">
<mcpToolset
implementation="my.demo.DemoMcpToolset"/>
</extensions>
</idea-plugin>
EDIT: This solution is probably not available to you if you’re supporting 2024, so getting attention from someone on the marketplace team is your best bet.
Thanks @dseptimus — we will go with the v2 optional content module.
The verification-email route already sat unanswered for 12 days, so we would rather fix packaging than keep asking Marketplace to ignore the same Critical on every upload.
SSHWorkbenchToolset is moving into an optional module (depends on com.intellij.mcpServer, loading=optional) so the main plugin jar no longer references com.intellij.mcpserver. Older IDEs keep working without MCP; 2025.2+ should load the tools when MCP Server is present.
Appreciate the production example — that is the structure we are following.
Hey,
Sorry for your unanswered e-mail. Pinging JetBrains Forum - as you did - for broad technical questions - might sometimes be quicker or an alternative way to see what is going on.