Sample Building Mcp Servers With Rust

by aws-samples

8 stars
286 downloads
Not rated
GitHub

About

This project provides sample MCP servers that can be used with Amazon Q CLI or other MCP-compatible AI assistants

Details

Author
aws-samples
GitHub stars
8
Downloads
286
Categories
Other

- Four built‑in MCP servers: Calculator, RDS, S3, and PostgreSQL
- Calculator server performs basic arithmetic (addition, subtraction)
- RDS server lists and manages Amazon RDS instances per region
- S3 server manages buckets and objects, listing by region
- PostgreSQL server executes read‑only queries and lists tables/schemas
- All servers use the rmcp Rust library for MCP protocol implementation
- Integrates with Amazon Q CLI via JSON configuration

Ensure Rust/Cargo, AWS credentials (for RDS/S3), and an MCP‑compatible assistant are installed. Clone the repository and run cargo build --release --bin <server_name> for each server. Run the built binaries directly or integrate them with Amazon Q CLI by adding a configuration block to your .amazon-q.json file, specifying the command path and arguments for each server.

MCP Sample

A Rust implementation of Model Context Protocol (MCP) servers for extending AI assistant capabilities.

Overview

This project provides sample MCP servers that can be used with Amazon Q or other MCP-compatible AI assistants. The servers implement various functionalities:

- Calculator Server: Performs basic arithmetic operations
- RDS Server: Interacts with Amazon RDS instances
- S3 Server: Manages Amazon S3 buckets and objects
- PostgreSQL Server: Connects to PostgreSQL databases and executes queries

Prerequisites

- Rust and Cargo
- AWS credentials configured for RDS and S3 operations
- An MCP-compatible AI assistant (like Amazon Q)

Installation

Clone the repository and build the project:

git clone <repository-url>
cd mcp-sample
cargo build

Usage

Build the executable files for each server:

# Build the calculator server
cargo build --release --bin calculator_server

Build the RDS server

cargo build --release --bin rds_server

Build the S3 server

cargo build --release --bin s3_server

Build the PostgreSQL server

cargo build --release --bin postgresql_server

After building, you can run each server independently:

# Run the calculator server
./target/release/calculator_server

Run the RDS server

./target/release/rds_server

Run the S3 server

./target/release/s3_server

Run the PostgreSQL server (requires a connection string)

./target/release/postgresql_server "postgresql://username:password@hostname:port/database"

Integration with Amazon Q CLI

To integrate these MCP servers with Amazon Q CLI or other MCP-compatible clients, add a configuration like this to your .amazon-q.json file:

{
  "mcpServers": {
    "calculator": {
      "command": "/path/to/mcp-sample-servers-rust/target/release/calculator_server",
      "args": []
    },
    "s3": {
      "command": "/path/to/mcp-sample-servers-rust/target/release/s3_server",
      "args": []
    },
    "rds": {
      "command": "/path/to/mcp-sample-servers-rust/target/release/rds_server",
      "args": []
    },
    "postgres": {
      "command": "/path/to/mcp-sample-servers-rust/target/release/postgresql_server",
      "args": ["postgresql://username:password@hostname:port/database"]
    }
  }
}

Replace /path/to/mcp-sample-servers-rust/ with the actual path to your built binaries. Once configured, Amazon Q will be able to use these servers to extend its capabilities.

Server Descriptions

Calculator Server

Provides basic arithmetic operations like addition and subtraction.

RDS Server

Lists and manages Amazon RDS instances in specified regions.

S3 Server

Manages S3 buckets and objects, including listing buckets by region.

PostgreSQL Server

Connects to PostgreSQL databases and executes read-only queries, lists tables, and provides schema information.

Dependencies

- rmcp: Rust implementation of the Model Context Protocol
- AWS SDK for Rust (aws-sdk-s3, aws-sdk-rds, aws-config)
- Tokio for async runtime
- Serde for serialization/deserialization
- tokio-postgres for PostgreSQL database connectivity

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.