项目简介
本项目是一个基于 Model Context Protocol (MCP) 实现的服务器,它作为 LLM (大型语言模型) 客户端的后端服务。其主要功能是将 LLM 的请求转化为对 AWS Application Signals 和 S3 服务的调用,并将结果返回给 LLM,从而赋能 LLM 了解和管理 AWS 资源。
主要功能点
该 MCP 服务器提供以下工具供 LLM 调用:
- 列出 S3 存储桶: 获取当前 AWS 账户下所有 S3 存储桶的列表及其创建日期。
- 列出 Application Signals 服务: 获取 AWS Application Signals 监控的所有服务的列表及其关键属性。
- 获取服务详细信息: 根据服务名称获取指定 Application Signals 服务的详细配置和关联信息。
- 获取服务指标: 根据服务名称、指标名称(可选)、统计方法和时间范围,从 CloudWatch 获取 Application Signals 服务的性能指标数据。
- 获取 SLI 状态: 获取所有 Application Signals 监控服务的 SLI (服务水平指标) 状态概览,包括健康、违规或数据不足的服务列表。
安装步骤
-
确保已安装 Python 和 uv: 请先安装 Python 3.8+ 和 uv 工具。
-
克隆仓库: 将项目代码克隆到本地。
-
安装依赖: 进入项目目录,使用 uv 安装所需的依赖库(包括 boto3 用于与 AWS 交互)。
uv pip install -e . -
配置 AWS 凭证: 确保您的 AWS 凭证已配置妥当(例如通过环境变量 'AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY' 或 '~/.aws/credentials' 文件),以便服务器可以调用 AWS API。
服务器配置
要在支持 MCP 的 LLM 客户端中使用此服务器,您需要将以下信息配置到客户端的 MCP 服务器列表中。通常,这涉及提供服务器的名称、启动命令及其参数。
配置信息应指定如何启动这个 MCP 服务器进程。这个服务器被设计通过标准输入/输出 (stdio) 与客户端通信。
- 服务器名称 (server name): 'appsignal'
- 启动命令 (command): 'python'
- 启动参数 (args): '-m mcp_server_appsignals'
在您的 MCP 客户端配置界面中,找到添加或配置 MCP 服务器的选项,并填入以上对应的名称、命令和参数。
基本使用方法
配置完成后,您的 LLM 客户端即可连接到此 MCP 服务器。您可以通过自然语言指令提示 LLM 调用暴露的工具。例如:
- 询问 LLM:“列出我的 S3 存储桶。” (LLM 可能会调用 'list_s3_buckets' 工具)
- 询问 LLM:“查看 Application Signals 监控了哪些服务?” (LLM 可能会调用 'list_application_signals_services' 工具)
- 询问 LLM:“获取服务 'my-web-app' 的详细信息。” (LLM 可能会调用 'get_service_details' 工具,并传递 'service_name='my-web-app'')
- 询问 LLM:“告诉我服务 'my-api' 的最新延迟指标。” (LLM 可能会调用 'get_service_metrics' 工具,并传递 'service_name='my-api'', 'metric_name='Latency'')
- 询问 LLM:“检查一下所有服务的 SLI 状态。” (LLM 可能会调用 'get_sli_status' 工具)
LLM 会根据您的指令、工具的描述和参数要求,构建并发送 JSON-RPC 请求给服务器,服务器执行对应的 AWS API 调用并将结果返回给 LLM 进行解读和回复。
信息
分类
开发者工具