在这里插入图片描述

本篇目标:掌握 MCP 协议,把 Amazon Q 从“代码助手”升级成能调用外部工具、访问真实数据、跨系统执行任务的全能 AI 代理。


一、什么是 MCP?为什么 Q + MCP 是质变?

MCP(Model Context Protocol,模型上下文协议)是一套开放标准,让 AI(如 Amazon Q)能安全、标准化地调用外部工具、服务、数据库、API、本地文件

Q 原本能力 VS Q + MCP

  • 纯 Q(无 MCP):只能生成/解释代码,基于训练数据,看不到你真实的云环境、外部服务、实时数据
  • Q + MCP:AI 变成可执行的代理
    • 直接读/写你的 S3、DynamoDB、EC2
    • 调用 Jira、Outlook、Dynatrace、CI/CD、监控
    • 执行 CLI 命令、部署脚本、Terraform
    • 访问 实时文档、API、内部系统
    • 跨服务完成多步骤任务(如:S3 触发 → Lambda → 告警 → 报告)

一句话:MCP 让 Amazon Q 从“纸上谈兵”变成“真刀真枪干活”


二、MCP 核心架构(一看就懂)

在这里插入图片描述

  • MCP Client:内置在 Amazon Q(VS Code 插件 / Q CLI)
  • MCP Server:轻量级服务,暴露一组工具(Tools)
    • 本地进程(本地文件、脚本、私有服务)
    • 远程 HTTP(公有云 API、SaaS、托管 MCP)
  • Tool(工具):MCP 暴露的可调用函数(如 list_s3_bucketssend_emailquery_dynamodb
    在这里插入图片描述

三、Amazon Q 支持的 MCP 模式

1. 本地 MCP(最常用、最安全)

  • 运行在你本机/内网
  • 数据不离开你的环境
  • 适合:本地文件、私有 API、内部工具、脚本

2. 远程 MCP(HTTP)

  • 公网可访问的 MCP 服务
  • 支持 OAuth/IAM 认证
  • 适合:AWS 托管 MCP、SaaS 服务商提供的 MCP

3. AWS 官方 MCP 服务器(开箱即用)

AWS 提供一系列生产级 MCP,直接集成:

  • Core MCP:基础 AWS 能力(IAM、STS、API 调用)
  • Lambda MCP:Lambda 部署、调试、日志
  • S3 MCP:桶管理、文件操作、权限检查
  • DynamoDB MCP:表结构、单表设计、数据查询
  • Serverless MCP:SAM/CDK 部署、最佳实践
  • Docs MCP:实时 AWS 文档检索
  • Cost MCP:成本分析、异常检测、优化建议

四、VS Code + Amazon Q:配置 MCP(小白步骤)

方式 1:IDE 可视化配置(推荐)

  1. 打开 VS Code → 左侧 Amazon Q 图标
  2. 进入 Chat 窗口
  3. 右上角:Configure MCP ServerAdd new MCP
  4. 填写:
    • Name:自定义名称
    • TypeLocal Process(本地)或 Remote HTTP
    • Command:启动命令(如 uvxbunpython
    • Args:参数(如 awslabs.core-mcp-server@latest

示例(AWS Core MCP):

Name: AWSDocMCPServer
Type: Local Process
Command: uvx
Args: [ "awslabs.aws-documentation-mcp-server@latest" ]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这种状态说明Q成功连上AWSDocMCPServer工具
作用:让 Amazon Q 实时查询最新、最准确、最权威的 AWS 官方文档,再也不用自己翻官网、查百度!

方式 2:配置文件(全局/工作区)

  • 全局(所有项目生效):
    ~/.aws/amazonq/mcp.json
  • 工作区(仅当前项目):
    .amazonq/mcp.json

VS Code 快速打开mcp.json 配置文件: F1 → 输入“Amazon Q: Edit MCP Configuration”

最小配置示例:(添加AWSDocMCPServeraws-core工具)

{
  "mcpServers": {
    "aws-core": {
      "command": "uvx",
      "args": ["awslabs.core-mcp-server@latest"],
      "env": {
        "AWS_REGION": "us-east-1",
        "FASTMCP_LOG_LEVEL": "error"
      },
      "autoApprove": []    
    },
    "AWSDocMCPServer": {
      "command": "uvx",
      "args": ["awslabs.aws-documentation-mcp-server@latest"],
      "env": {"FASTMCP_LOG_LEVEL":"error","AWS_DOCUMENTATION_PARTITION":"aws"},
      "autoApprove": [],
      "disabled": false
    }
  }
}

注意:AWS_REGION 替换为您的区域

在这里插入图片描述
在这里插入图片描述


五、Q + MCP 核心能力:实战场景

场景 1:AI 直接操作真实 AWS 环境(S3/Lambda/DynamoDB)

自然语言指令(直接在 Q Chat 输入)

用 MCP 列出我所有 S3 桶,并标记公开访问的桶
帮我查看 my-lambda 函数的最近 10 行错误日志
分析 my-dynamo-table 的访问模式,给出 GSI 优化建议

效果

  • Q 调用 MCP Tools
  • 直接访问你真实的 AWS 账号
  • 返回实时结果,不是示例代码

场景 2:智能成本分析(Cost MCP)

分析我上个月的 AWS 成本,找出异常项
给我 EC2 + S3 的成本优化建议,用 MCP 查真实用量
生成未来 3 个月成本预测报表
  • 自动拉取 CUR 成本数据
  • 识别浪费、闲置资源
  • 给出可执行的降费方案

场景 3:代码 + 真实环境联调

我写的 S3 上传代码有问题,用 MCP 测试我的桶权限
帮我部署这段 Lambda 代码,并配置 S3 触发
  • Q 会:
    1. 检查你的 IAM 权限
    2. 验证 桶策略 / 安全配置
    3. 直接部署到你的 AWS 账号
    4. 测试并返回结果

场景 4:集成外部 SaaS(Outlook/Jira/Dynatrace)

用 MCP 读我 Outlook 未读邮件,总结重点
创建一个 Jira 任务:修复 Lambda 超时问题
用 Dynatrace MCP 查服务 P95 延迟
  • 办公、监控、项目管理 全部变成 AI 可调用

场景 5:自定义 MCP(调用内部工具/脚本)

你可以写自己的 MCP 服务器,暴露任意工具:

  • 内部 API
  • 数据库查询
  • CI/CD 触发
  • 批量脚本
  • 合规检查

示例:写一个 Python MCP,暴露 query_mysql 工具
→ Q 就能自然语言查数据库:

查订单表中昨天的总销售额

六、4 个 MCP 超级指令(速查)

在 Q Chat 直接用:

/mcp list

  • 列出所有已连接的 MCP 服务器
  • 显示每个服务器提供的 Tools

/mcp enable <server-name>

  • 启用指定 MCP
  • 例:/mcp enable aws-core

/mcp disable <server-name>

  • 禁用 MCP(临时关闭权限)

/mcp refresh

  • 重新加载 MCP 配置与工具列表

七、安全最佳实践(必看)

MCP 让 AI 能执行真实操作,安全第一:

  1. 最小权限 IAM

    • 给 MCP 使用的 IAM 用户只给必要权限
    • 禁止 * 通配符
  2. autoApprove 白名单

    "autoApprove": ["s3_list*", "lambda_get*"]
    
    • 仅自动批准读操作
    • 写/删除操作必须手动确认
  3. 分级配置

    • 全局:基础 MCP(Core、Docs)
    • 工作区:项目专用 MCP(Dynamo、Lambda)
  4. 审计日志

    • 所有 MCP 调用记录在 CloudTrail
    • 可追溯谁、何时、调用了什么工具

八、新手 3 步快速上手(复制即用)

Step 1:安装依赖

# 安装 uvx(运行 MCP 的工具)
curl -LsSf https://astral.sh/uv/install.sh | sh

Step 2:配置全局 MCP

vi ~/.aws/amazonq/mcp.json

粘贴:

{
  "mcpServers": {
    "aws-core": {
      "command": "uvx",
      "args": ["awslabs.core-mcp-server@latest"],
      "autoApprove": ["s3_List*", "ec2_Describe*", "lambda_Get*"]
    }
  }
}

Step 3:在 Q 中使用

# 试试这些指令
/mcp list
列出我所有 S3 桶
帮我检查 Lambda 执行角色的权限

九、常见问题

  1. MCP 连接失败

    • 检查 uvx --version 是否正常
    • 确认 AWS 凭证配置(~/.aws/credentials
    • 重启 VS Code
  2. 权限不足

    • 给 IAM 用户添加:
      qdeveloper:UseMCP
      s3:ListBuckets
      lambda:GetFunction
      
  3. 工具不显示

    • 执行 /mcp refresh
    • 检查 MCP 日志(~/.aws/amazonq/logs/

十、本篇总结

  • MCP 让 Amazon Q 从代码助手 → 全能 AI 代理
  • 支持 本地/远程/AWS 官方 三类 MCP
  • 核心能力:真实云操作、成本分析、跨服务部署、外部 SaaS 集成
  • 安全:最小权限 + 手动审批 + 审计日志
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