Token导航 LogoToken导航TokenDH.com
Aws MCP Demo logo
开发工具未说明官方级别未说明来源级核验

Aws MCP Demo

MCP Server

一个用于将MCP服务器部署到AWS AgentCore运行时的工具,支持快速部署和测试。

工具数

1

提示词数

0

GitHub Stars

1

资源数

0
开发工具容器化Python自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

WayneGreeley

提供方

WayneGreeley

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP服务器部署到AWS AgentCore运行时

按照教程: 通过两个命令从本地MCP服务器到AWS部署

备注:此实现使用 aws login 凭证,而不是传统的长期AWS凭证。还包括一些额外的步骤来处理AgentCore工具包的凭据兼容性要求。
备注:替换 `` 在运行命令之前,请使用您的实际AWS配置文件名。

🚀 快速入门(如果您克隆了此Repo)

如果您克隆了此存储库,只想部署MCP服务器,请按照以下最小步骤操作:

先决条件

  • AWS-CLI 2.32.0+
  • Python 3.10+与uv包管理器
  • 通过以下方式获得有效的AWS凭据 aws login

分6步部署

  1. 设置进程凭据 (一次性设置):
   aws configure set credential_process "aws configure export-credentials --profile  --format process" --profile process-
   aws sts get-caller-identity --profile process-  # verify it works
  1. 安装依赖项:
   cd mcp-server
   uv add fastmcp
   uv tool install bedrock-agentcore-starter-toolkit
  1. 配置和部署:
   export AWS_PROFILE=process-
   agentcore configure --create --entrypoint server.py --name dice_mcp_server --deployment-type container --protocol MCP --non-interactive
  1. 修复ECR配置:

步骤3创建 .bedrock_agentcore.yaml.打开 .bedrock_agentcore.yaml 和改变 ecr_auto_createtrue。这允许AgentCore在部署过程中自动创建Docker镜像存储库。

  1. 部署:
   export AWS_PROFILE=process-
   agentcore deploy
  1. 测试 (验证MCP服务器功能):
   export AWS_PROFILE=process-
   # List available tools
   agentcore invoke '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

   # Call the roll_d20 tool
   agentcore invoke '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"roll_d20","arguments":{"number_of_dice":3}}}'

预期: tools/list 显示 roll_d20 工具, tools/call 返回骰子结果,如下所示 [10, 20, 8]

  1. 完成后进行清理:
   export AWS_PROFILE=process-
   agentcore destroy

备注:您可能需要手动删除剩余的ECR存储库和CloudWatch日志组。

______________________________________________________________________

📖 完整教程(从头开始构建)

如果您想了解完整的过程或从头开始构建,请按照以下详细步骤操作:

先决条件

  • AWS-CLI 2.32.0+
  • Python 3.10+与uv包管理器
  • 通过以下方式获得有效的AWS凭据 aws login

重要提示:用于AgentCore兼容性的凭据设置

问题:AgentCore工具包不能直接使用 aws login 凭据,即使AWS CLI工作正常。

解决方案:创建一个充当“桥梁”的流程凭据配置文件:

# Step 1: Create process credentials profile (one-time setup)
aws configure set credential_process "aws configure export-credentials --profile  --format process" --profile process-

# Step 2: Verify it works
aws sts get-caller-identity --profile process-

# Step 3: Use this profile for all agentcore commands
export AWS_PROFILE=process-

这有什么作用:

  • process- 是一个包装器配置文件,它将您的登录凭据转换为agentcore可以理解的格式
  • credential_processaws configure export-credentials 以正确的格式获取您的登录凭据
  • export AWS_PROFILE=process- 告诉该终端中的所有AWS工具使用包装器配置文件

为什么需要这样做:

  • aws login 使用较新的凭据提供程序创建临时凭据
  • 一些工具(如agentcore)尚不支持此提供程序
  • 进程凭据是AWS针对此兼容性问题推荐的解决方法
  • 这记录在 AWS CLI文档

步骤1:创建MCP服务器

创建项目结构:

uv init --bare mcp-server
cd mcp-server
uv add fastmcp

创建server.py

创建 mcp-server/server.py 具体内容如下:

