mcp-server-rust logo

mcp-server-rust

by lotharschulz

A simple Rust function designed for integration with an MCP (Model Context Protocol) client, specifically for use with Claude Desktop. It allows you to extend Claude's capabilities with custom Rust-based functions.

View on GitHub

Last updated: N/A

A simple Rust function integrated with an MCP client.

Step 1: Relase the Rust & Javascript/TS code

Release

npm run build:wasm:release // release rust code
npm install // create javascript file and install all npm dependencies

Step 2: Claude Desktop Configuration

Create a configuration file at:

{
  "mcpServers": {
    "mcp-server": {
      "command": "node",
      "args": [
        "[your local path]/mcpserver/build/index.js"
      ]
    }
  }
}

locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json (source: https://modelcontextprotocol.info/docs/quickstart/user/#2-add-the-filesystem-mcp-server)

Step 3: Claude Desktop

Start Claude Desktop

Claude Desktop Initial View

Claude Desktop Initial View

<sub>please note the additional mcp server icon in the frontend<sub>

Agree to use the mcp server function:

Allow MCP server

Allow MCP server

Observe the mcp server function:

factorial function used

factorial function used

Video

Watch the video tutorial here: YouTube video

Misc

Test the rust code

npm run test:rust

or

cd src/lib/rust-functions-lib
cargo test && cargo fmt --all -- --check

Clean the output files and folders

npm run clean

Build the rust code - alternatives

npm

npm run build:wasm

Alternative approach using wasm tool

cd src/lib/rust-functions-lib
wasm-pack build --target bundler

Build only ts code (npm)

npm build

Copy build Rust code

manual copy to the correct location - included in npm run build:wasm:release

mkdir -p build/lib/rust-functions-lib/pkg && cp src/lib/rust-functions-lib/pkg/rust_funcations_lib.js build/lib/rust-functions-lib/pkg/rust_funcations_lib.js

Rust import failed

issue:

rust import failed

rust import failed

solution:

run npm run build:wasm:release to release the wasm-binding the factorial import depends on