Skip to content

Does Smithery support stdio-based MCP servers (e.g. Swift MCP SDK)? #176

@sassiwalid

Description

@sassiwalid

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

  1. Does Smithery support MCP servers that use the stdio transport?
  2. If not, is native MCP-over-HTTP required for Smithery compatibility?
  3. 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)?
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions