@@ -10,7 +10,8 @@ A lightweight, handcrafted implementation of the [Model Context Protocol](https:
1010- 🎯 ** Type-safe** - Native Python type annotations for everything
1111- 🚀 ** Fast** - Minimal overhead, maximum performance
1212- 🛠️ ** Handcrafted** - Written by a human, verified against the spec
13- - 🌐 ** HTTP/SSE transport** - Streamable responses (stdio planned)
13+ - 🌐 ** HTTP/SSE transport** - Streamable responses
14+ - 📡 ** Stdio transport** - For legacy clients
1415- 📦 ** Tiny** - Less than 1,000 lines of code
1516
1617## Installation
@@ -66,6 +67,37 @@ Once things are working you can configure the `mcp.json`:
6667}
6768```
6869
70+ ## Stdio Transport
71+
72+ For MCP clients that only support stdio transport:
73+
74+ ``` python
75+ from zeromcp import McpServer
76+
77+ mcp = McpServer(" my-server" )
78+
79+ @mcp.tool
80+ def greet (name : str ) -> str :
81+ """ Generate a greeting"""
82+ return f " Hello, { name} ! "
83+
84+ if __name__ == " __main__" :
85+ mcp.stdio()
86+ ```
87+
88+ Then configure in ` mcp.json ` (different for every client):
89+
90+ ``` json
91+ {
92+ "mcpServers" : {
93+ "my-server" : {
94+ "command" : " python" ,
95+ "args" : [" path/to/server.py" ]
96+ }
97+ }
98+ }
99+ ```
100+
69101## Type Annotations
70102
71103zeromcp uses native Python ` Annotated ` types for schema generation:
@@ -139,3 +171,21 @@ def divide(
139171 raise McpToolError(" Division by zero" )
140172 return numerator / denominator
141173```
174+
175+ ## Supported clients
176+
177+ The following clients have been tested:
178+
179+ - [ Claude Code] ( https://code.claude.com/docs/en/mcp#installing-mcp-servers )
180+ - [ Claude Desktop] ( https://modelcontextprotocol.io/docs/develop/connect-local-servers#installing-the-filesystem-server ) (_ stdio only_ )
181+ - [ Visual Studio Code] ( https://code.visualstudio.com/docs/copilot/customization/mcp-servers )
182+ - [ Roo Code] ( https://docs.roocode.com/features/mcp/using-mcp-in-roo ) / [ Cline] ( https://docs.cline.bot/mcp/configuring-mcp-servers ) / [ Kilo Code] ( https://kilocode.ai/docs/features/mcp/using-mcp-in-kilo-code )
183+ - [ LM Studio] ( https://lmstudio.ai/docs/app/mcp )
184+ - [ Jan] ( https://www.jan.ai/docs/desktop/mcp#configure-and-use-mcps-within-jan )
185+ - [ Gemini CLI] ( https://geminicli.com/docs/tools/mcp-server/#how-to-set-up-your-mcp-server )
186+ - [ Cursor] ( https://cursor.com/docs/context/mcp )
187+ - [ Windsurf] ( https://docs.windsurf.com/windsurf/cascade/mcp )
188+ - [ Zed] ( https://zed.dev/docs/ai/mcp ) (_ stdio only_ )
189+ - [ Warp] ( https://docs.warp.dev/knowledge-and-collaboration/mcp#adding-an-mcp-server )
190+
191+ _ Note_ : generally the ` /mcp ` endpoint is preferred, but not all clients support it correctly.
0 commit comments