项目简介

'mcp-report' 仓库提供了一个用于自动化生成AWS成本分析报告的应用。该应用基于LangGraph构建代理工作流,通过调用多种MCP (Model Context Protocol) 服务器提供的工具,获取AWS成本数据、执行AWS CLI命令、进行互联网搜索或访问其他资源,最终生成详细的成本分析报告。它展示了如何通过集成不同的MCP服务来增强大型语言模型的应用能力。

主要功能点

  • 自动化报告生成: 根据预定义的工作流,自动获取AWS成本数据并生成报告草稿。
  • 多源数据整合: 通过调用MCP工具,集成AWS Cost Explorer数据、AWS CLI结果、互联网搜索结果等多种信息源。
  • 报告智能改进: 利用LLM的Reflection能力,对生成的报告草稿进行自我评估和修正。
  • 可视化支持: 生成成本数据的图表并嵌入报告中。
  • 可扩展性: 通过添加或选择不同的MCP服务器,可以轻松扩展代理的能力。

安装步骤

  1. 安装AWS CLI: 确保已安装最新版本的AWS CLI,并使用 'aws configure' 命令配置AWS凭证,以便应用可以访问您的AWS账户资源(如Cost Explorer, S3, Secrets Manager等)。
  2. 创建Python虚拟环境:
    python -m venv venv
    source venv/bin/activate
  3. 克隆仓库:
    git clone https://github.com/kyopark2014/mcp-report
    cd mcp-report
  4. 安装Python依赖:
    python -m pip install -r requirements.txt
  5. 配置API Keys: 编辑 'application/config.json' 文件,填入所需的API密钥。根据您选择的MCP服务器,可能需要配置 OpenWeatherMap (天气), Tavily (搜索), Perplexity (搜索), Firecrawl (网页抓取) 等服务的API密钥。同时需要配置AWS相关资源的信息,如果您部署了CDK栈,这些信息会由CDK输出提供。
  6. 运行应用: 启动Streamlit应用:
    streamlit run application/app.py
    您也可以选择使用提供的Dockerfile构建Docker镜像并在Docker中运行。

服务器配置 (MCP客户端配置)

该应用(Streamlit前端和其背后的LangGraph代理)作为MCP客户端运行。它通过启动独立的进程来运行各种MCP服务器。MCP客户端需要知道如何启动这些服务器进程。仓库中的 'application/mcp_config.py' 文件定义了多种预配置的MCP服务器启动命令和参数。

在Streamlit应用的侧边栏中,您可以选择需要启用的MCP服务器。这些选择将决定MCP客户端(应用)在运行时会启动哪些MCP服务器进程,并从这些进程获取工具能力。

以下是一些示例MCP服务器的启动命令(实际由应用内部根据您的选择执行,您无需手动运行这些命令,但了解它们有助于理解架构):

  • 基础工具MCP服务器 (tools): 提供获取当前时间、搜索书籍、查询天气、查询股票等工具。 'command': 'python' 'args': '["application/mcp_server_basic.py"]'
  • AWS成本MCP服务器 (aws_cost): 提供获取AWS每日、区域、服务成本数据和创建可视化图表的工具。 'command': 'python' 'args': '["application/mcp_server_aws_cost.py"]'
  • AWS CLI MCP服务器 (aw-cli): 提供执行通用AWS CLI命令的工具。 'command': 'python' 'args': '["application/mcp_server_aws_cli.py"]'
  • Wikipedia MCP服务器 (wikipedia): 提供维基百科搜索和摘要工具。 'command': 'python' 'args': '["application/mcp_server_wikipedia.py"]'
  • 代码解释器MCP服务器 (code interpreter): 提供执行Python代码和绘制图表的工具。 'command': 'python' 'args': '["application/mcp_server_coder.py"]'
  • RAG MCP服务器 (rag): 提供基于AWS Knowledge Base进行文档搜索的工具。 'command': 'python' 'args': '["application/mcp_server_rag.py"]'

MCP客户端通过这些命令在后台启动相应的服务器进程,然后通过标准I/O进行JSON-RPC通信来调用这些服务器提供的工具。

基本使用方法

  1. 成功安装并启动应用后,在浏览器中访问Streamlit界面(通常是 'http://localhost:8501' 或 Docker映射的端口)。
  2. 在左侧侧边栏,选择“ 비용 분석 ”(成本分析)模式。
  3. (可选)在侧边栏选择其他需要启用的MCP选项,例如 “aws cli”, “tavily” 等,以扩展代理的能力。
  4. 点击界面上的“ 대화 초기화 ”(对话初始化)按钮。
  5. 应用会自动执行成本分析工作流。您可以在界面上看到状态更新和最终生成的报告内容,包括图表和分析洞察。
  6. 您也可以在聊天输入框中输入相关问题,与代理进行交互式对话或触发新的分析流程(取决于应用的具体实现和配置)。

信息

分类

AI与计算