返回市场
亚马逊SAM奥拉玛MCP桥接器

亚马逊SAM奥拉玛MCP桥接器

作者:sriram-mv2 星标更新:2025-11-07

项目介绍

Ollama AWS 无服务器 MCP 桥接器

此桥接器连接本地 Ollama 模型与 AWS 无服务器 MCP 服务器,使您可以通过自然语言提示驱动 SAM CLI。它会自动发现 MCP 工具(如 sam_initsam_buildsam_deploysam_local_invoke 等),决定调用哪些工具,并在提示需要多个步骤时串联这些工具。

特点

  • 基于提示的工作流程 – 可以请求“初始化一个 SAM 项目……”或“构建……然后本地调用……”,桥接器将运行正确的命令。
  • 路径和默认值处理 – 标准化项目目录,创建缺失的文件夹,并为 SAM 选项填充默认值。
  • 会话记忆 – 记住最近的 SAM 项目和默认函数,因此后续提示如“构建项目并本地调用它”可以重用正确的目录。
  • 受保护的调用 – 在运行 sam_local_invoke 之前始终要求确认,以便您可以检查目标项目/函数。
  • 流式反馈 – 记录每个 MCP 请求/响应,以便您可以确切地看到 SAM CLI 返回了什么。

预备条件

要求备注
Ollamaollama.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)

该仓库附带了一个准备好的配置:

  • 使用写入权限启动无服务器 MCP (awslabs.aws-serverless-mcp-server --allow-write)。
  • 将 LLM 客户端指向 http://localhost:11434qwen2.5-coder:7b-instruct
  • 设置系统提示,提醒模型在调用工具时以 JSON 格式响应。

可以直接在 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 响应。
  • 桥接器为每次 MCP 调用打印 Tool response payload: …,显示确切的 SAM 输出。
  • MCP stderr 已标准化:INFO/WARN/ERROR 以它们的自然级别出现,而不是充斥 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 工作流。祝您构建愉快!

演示

启动横幅

桥接器演示截图