Aws Rds Mysql Mcp Server Amazonq Cli

Aws Rds Mysql Mcp Server Amazonq Cli

🚀 Amazon Q CLI与MySQL MCP服务器集成

本项目提供了将AWS RDS MySQL MCP服务器与Amazon Q CLI集成的全面指南,借助Amazon Q的对话界面,实现通过自然语言与数据库进行交互。

🚀 快速开始

本项目展示了如何配置Amazon Q CLI以与FastMCP MySQL服务器协同工作,让你能够通过Amazon Q的聊天界面,使用自然语言命令与AWS RDS MySQL数据库进行交互。

✨ 主要特性

  • 自然语言交互:借助Amazon Q的对话界面,使用自然语言命令与AWS RDS MySQL数据库进行交互。
  • 多配置模式:支持工作区配置和全局配置两种MCP配置模式。
  • 安全可靠:具备输入验证、操作限制、连接超时、环境隔离和错误处理等安全特性。
  • 操作丰富:支持SELECTINSERTUPDATEDELETECREATESHOWDESCRIBE等多种数据库操作。

📦 安装指南

1. 安装Amazon Q CLI

请按照以下安装指南进行操作:

2. 创建虚拟环境

# 创建隔离的虚拟环境
python3 -m venv venv-mcp

# 激活虚拟环境
# Linux/macOS:
source venv-mcp/bin/activate

3. 安装依赖项

pip3 install fastmcp pymysql boto3 python-dotenv

4. 环境配置

# 复制示例环境文件
cp .env.example .env

# 使用实际配置编辑.env文件

配置你的.env文件:

# AWS配置
AWS_REGION=us-east-1
BEDROCK_MODEL_ID=anthropic.claude-3-haiku-20240307-v1:0

# MySQL数据库配置
RDS_HOST=your-mysql-host.amazonaws.com
RDS_PORT=3306
RDS_USER=your-username
RDS_PASS=your-password
RDS_DB=your-database-name

⚠️ 重要提示

  • 切勿将.env文件提交到版本控制中。
  • .env添加到你的.gitignore文件中。
  • 在生产环境中使用AWS IAM角色。
  • 定期轮换数据库凭证。

🔧 技术细节

MCP配置选项

Amazon Q CLI支持两种MCP配置模式(我们将实现全局配置):

工作区配置

  • 作用域:特定目录
  • 位置:工作目录中的/.amazonq/mcp.json
  • 使用方法:必须从配置目录运行Q CLI命令

全局配置(推荐)

  • 作用域:系统级访问
  • 位置~/.aws/amazonq/mcp.json
  • 使用方法:可从任何目录运行Q CLI命令
  • 优点:系统重启后配置仍然有效

全局MCP设置(推荐)

1. 创建配置目录

# 创建Amazon Q配置目录
mkdir -p ~/.aws/amazonq

2. 创建MCP配置文件

创建~/.aws/amazonq/mcp.json,内容如下:

{
"mcpServers": {
"rds_mysql_server": {
"command": "/absolute/path/to/your/venv-mcp/bin/python3",
"args": [
"/absolute/path/to/your/fastmcp_server.py"
],
"env": {},
"timeout": 120000,
"disabled": false
}
}
}

重要提示:请将路径替换为你实际的绝对路径:

  • /absolute/path/to/your/venv-mcp/bin/python3
  • /absolute/path/to/your/fastmcp_server.py

3. 验证配置

q mcp list

预期输出

workspace:
/.amazonq/mcp.json
(empty)

global:
/home/username/.aws/amazonq/mcp.json
• rds_mysql_server /path/to/venv-mcp/bin/python3

💻 使用示例

启动Amazon Q聊天

q chat

数据库交互示例

# 自然语言查询
"Show me all tables in the database"
"Create a users table with id, name, and email columns"
"Find all records in the users table"
"Insert a new user with name 'John Doe' and email 'john@example.com' in users table"
"Show the structure of the users table"

📚 详细文档

支持的操作

操作 描述 示例
SELECT 查询数据 "Show all users"
INSERT 添加记录 "Add a new user"
UPDATE 修改数据 "Update user email"
DELETE 删除记录 "Delete user"
CREATE 创建表 "Create users table"
SHOW 显示信息 "Show all tables"
DESCRIBE 表结构 "Describe users table"

故障排除

常见问题

  1. 未找到MCP服务器
    • 验证mcp.json中的绝对路径。
    • 确保虚拟环境已正确创建。
    • 检查文件权限。
  2. 数据库连接失败
    • 验证.env配置。
    • 测试数据库连接性。
    • 检查防火墙设置。
  3. 权限被拒绝
    • 验证AWS凭证。
    • 检查数据库用户权限。
    • 确保使用了正确的IAM角色。

调试命令

# 直接测试MCP服务器
python3 fastmcp_server.py

# 验证环境变量
echo $AWS_REGION

# 检查Q CLI配置
q mcp list
q chat --debug

配置管理

更新MCP服务器

  1. 停止所有正在运行的Q聊天会话。
  2. 更新fastmcp_server.py或配置。
  3. 重新启动Q聊天:q chat

禁用MCP服务器

{
"mcpServers": {
"rds_mysql_server": {
"disabled": true
}
}
}

性能优化

  • 连接池:重用数据库连接。
  • 查询缓存:缓存频繁访问的数据。
  • 超时管理:根据查询复杂度优化超时值。
  • 资源监控:监控CPU和内存使用情况。

下一步计划

  1. 扩展功能:添加自定义工具以实现特定业务逻辑。
  2. 多数据库支持:配置多个数据库连接。
  3. 高级安全:实现基于角色的访问控制。
  4. 监控:设置日志记录和性能监控。
  5. 自动化:为团队环境创建部署脚本。

⚠️ 重要提示

此配置通过Amazon Q CLI的自然语言界面为你提供对MySQL数据库的持久、系统级访问。在处理数据库凭证和连接时,请始终遵循安全最佳实践。

  • 0 关注
  • 0 收藏,21 浏览
  • system 提出于 2025-09-24 06:57

相似服务问题

相关AI产品