Sample Building Mcp Servers With Rust について
Amazon QやMCP対応AIアシスタント向けに、Rust製MCPサーバーのサンプルを提供します。計算、Amazon RDS、Amazon S3、PostgreSQLを扱う例が含まれます。
主な機能
- 01基本的な計算機能
- 02Amazon RDSインスタンスの一覧と管理
- 03Amazon S3バケットとオブジェクトの管理
- 04PostgreSQLのクエリとテーブル・スキーマ確認
活用シーン
- 01AIアシスタントで基本計算を行う
- 02指定リージョンのRDSインスタンスを確認する
- 03S3バケットの一覧表示とオブジェクト管理
- 04PostgreSQLに読み取り専用クエリを実行する
MCP 対応
RustでMCPサーバーを実装しています。クライアント側で設定し、計算機、RDS、S3、PostgreSQLのサーバーを個別に実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サンプル
AI アシスタントの機能を拡張するための、Model Context Protocol(MCP)サーバーの Rust 実装です。
概要
このプロジェクトでは、Amazon Q やその他の MCP 対応 AI アシスタントで使用できるサンプル MCP サーバーを提供しています。各サーバーは、次のようなさまざまな機能を実装しています。
- Calculator Server:基本的な算術演算を実行します
- RDS Server:Amazon RDS インスタンスと連携します
- S3 Server:Amazon S3 バケットとオブジェクトを管理します
- PostgreSQL Server:PostgreSQL データベースに接続してクエリを実行します
前提条件
- Rust と Cargo
- RDS と S3 の操作用に設定された AWS 認証情報
- MCP 対応 AI アシスタント(Amazon Q など)
インストール
リポジトリをクローンして、プロジェクトをビルドします。
git clone <repository-url>
cd mcp-sample
cargo build
使用方法
各サーバーの実行ファイルをビルドします。
# 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
ビルド後、各サーバーを個別に実行できます。
# 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"
Amazon Q CLI との統合
これらの MCP サーバーを Amazon Q CLI やその他の MCP 対応クライアントと統合するには、.amazon-q.json ファイルに次のような設定を追加します。
{
"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"]
}
}
}
/path/to/mcp-sample-servers-rust/ を、ビルドしたバイナリの実際のパスに置き換えてください。設定すると、Amazon Q はこれらのサーバーを使用して機能を拡張できるようになります。
サーバーの説明
Calculator Server
加算や減算などの基本的な算術演算を提供します。
RDS Server
指定されたリージョンの Amazon RDS インスタンスを一覧表示し、管理します。
S3 Server
リージョン別のバケット一覧表示など、S3 バケットとオブジェクトを管理します。
PostgreSQL Server
PostgreSQL データベースに接続し、読み取り専用クエリを実行して、テーブルを一覧表示し、スキーマ情報を提供します。
依存関係
- rmcp:Model Context Protocol の Rust 実装
- Rust 用 AWS SDK(aws-sdk-s3、aws-sdk-rds、aws-config)
- 非同期ランタイム用の Tokio
- シリアライズ/デシリアライズ用の Serde
- PostgreSQL データベース接続用の tokio-postgres
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。