MCP ExplorerExplorer

Mcp Client Rs

@tim-schultzon a year ago
5 MIT
FreeCommunity
AI Systems
Simple client to interact with Anthropic's Model Context Protocol

Overview

What is Mcp Client Rs

mcp-client-rs is a Rust client implementation designed to interact with Anthropic’s Model Context Protocol (MCP), which facilitates structured communication between language models and external tools.

Use cases

Use cases for mcp-client-rs include searching repositories based on specific queries, executing commands in an asynchronous manner, and managing resources effectively in Rust projects.

How to use

To use mcp-client-rs, include it in your Cargo.toml file as a dependency. Then, create a new Protocol instance, specifying the protocol version, command, arguments, and environment variables. You can call tools using the ‘call_tool’ method asynchronously.

Key features

Key features of mcp-client-rs include async/await support with tokio, capability negotiation, tool execution, resource management, and prompt handling.

Where to use

mcp-client-rs can be used in various fields where integration between language models and external tools is required, such as AI development, natural language processing, and automated system interactions.

Content

MCP Protocol Client - Very Much a WIP

Rust client implementation for the Model Context Protocol - a structured communication protocol between language models and external tools.

Features

  • Client implementation to be used in rust projects that want to use the MCP protocol
  • Async/await support with tokio
  • Capability negotiation
  • Tool execution
  • Resource management
  • Prompt handling

Usage

use mcp_client_rs::{Protocol, ClientError};

#[tokio::main]
async fn main() -> Result<(), ClientError> {
    let client = Protocol::new(
        "0",  // Protocol version
        "npx", // Command
        vec!["-y", "@modelcontextprotocol/server-github"], // Args
        std::collections::HashMap::new(), // Environment variables
    ).await?;

    // Call tools
    let response = client
        .call_tool(
            "search_repositories",
            serde_json::json!({
                "query": "rust language:rust"
            }),
        )
        .await?;

    println!("{:?}", response);
    Ok(())
}

Installation

Add to your Cargo.toml:

[dependencies]
mcp-client-rs = { git = "https://github.com/tim-schultz/mcp-client-rs.git" }

License

MIT

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers