mcpField
A
AWS MCP Server with Agno Agent

AWS MCP Server with Agno Agent

本地服务
github.com/skjortan23云与基础设施739 周前更新

关于 AWS MCP Server with Agno Agent

这是一个用 FastMCP 和 Agno 将 AWS 功能提供给 MCP 客户端的示例项目,面向需要通过自然语言查询 AWS 环境的开发者。它还包含基于 Ollama 的交互式 Agent。

主要功能

  1. 01列出安全组及规则
  2. 02列出 S3 存储桶信息
  3. 03分析 VPC 连接
  4. 04交互式 Agno Agent
  5. 05支持本地 Ollama 模型

适用场景

  1. 01查询 AWS 安全组规则
  2. 02查看 S3 存储桶及策略信息
  3. 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 软件包:
    • boto3
    • agno
    • fastmcp(用于服务组件)
    • rich(用于交互式控制台)

安装

  1. 克隆代码库:

    git clone https://github.com/skjortans/aws-mcp-server.git
    cd aws-mcp-server
    
  2. 创建虚拟环境(可选,但建议):

    python -m venv venv
    source venv/bin/activate  # On Windows use: venv\Scripts\activate
    
  3. 安装依赖项:

    如果有 requirements.txt,请运行:

    pip install -r requirements.txt
    

    否则,请手动安装依赖项:

    pip install boto3 agno fastmcp rich click
    
  4. 安装并启动 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

贡献

欢迎贡献!如果你有任何建议或改进意见:

  1. Fork 此代码库。
  2. 为你的功能或 Bug 修复创建一个新分支。
  3. 提交 pull request,并详细说明所做的更改。

架构

MCP 服务

MCP 服务使用 FastMCP 构建,并将 AWS 工具作为兼容 MCP 的端点提供。它使用服务器发送事件(SSE)传输方式与客户端实时通信。

Agent 架构

该项目包含两种 Agent 实现:

  1. 交互式 Agno Agent(aws-demo-agent.py):

    • 基于 Agno 框架构建
    • 使用本地 Ollama 模型提供 AI 能力
    • 提供支持非阻塞交互的控制台,并采用丰富的格式
    • 支持并行任务执行和管理
    • 实时流式显示工具调用和响应
    • 包含命令历史记录和帮助功能
  2. 简单 Agent(aws-agent.py):

    • 使用 smolagents 库
    • 实现较为简单,适用于基本用例
    • 连接到 MCP 服务以访问 AWS 工具
    • 注意:此实现缺少 MCPClientParameters 的导入,可能需要更新

许可证

免费使用!

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。