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工作流。快乐建筑!
