项目简介

本项目提供了使用Rust语言构建的Model Context Protocol (MCP) 服务器示例,旨在帮助开发者理解如何创建MCP服务器,以扩展AI助手的功能。这些服务器可以与兼容MCP协议的客户端(如Amazon Q)进行通信,为AI助手提供额外的上下文信息和执行外部操作的能力。

主要功能点

本项目包含以下几个独立的MCP服务器实现:

  • 计算器服务器: 提供基本的数学运算能力,例如加法和减法。
  • RDS服务器: 允许AI助手查询Amazon RDS实例的信息,如列表、状态等。
  • S3服务器: 提供与Amazon S3服务交互的能力,例如列出存储桶。
  • PostgreSQL服务器: 支持连接到PostgreSQL数据库,执行只读查询、列出表格和获取表格Schema信息。

这些功能都以“工具”的形式通过MCP协议暴露给AI助手,使其能够根据用户请求调用相应的外部能力。

安装步骤

  1. 确保您的系统已安装Rust编程语言和Cargo构建工具。
  2. 配置好AWS凭证,以便RDS和S3服务器能够访问您的AWS资源(如果需要使用这两个服务器)。
  3. 克隆本项目仓库到本地:
    git clone https://github.com/aws-samples/sample-building-mcp-servers-with-rust.git
  4. 进入项目目录:
    cd sample-building-mcp-servers-with-rust
  5. 构建所有服务器的可执行文件:
    cargo build --release --bin calculator_server
    cargo build --release --bin rds_server
    cargo build --release --bin s3_server
    cargo build --release --bin postgresql_server
    构建成功后,可执行文件将位于 './target/release/' 目录下。

服务器配置

MCP客户端(如Amazon Q CLI)需要知道如何启动这些服务器才能与它们通信。通常,这涉及到在客户端的配置文件中添加服务器的启动信息。配置信息会包含服务器的名称、启动服务器所需的命令路径以及任何必要的启动参数。

  • 对于 calculator_server, rds_server, s3_server,启动命令是各自可执行文件的完整路径,启动参数为空。
  • 对于 postgresql_server,启动命令是可执行文件的完整路径,启动参数需要提供PostgreSQL数据库的连接字符串,例如 'postgresql://username:password@hostname:port/database'。

您需要将您系统中实际的服务器可执行文件路径填写到客户端的配置中。

基本使用方法

这些MCP服务器主要设计为由兼容MCP协议的AI助手客户端启动和管理。客户端会通过标准输入/输出来与服务器进行JSON-RPC通信。

您也可以手动在命令行中启动这些服务器进行测试(它们会监听标准输入,并将响应输出到标准输出):

  • 启动计算器服务器:
    ./target/release/calculator_server
  • 启动RDS服务器:
    ./target/release/rds_server
  • 启动S3服务器:
    ./target/release/s3_server
  • 启动PostgreSQL服务器(需要提供连接字符串):
    ./target/release/postgresql_server "您的PostgreSQL连接字符串"

服务器启动后会等待来自标准输入的MCP请求。要与服务器交互,您需要一个支持通过Stdio传输协议发送JSON-RPC MCP请求的客户端。

信息

分类

AI与计算