Use with any MCP client
Every modern MCP client uses the same JSON shape to declare a stdio server: a command to spawn and a list of args. Once you understand the pattern, plugging native-mcp into Continue, Cline, Zed, or any new client takes about thirty seconds.
The pattern
{
"mcpServers": {
"<arbitrary-name>": {
"command": "/absolute/path/to/native-mcp",
"args": ["<server-name>", "<server-flags...>"]
}
}
}- The key under
mcpServers(e.g.native-time) is the label your client displays. Pick something descriptive. commandshould be an absolute path — clients rarely inherit your shell'sPATH.argsis the rest of thenative-mcpinvocation: subcommand first, then any flags it accepts (see the server reference).
One server per entry
Each mcpServers entry maps to one running process. To expose multiple native-mcp servers (or the same server with different flags), add multiple entries:
{
"mcpServers": {
"native-time-utc": { "command": "/usr/local/bin/native-mcp", "args": ["time"] },
"native-time-paris": { "command": "/usr/local/bin/native-mcp", "args": ["time", "--default-tz", "Europe/Paris"] }
}
}Each one is a separate process; clients spawn them lazily on demand.
Where each client looks
These are the conventional locations. They evolve fast; check the client's own docs if it doesn't pick yours up.
| Client | Config path |
|---|---|
| Continue | ~/.continue/config.json (under experimental.modelContextProtocolServers) |
| Cline (VS Code extension) | VS Code settings → cline.mcpServers |
| Zed | ~/.config/zed/settings.json (under context_servers) |
| Sourcegraph Cody | Cody settings → cody.experimental.contextServers |
| MCP Inspector | passed on the CLI: npx @modelcontextprotocol/inspector native-mcp time |
If your client isn't listed, search its docs for "MCP" or "context server" — the configuration shape will be a variation of the JSON above.
Sanity check before configuring
Running the binary with no input should hang waiting on stdin. That confirms the protocol loop is live:
native-mcp time
# (no output — press Ctrl-D to exit)To actually exchange a message, pipe a JSON-RPC request:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | native-mcp timeYou should see a tools/list response with current_time and convert_time. If that works, any conformant MCP client will too.
For an interactive UI, see Debug with MCP Inspector.