rust-sdk/examples
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Humberto Yusta Gómez 64995cc40c
fix: cleanup zombie processes for child process client (#156)
* feat(client): cleanup of zombie processes in child process client

Using process wrap library, Process Group for Unix and Job Object for Windows

* fix: install extra dep based on feature, update examples take owned command

Install process-wrap if transport-child-process feature is enabled. Update examples to take ownership
of the command instead of mutable reference

* fix: update other examples, comments and readme to take ownership of command

Updated more examples, comments and readme to take command instead of mutable ref.
Also small fix in cargo toml of example to use local path.

* refactor: add configure command ext

Added configure command ext to tokio process command so that
you can use .configure() to use inline commands for mcp stdio client.
Added warning if start kill process fails
2025-05-18 18:38:47 +08:00
..
clients fix: cleanup zombie processes for child process client (#156) 2025-05-18 18:38:47 +08:00
rig-integration fix: cleanup zombie processes for child process client (#156) 2025-05-18 18:38:47 +08:00
servers feat(extension): extract http request part into rmcp extension (#163) 2025-05-09 10:36:52 +08:00
simple-chat-client fix: cleanup zombie processes for child process client (#156) 2025-05-18 18:38:47 +08:00
transport example: Add named pipe example (#181) 2025-05-16 10:40:03 +08:00
wasi fix: build errors for WASI target (#151) 2025-05-09 01:51:16 +08:00
README.md docs: fix typo and clarify instructions (#124) 2025-04-11 09:05:48 +08:00

Quick Start With Claude Desktop

  1. Build the Server (Counter Example)

    cargo build --release --example servers_std_io
    

    This builds a standard input/output MCP server binary.

  2. Add or update this section in your PATH-TO/claude_desktop_config.json

    Windows

    {
      "mcpServers": {
        "counter": {
          "command": "PATH-TO/rust-sdk/target/release/examples/servers_std_io.exe",
          "args": []
        }
      }
    }
    

    MacOS/Linux

    {
      "mcpServers": {
        "counter": {
          "command": "PATH-TO/rust-sdk/target/release/examples/servers_std_io",
          "args": []
        }
      }
    }
    
  3. Ensure that the MCP UI elements appear in Claude Desktop The MCP UI elements will only show up in Claude for Desktop if at least one server is properly configured. It may require to restart Claude for Desktop.

  4. Once Claude Desktop is running, try chatting:

    counter.say_hello
    

    Or test other tools like:

    counter.increment
    counter.get_value
    counter.sum {"a": 3, "b": 4}
    

Client Examples

  • Client SSE, using reqwest and eventsource-client.
  • Client stdio, using tokio to spawn child process.
  • Everything, test with @modelcontextprotocol/server-everything
  • Collection, How to transpose service into dynamic object, so they will have a same type.

Server Examples

Transport Examples

Integration

  • Rig A stream chatbot with rig
  • Simple Chat Client A simple chat client implementation using the Model Context Protocol (MCP) SDK.

WASI

Use Mcp Inspector

npx @modelcontextprotocol/inspector