AWS Serverless MCP 桥接工具

该工具连接本地Ollama模型与AWS Serverless MCP服务器,通过自然语言提示驱动SAM CLI,实现自动化项目初始化、构建、部署和本地调用。

  • by sriram-mv
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 sriram-mv/aws-sam-ollama-mcp-bridge

使用说明

Ollama AWS无服务器MCP网桥

这座桥将当地的Ollama模型连接到 AWS无服务器MCP服务器 因此,您可以使用自然语言提示驱动SAM CLI。它会自动发现MCP工具(sam_init, sam_build, sam_deploy, sam_local_invoke,…),决定调用哪些步骤,并在提示需要多个步骤时将它们链接起来。

亮点

  • 基于提示的工作流 –请求“初始化SAM项目…”或“构建…然后本地调用…”,桥接器将运行正确的命令。
  • 路径和默认处理 –规范化项目目录,创建缺失的文件夹,并填充SAM选项的默认值。
  • 会话存储器 –记住最新的SAM项目和默认功能,因此后续提示(如“构建项目并在本地调用”)可以重用正确的目录。
  • Safeguard调用 –跑步前总是要求确认 sam_local_invoke 因此,您可以仔细检查目标项目/函数。
  • 流媒体反馈 –记录每个MCP请求/响应,以便您可以准确查看SAM CLI返回的内容。

先决条件

要求 注意事项
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 virtualenv可用。
AWS凭据 通过配置 ~/.aws/credentials 或环境变量(AWS_PROFILE, AWS_REGION等等)。
Docker(可选) 必需 sam_local_invoke.

配置(bridge_config.json)

repo附带了一个即用型配置,该配置:

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

直接在中覆盖值(例如型号名称或AWS配置文件) bridge_config.json.何时 sam_init 提示省略路径,网桥将项目写入 /Users/srirammv/seagl/aws-sam-projects 除非你覆盖 SAM_PROJECT_BASE (环境变量)。运行时默认值遵循env变量 SAM_DEFAULT_RUNTIME (python3.10), SAM_DEFAULT_ARCHITECTURE (arm64),以及 SAM_DEFAULT_DEPENDENCY_MANAGER (pip).该桥还缓存了最后一个项目目录和函数,因此模糊的请求(“构建项目并在本地调用它”)会重用该上下文;通过以下方式调整回退功能 SAM_DEFAULT_FUNCTION (默认值 HelloWorldFunction).

跑桥

# install dependencies once
npm install

# interactive chat (recommended)
LOG_LEVEL=info npm run start

提示:离开 ollama serve 开车过桥时跑步。网桥会自动生成运行进程,因此您通常不需要启动 ollama runner 手动操作,除非您正在调试。

在交互循环中:

  • 键入任何提示以执行它。
  • list-tools 打印发现的MCP工具。
  • quit 干净地关闭了所有东西。

对于单次非交互式跑步:

LOG_LEVEL=info npm run run-once -- 'build the project …'

演示提示

意图 提示
初始化项目 Initialize a new AWS SAM project named serverless-arm-test at /Users/srirammv/seagl/aws-sam-projects with runtime python3.10, architecture arm64, and dependency manager pip.
构建然后调用 Build the SAM project at /Users/srirammv/seagl/aws-sam-projects/serverless-arm-test and then locally invoke HelloWorldFunction.
快速本地调用 Locally invoke HelloWorldFunction from /Users/srirammv/seagl/aws-sam-projects/serverless-arm-test using sample event.json.

日志记录提示

  • 集 LOG_LEVEL=debug 查看工具检测、请求有效载荷和原始MCP响应。
  • 桥印 Tool response payload: … 对于每个MCP调用,显示确切的SAM输出。
  • MCP stderr已正常化:信息/警告/错误以自然级别出现,而不是垃圾邮件 Process stderr.

定制行为

  • 关键词: 更新 EXTRA_KEYWORDS 在 src/tool-registry.ts 教桥牌新短语。
  • 默认值: 调整 SAM_* env变量(请参见 .env.template)或调整回退逻辑 src/bridge.ts 如果你需要不同的记忆项目行为。
  • 模型: 改变 llm.model 在 bridge_config.json 适用于任何可靠处理JSON格式指令的Ollama模型。

故障排除

  • 检测到错误的工具: 与...一起跑 LOG_LEVEL=debug 检查“检测到的候选工具”并相应地调整关键字。
  • sam_local_invoke 错误: 确认Docker正在运行,函数名与中的逻辑ID匹配 template.yaml.
  • 现有目录警告: sam_init 显示底层SAM CLI消息;删除目录或选择新名称并重新运行。

这就是你所需要的——启动网桥,给它简单的语言指令,让AWS无服务器MCP处理SAM工作流。快乐建筑!

演示