Skip to content

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

json
{
  "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.
  • command should be an absolute path — clients rarely inherit your shell's PATH.
  • args is the rest of the native-mcp invocation: 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:

json
{
  "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.

ClientConfig 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 CodyCody settings → cody.experimental.contextServers
MCP Inspectorpassed 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:

bash
native-mcp time
# (no output — press Ctrl-D to exit)

To actually exchange a message, pipe a JSON-RPC request:

bash
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | native-mcp time

You 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.

Released under the MIT License.