-
Notifications
You must be signed in to change notification settings - Fork 152
Description
Context
I’m building a Swift-based MCP server that uses the stdio transport
(JSON-RPC over stdin/stdout), following the MCP specification and the
approach encouraged by the Swift MCP SDK.
The MCP server works correctly with Claude Desktop, including when
packaged in Docker and executed with docker run -i (stdio attached).
What I tried on Smithery
I attempted to deploy the same MCP server on Smithery using a container
runtime, by wrapping the stdio-based MCP server behind an HTTP bridge
(Node.js + Express).
The container:
- Builds and runs successfully
- Is deployed correctly on Smithery
- Exposes
/.well-known/mcp-config, which Smithery is able to discover
However, Smithery Inspect consistently fails during the MCP initialize
handshake, even though the MCP server itself is fully functional over
stdio.
Observed behavior
- Smithery discovers
/.well-known/mcp-config - Smithery reports:
MCP Server Card not found (notFound) - Smithery then fails during the server scan / authentication phase:
Scan failed: Failed to initialize connection with server.
Hypothesis
This seems to indicate that Smithery does not support stdio-based MCP
servers, either directly or indirectly (e.g. via an HTTP wrapper), and
instead requires native MCP-over-HTTP implementations.
Questions
- Does Smithery support MCP servers that use the stdio transport?
- If not, is native MCP-over-HTTP required for Smithery compatibility?
- Are there any known examples of Swift-based MCP servers on Smithery
that use stdio, or are all Swift MCP servers on Smithery implemented as
native HTTP servers (e.g. using Vapor)? - If stdio-based MCP servers are not supported, would it make sense to
clarify this explicitly in the documentation, given that the Swift MCP
SDK and many community servers are stdio-first?
https://github.com/sassiwalid/spm-analyzer-mcp
Thanks for your time, and for any clarification you can provide.