import random
from fastmcp import FastMCP

# Create the MCP server with AgentCore Runtime configuration
mcp = FastMCP("Dice Rolling Server", host="0.0.0.0", stateless_http=True)

@mcp.tool()
def roll_d20(number_of_dice: int = 1) -> list[int]:
    """Roll a 20-sided die multiple times.
    
    Args:
        number_of_dice: Number of dice to roll (default: 1)
        
    Returns:
        List of dice roll results
    """
    return [random.randint(1, 20) for _ in range(number_of_dice)]

if __name__ == "__main__":
    mcp.run(transport="streamable-http")

步骤2:本地测试(可选)

备注:本地测试需要HTTP模式,但AgentCore使用stdio模式。您可以跳过此步骤。

如果你想在本地测试:

  1. 修改server.py以使用HTTP模式: mcp.run(transport="http", port=8000)
  2. 运行: uv run python server.py
  3. 使用curl命令进行测试
  4. 重要:更改回 mcp.run() 部署到AgentCore之前

步骤3:安装AgentCore工具包

uv tool install bedrock-agentcore-starter-toolkit

步骤4:配置AgentCore运行时

export AWS_PROFILE=process-

使用正确的参数配置AgentCore:

agentcore configure --create --entrypoint server.py --name dice_mcp_server --deployment-type container --protocol MCP --non-interactive

步骤5:为容器构建创建Dockerfile

对于容器部署,创建一个Dockerfile:

创建 mcp-server/Dockerfile:

FROM python:3.12-slim

WORKDIR /app

# Copy project files
COPY pyproject.toml ./
COPY server.py ./

# Install uv and dependencies
RUN pip install uv
RUN uv sync

# Expose port (though AgentCore uses stdio)
EXPOSE 8000

# Run the MCP server
CMD ["uv", "run", "python", "server.py"]

重要:使用 uv syncuv sync --frozen (冻结标志需要一个不存在的锁文件)

步骤6:修复ECR配置

该配置可能无法启用ECR自动创建。编辑 .bedrock_agentcore.yaml 并更改:

ecr_auto_create: false

致:

ecr_auto_create: true

步骤7:部署到AgentCore运行时

export AWS_PROFILE=process-
agentcore deploy

发生了什么:

  • 创建内存资源(需要2-3分钟)
  • 在CodeBuild中构建容器(需要1-2分钟)
  • 部署到AgentCore运行时
  • 设置可观察性(CloudWatch日志+X射线)

预期产量:

🎉 CodeBuild completed successfully
Agent created/updated: arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/dice_mcp_server-XXXXX
✅ Deployment Success

步骤8:测试部署的服务器

export AWS_PROFILE=process-

# List available tools
agentcore invoke '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

# Call roll_d20 tool
agentcore invoke '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"roll_d20","arguments":{"number_of_dice":3}}}'

预期结果:

  • tools/list 返回 roll_d20 工具及其描述和模式
  • tools/call 返回实际掷骰子结果,如 [10, 20, 8]

第9步:清理(重要!)

始终清理资源以避免收费:

export AWS_PROFILE=process-
agentcore destroy

被删除的内容:

  • AgentCore运行时
  • ECR存储库和映像
  • CodeBuild项目
  • S3工件
  • 内存资源
  • IAM角色
  • 配置文件

故障排除

常见问题:

  1. “agentcore配置需要有效的aws凭据”

- 解决方案:使用进程凭据解决方法(请参阅先决条件)

  1. “未配置ECR存储库,也未启用自动创建”

- 解决方案:编辑 .bedrock_agentcore.yaml 并设置 ecr_auto_create: true

  1. Docker构建失败,显示“在uv.lock处找不到锁文件”

- 解决方案:使用 uv syncuv sync --frozen 在Dockerfile中

  1. 测试MCP调用时出现内部错误

- 固定的:使用正确的FastMCP配置更新了服务器实施 - 使用 host="0.0.0.0", stateless_http=True,以及 transport="streamable-http" - MCP协议调用现在工作正常 - 基于提示的调用可能仍会显示错误,但核心功能正常工作

目录标签

目录标签

开发工具容器化Python自动化MCP服务器本地部署AWS部署

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP