此桥接器连接本地 Ollama 模型与 AWS 无服务器 MCP 服务器,使您可以通过自然语言提示驱动 SAM CLI。它会自动发现 MCP 工具(如 sam_init、sam_build、sam_deploy、sam_local_invoke 等),决定调用哪些工具,并在提示需要多个步骤时串联这些工具。
sam_local_invoke 之前始终要求确认,以便您可以检查目标项目/函数。| 要求 | 备注 |
|---|---|
| Ollama | 从 ollama.com 安装。拉取 qwen2.5-coder:7b-instruct (ollama pull qwen2.5-coder:7b-instruct)。在另一个终端中使用 ollama serve 启动守护进程,以便桥接器可以连接。 |
| AWS 无服务器 MCP | 克隆 https://github.com/awslabs/mcp 并确保 src/aws-serverless-mcp-server/venv310 虚拟环境可用。 |
| AWS 凭证 | 通过 ~/.aws/credentials 或环境变量 (AWS_PROFILE, AWS_REGION 等) 配置。 |
| Docker (可选) | 对于 sam_local_invoke 是必需的。 |
bridge_config.json)该仓库附带了一个准备好的配置:
awslabs.aws-serverless-mcp-server --allow-write)。http://localhost:11434 和 qwen2.5-coder:7b-instruct。可以直接在 bridge_config.json 中覆盖值(例如模型名称或 AWS 配置文件)。当 sam_init 提示省略路径时,桥接器将项目写入 /Users/srirammv/seagl/aws-sam-projects,除非您覆盖 SAM_PROJECT_BASE(环境变量)。运行时默认值遵循环境变量 SAM_DEFAULT_RUNTIME (python3.10)、SAM_DEFAULT_ARCHITECTURE (arm64) 和 SAM_DEFAULT_DEPENDENCY_MANAGER (pip)。桥接器还会缓存最后一个项目目录和函数,以便模糊请求(“构建项目并本地调用它”)可以重用该上下文;通过 SAM_DEFAULT_FUNCTION(默认 HelloWorldFunction)调整回退函数。
# 一次性安装依赖
npm install
# 交互式聊天(推荐)
LOG_LEVEL=info npm run start
提示:在驱动桥接器时,请保持
ollama serve运行。桥接器会自动启动运行程序,通常不需要手动启动ollama runner,除非您正在调试。
在交互循环内:
list-tools 打印发现的 MCP 工具。quit 清洁地关闭所有内容。对于单次非交互式运行:
LOG_LEVEL=info npm run run-once -- '构建项目……'
| 目的 | 提示 |
|---|---|
| 初始化项目 | 初始化一个新的 AWS SAM 项目,命名为 serverless-arm-test,在 /Users/srirammv/seagl/aws-sam-projects 中,运行时为 python3.10,架构为 arm64,依赖管理器为 pip。 |
| 构建后调用 | 构建位于 /Users/srirammv/seagl/aws-sam-projects/serverless-arm-test 的 SAM 项目,然后本地调用 HelloWorldFunction。 |
| 快速本地调用 | 从 /Users/srirammv/seagl/aws-sam-projects/serverless-arm-test 使用 sample event.json 本地调用 HelloWorldFunction。 |
LOG_LEVEL=debug 以查看工具检测、请求负载和原始 MCP 响应。Tool response payload: …,显示确切的 SAM 输出。Process stderr。src/tool-registry.ts 中的 EXTRA_KEYWORDS 以教桥接器新的短语。SAM_* 环境变量(参见 .env.template)或调整 src/bridge.ts 中的回退逻辑,如果您需要不同的记住项目行为。bridge_config.json 中的 llm.model 为任何可靠处理 JSON 格式指令的 Ollama 模型。LOG_LEVEL=debug 运行以检查“检测到的工具候选者”并相应地调整关键词。sam_local_invoke 错误:确认 Docker 正在运行且函数名称与 template.yaml 中的逻辑 ID 匹配。sam_init 显示底层 SAM CLI 消息;删除目录或选择新名称并重新运行。这就是您需要的一切——启动桥接器,给它自然语言指令,让 AWS 无服务器 MCP 处理 SAM 工作流。祝您构建愉快!

