关于 AWS MCP Server with Agno Agent
这是一个用 FastMCP 和 Agno 将 AWS 功能提供给 MCP 客户端的示例项目,面向需要通过自然语言查询 AWS 环境的开发者。它还包含基于 Ollama 的交互式 Agent。
主要功能
- 01列出安全组及规则
- 02列出 S3 存储桶信息
- 03分析 VPC 连接
- 04交互式 Agno Agent
- 05支持本地 Ollama 模型
适用场景
- 01查询 AWS 安全组规则
- 02查看 S3 存储桶及策略信息
- 03分析 VPC 网络连接
MCP 相关
MCP 服务通过 SSE 暴露 AWS 工具,供兼容 MCP 的客户端调用,包括安全组、S3 存储桶和 VPC 连接分析。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
使用 Agno Agent 的 AWS MCP 服务
本项目使用 FastMCP 和 Agno 框架,将一组 AWS 工具集成到 MCP(Model Context Protocol)服务中。该服务提供 AWS 功能,例如列出安全组、列出 S3 存储桶和分析 VPC 连接,让远程客户端能够通过标准化的 MCP 与这些功能交互。
这是为 AWS meetup 制作的演示,主要展示了 MCP 和本地 Agent 的应用方式。
功能
- AWS 安全组工具:列出 AWS 安全组,并提供入站和出站规则的详细信息。
- AWS S3 存储桶工具:列出 S3 存储桶,并提供区域、创建日期和访问策略信息。
- AWS VPC 连接工具:分析 VPC 连接,包括对等连接、端点、中转网关、路由表和网络 ACL。
- MCP 服务:通过网络端点提供上述工具,允许任何兼容 MCP 的客户端调用。
- 交互式 Agno Agent:功能完善的 Agent,支持任务管理、命令历史记录和实时工具调用流。
- Ollama 集成:使用本地 Ollama 模型提供 AI 功能,减少对外部 API 的依赖。
先决条件
- Python 3.11 或更高版本
- 已配置供
boto3使用的 AWS 凭证(通过环境变量或 AWS 配置/凭证文件配置) - 已在本地安装并运行 Ollama(用于 Agent 组件)
- 所需的 Python 软件包:
boto3agnofastmcp(用于服务组件)rich(用于交互式控制台)
安装
-
克隆代码库:
git clone https://github.com/skjortans/aws-mcp-server.git cd aws-mcp-server -
创建虚拟环境(可选,但建议):
python -m venv venv source venv/bin/activate # On Windows use: venv\Scripts\activate -
安装依赖项:
如果有
requirements.txt,请运行:pip install -r requirements.txt否则,请手动安装依赖项:
pip install boto3 agno fastmcp rich click -
安装并启动 Ollama:
按照适用于你所用平台的 Ollama 安装说明操作,然后拉取一个模型:
ollama pull qwen3 # or another model of your choice
使用方法
运行 MCP 服务
主脚本将 AWS 工具封装为 FastMCP 服务,并使用 SSE 传输启动。运行服务,请执行:
python src/aws-security-mcp-server.py
启动后,你应该会看到:
[MCP Server] Listening on 127.0.0.1:5678 (TCP transport)
注意:虽然消息中提到了 TCP 传输,但代码中配置的传输方式是 SSE。
服务会将收到的 MCP 请求分发给相应的 AWS 工具进行处理。
运行交互式 Agent
本项目包含一个连接到 MCP 服务的交互式 Agent 示例。运行 Agent,请执行:
python src/aws-demo-agent.py
这将启动一个交互式控制台,你可以在其中:
- 运行在后台执行的查询
- 管理多个并发任务
- 查看实时工具调用流
- 查看命令历史记录和帮助信息
示例命令:
red-team> list_security_groups us-east-1
red-team> list_s3_buckets
red-team> analyze_vpc_connections us-east-1
red-team> tasks # List all running tasks
red-team> help # Show help information
使用简单 Agent
如需更简单的实现,可以使用基础 Agent:
python src/aws-agent.py
连接自定义客户端
你还可以使用任何兼容 MCP 的客户端连接到 MCP 服务。例如,使用 Agno 的 MCPTools:
from agno.agent import Agent
from agno.tools.mcp import MCPTools
from agno.models.ollama import Ollama
# Connect to the MCP server
mcp_tools = MCPTools(url="http://127.0.0.1:8000/sse/", transport='sse') # Adjust URL as needed for your setup
# Create an agent with the MCP tools
model = Ollama(id="qwen3")
agent = Agent(
model=model,
tools=[mcp_tools],
instructions="You are an AWS security expert."
)
# Run a query
result = agent.run("What VPC connections do I have?")
print(result)
执行客户端代码前,请确保 MCP 服务正在运行。
项目结构
aws-mcp-server/
├── README.md
├── requirements.txt # List of dependencies
├── src/
│ ├── aws-security-mcp-server.py # MCP server implementation with AWS tools
│ ├── aws-demo-agent.py # Interactive Agno agent with task management
│ └── aws-agent.py # Simple agent implementation
贡献
欢迎贡献!如果你有任何建议或改进意见:
- Fork 此代码库。
- 为你的功能或 Bug 修复创建一个新分支。
- 提交 pull request,并详细说明所做的更改。
架构
MCP 服务
MCP 服务使用 FastMCP 构建,并将 AWS 工具作为兼容 MCP 的端点提供。它使用服务器发送事件(SSE)传输方式与客户端实时通信。
Agent 架构
该项目包含两种 Agent 实现:
-
交互式 Agno Agent(
aws-demo-agent.py):- 基于 Agno 框架构建
- 使用本地 Ollama 模型提供 AI 能力
- 提供支持非阻塞交互的控制台,并采用丰富的格式
- 支持并行任务执行和管理
- 实时流式显示工具调用和响应
- 包含命令历史记录和帮助功能
-
简单 Agent(
aws-agent.py):- 使用 smolagents 库
- 实现较为简单,适用于基本用例
- 连接到 MCP 服务以访问 AWS 工具
- 注意:此实现缺少 MCPClientParameters 的导入,可能需要更新
许可证
免费使用!
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。