使用说明
使用AWS Terraform的MCP工具Web演示
用于测试模型上下文协议(MCP)工具的全面web界面,包括数学运算、时间函数、天气API和AWS Terraform基础设施管理。
🚀 特性
- 交互式Web界面:使用TailwindCSS和Alpine.js构建的干净、响应式UI
- 多种工具类别:
- 🧮 数学运算:加法、减法、乘法、除法
- ⏰ 时间函数:当前时间和日期操作
- 🌤️ 天气API:基于位置的天气信息
- 🏗️ AWS地形:基础设施管理和文件搜索
- 实时工具执行:直接从浏览器执行MCP工具
- 工具发现:自动分类和过滤可用工具
- 快速测试示例:用于常见操作的预配置测试用例
📋 先决条件
所需依赖关系
pip install fastapi uvicorn langchain-mcp-adapters
可选依赖关系
- uvx:用于AWS Terraform MCP服务器集成
- Python 3.8+:运行应用程序所需
🛠️ 安装
-
克隆或下载应用程序:
# Save the script as mcp_web_demo.py -
安装依赖项:
pip install fastapi uvicorn langchain-mcp-adapters -
设置测试服务器 (可选): 创建一个
tests/servers/包含以下测试服务器的目录:math_server.py:数学运算time_server.py:时间函数weather_server.py:天气API
-
安装AWS Terraform MCP服务器 (可选):
# Install uvx if not already installed pip install uvx
🚀 用法
启动服务器
python mcp_web_demo.py
网络界面将在以下网址提供: http://localhost:8000
使用Web界面
- 浏览可用工具:查看按类型分类的所有可用MCP工具
- 筛选工具:使用搜索框查找特定工具
- 选择工具:单击任何工具查看其详细信息和参数
- 设置参数:填写所选工具的所需参数
- 执行:点击“执行工具”运行工具并查看结果
- 快速测试:使用预先配置的示例进行常见操作
工具类别
| 类别 | 描述 | 示例工具 |
|---|---|---|
| 🧮 数学 | 基本算术运算 | add, subtract, multiply, divide |
| ⏰ 时间 | 日期和时间功能 | get_time, get_date |
| 🌤️ 天气 | 天气信息 | get_weather |
| 🏗️ 地形/AWS | 基础设施管理 | SearchAwsProviderDocs, checkov |
🔧 配置
服务器配置
该应用程序被配置为连接到多个MCP服务器:
server_configs = {
"math": {
"command": sys.executable,
"args": [math_server_path],
"transport": "stdio",
},
"time": {
"command": sys.executable,
"args": [time_server_path],
"transport": "stdio",
},
"weather": {
"command": sys.executable,
"args": [weather_server_path],
"transport": "stdio",
},
"terraform": {
"command": "uvx",
"args": ["awslabs.terraform-mcp-server@latest"],
"transport": "stdio",
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
环境变量
FASTMCP_LOG_LEVEL:控制FastMCP服务器的日志记录级别(默认值:ERROR)
📡 API终点
获取 /
返回主web界面HTML页面。
获取 /api/tools
返回可用MCP工具的JSON数组。
响应格式:
[
{
"name": "tool_name",
"description": "Tool description",
"args_schema": {
"properties": {
"param1": {"type": "string"},
"param2": {"type": "number"}
}
}
}
]
发布 /api/execute
使用给定参数执行指定的MCP工具。
请求格式:
{
"tool_name": "add",
"parameters": {
"a": "5",
"b": "3"
}
}
响应格式:
{
"result": "8"
}
🧪 测试示例
数学运算
# Addition
curl -X POST http://localhost:8000/api/execute \
-H "Content-Type: application/json" \
-d '{"tool_name": "add", "parameters": {"a": "5", "b": "3"}}'
# Multiplication
curl -X POST http://localhost:8000/api/execute \
-H "Content-Type: application/json" \
-d '{"tool_name": "multiply", "parameters": {"a": "4", "b": "6"}}'
时间函数
# Get current time
curl -X POST http://localhost:8000/api/execute \
-H "Content-Type: application/json" \
-d '{"tool_name": "get_time", "parameters": {}}'
天气API
# Get weather for San Francisco
curl -X POST http://localhost:8000/api/execute \
-H "Content-Type: application/json" \
-d '{"tool_name": "get_weather", "parameters": {"location": "San Francisco"}}'
AWS地形
# Search AWS provider documentation
curl -X POST http://localhost:8000/api/execute \
-H "Content-Type: application/json" \
-d '{"tool_name": "SearchAwsProviderDocs", "parameters": {"asset_name": "aws_ec2_instance"}}'
🐛 故障排除
常见问题
-
缺少的依赖:
pip install fastapi uvicorn langchain-mcp-adapters -
AWS Terraform服务器不可用:
- 安装uvx:
pip install uvx - 确保下载服务器的互联网连接
- 安装uvx:
-
缺少测试服务器:
- 应用程序将在没有测试服务器的情况下工作
- 仅AWS Terraform工具可用
-
端口已在使用中:
- 更改端口
uvicorn.run()呼叫 - 或者使用端口8000终止进程
- 更改端口
调试模式
要启用调试日志记录,请修改服务器配置:
"env": {
"FASTMCP_LOG_LEVEL": "DEBUG"
}
🔒 安全考虑
- 应用程序运行在
0.0.0.0:8000默认情况下(可从任何网络接口访问) - 对于生产使用,请考虑:
- 将主机限制为
127.0.0.1仅适用于本地主机 - 添加身份验证和授权
- 使用带有正确SSL证书的HTTPS
- 实施速率限制
- 将主机限制为
📄 许可证
本项目按原样提供,用于教育和测试目的。请确保您遵守所有依赖项和使用的MCP服务器的许可证。
🤝 贡献
欢迎投稿!需要改进的地方:
- 其他MCP服务器集成
- 增强的错误处理
- 更好的UI/UX设计
- 文档改进
- 测试覆盖率
📞 支持
关于以下问题:
测试愉快! �
