MCP工具Web演示

一个用于测试模型上下文协议(MCP)工具的综合性Web界面,包括数学运算、时间功能、天气API和AWS Terraform基础设施管理。

  • by 20020250-vnu-edu-vn
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 20020250-vnu-edu-vn/MCP_SERVER

使用说明

使用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+:运行应用程序所需

🛠️ 安装

  1. 克隆或下载应用程序:

    # Save the script as mcp_web_demo.py
    
  2. 安装依赖项:

    pip install fastapi uvicorn langchain-mcp-adapters
    
  3. 设置测试服务器 (可选): 创建一个 tests/servers/ 包含以下测试服务器的目录:

    • math_server.py:数学运算
    • time_server.py:时间函数
    • weather_server.py:天气API
  4. 安装AWS Terraform MCP服务器 (可选):

    # Install uvx if not already installed
    pip install uvx
    

🚀 用法

启动服务器

python mcp_web_demo.py

网络界面将在以下网址提供: http://localhost:8000

使用Web界面

  1. 浏览可用工具:查看按类型分类的所有可用MCP工具
  2. 筛选工具:使用搜索框查找特定工具
  3. 选择工具:单击任何工具查看其详细信息和参数
  4. 设置参数:填写所选工具的所需参数
  5. 执行:点击“执行工具”运行工具并查看结果
  6. 快速测试:使用预先配置的示例进行常见操作

工具类别

类别 描述 示例工具
🧮 数学 基本算术运算 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"}}'

🐛 故障排除

常见问题

  1. 缺少的依赖:

    pip install fastapi uvicorn langchain-mcp-adapters
    
  2. AWS Terraform服务器不可用:

    • 安装uvx: pip install uvx
    • 确保下载服务器的互联网连接
  3. 缺少测试服务器:

    • 应用程序将在没有测试服务器的情况下工作
    • 仅AWS Terraform工具可用
  4. 端口已在使用中:

    • 更改端口 uvicorn.run() 呼叫
    • 或者使用端口8000终止进程

调试模式

要启用调试日志记录,请修改服务器配置:

"env": {
    "FASTMCP_LOG_LEVEL": "DEBUG"
}

🔒 安全考虑

  • 应用程序运行在 0.0.0.0:8000 默认情况下(可从任何网络接口访问)
  • 对于生产使用,请考虑:
    • 将主机限制为 127.0.0.1 仅适用于本地主机
    • 添加身份验证和授权
    • 使用带有正确SSL证书的HTTPS
    • 实施速率限制

📄 许可证

本项目按原样提供,用于教育和测试目的。请确保您遵守所有依赖项和使用的MCP服务器的许可证。

🤝 贡献

欢迎投稿!需要改进的地方:

  • 其他MCP服务器集成
  • 增强的错误处理
  • 更好的UI/UX设计
  • 文档改进
  • 测试覆盖率

📞 支持

关于以下问题:


测试愉快! �