Skip to content

Commit fb6d2f9

Browse files
committed
chore: Add how to run via stdio in README
1 parent f52d4d6 commit fb6d2f9

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,37 @@ claude mcp add --transport http semcode http://localhost:8090/mcp
152152
}
153153
```
154154

155+
### Connecting over stdio
156+
157+
Instead of pointing at a running HTTP server, the client can spawn the server process itself and
158+
talk to it over stdin/stdout. This still needs Qdrant reachable (e.g. `docker-compose up qdrant`)
159+
and a local Python environment with dependencies installed (`uv sync`).
160+
161+
**Claude Code (CLI)**
162+
163+
```bash
164+
claude mcp add semcode --transport stdio --env MCP_TRANSPORT=stdio -- uv run --directory /path/to/semcode python -m server.main
165+
```
166+
167+
**Other MCP clients** — add an entry to the client's MCP config:
168+
169+
```json
170+
{
171+
"mcpServers": {
172+
"semcode": {
173+
"command": "uv",
174+
"args": ["run", "--directory", "/path/to/semcode", "python", "-m", "server.main"],
175+
"env": {
176+
"MCP_TRANSPORT": "stdio"
177+
}
178+
}
179+
}
180+
}
181+
```
182+
183+
`GITHUB_TOKEN`, `QDRANT_URL`, and embedding provider variables are still read from `.env` in the
184+
project directory — `uv run` picks it up automatically.
185+
155186
## Indexing
156187

157188
The indexing pipeline is symbol-oriented: each function, class, method, or component becomes its own

0 commit comments

Comments
 (0)