Token导航 LogoToken导航TokenDH.com
Nlp SQL Bedrock MCP Fastapi logo
数据服务stdio官方级别未说明来源级核验

Nlp SQL Bedrock MCP Fastapi

MCP Server

一个基于AWS Bedrock和FastAPI的MySQL自然语言处理服务器,支持将自然语言问题转换为SQL查询,适用于数据库查询自动化和AI工具集成。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
自然语言处理数据分析PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

shreya-poojary

提供方

shreya-poojary

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

MySQL 自然语言处理(NLP)机器学习(MCP,此处假设为Machine Learning Classifier的缩写,但具体含义可能根据上下文有所不同)服务器

一个基于AWS Bedrock和FastAPI的全面自然语言处理服务器,专为MySQL数据库设计,全面支持MCP(模型上下文协议)。

特点/特性

  • 自然语言转SQL使用AWS Bedrock Converse API(通过Amazon Nova Pro或Claude 3.5 Sonnet)将自然语言问题转换为SQL查询
  • MCP协议支持人工智能工具集成的完整模型上下文协议实现
  • FastAPI REST API传统的REST API端点,用于直接集成
  • 终端接口用于直接终端使用的交互式和命令行界面
  • 安全仅读取模式执行SQL,具备输入验证和SQL注入防护
  • 模式感知自动检测数据库模式以优化SQL生成
  • 共享架构代码整洁、可维护,且共享实用工具
  • 已准备好投入生产经过全面测试和优化,已准备好投入生产部署

建筑

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Client App    │    │   MCP Client    │    │   REST Client   │
└─────────┬───────┘    └─────────┬───────┘    └─────────┬───────┘
          │                      │                      │
          └──────────────────────┼──────────────────────┘
                                 │
                    ┌─────────────▼─────────────┐
                    │    MySQL NLP Server       │
                    │  ┌─────────────────────┐  │
                    │  │   MCP Server        │  │
                    │  │   (mcp_server.py)   │  │
                    │  └─────────────────────┘  │
                    │  ┌─────────────────────┐  │
                    │  │   FastAPI Server    │  │
                    │  │   (app/main.py)     │  │
                    │  └─────────────────────┘  │
                    │  ┌─────────────────────┐  │
                    │  │  Shared Utilities   │  │
                    │  │ (app/shared_utils)  │  │
                    │  └─────────────────────┘  │
                    └─────────────┬─────────────┘
                                  │
                    ┌─────────────▼─────────────┐
                    │   AWS Bedrock Converse    │
                    │ (Nova Pro / Claude 3.5)   │
                    └─────────────┬─────────────┘
                                  │
                    ┌─────────────▼─────────────┐
                    │     MySQL RDS            │
                    └───────────────────────────┘

快速入门

先决条件

  • Python 3.8及以上版本
  • MySQL数据库(本地或AWS RDS)
  • 拥有Bedrock访问权限的AWS账户
  • Git(注:Git是一个分布式版本控制系统,用于跟踪对文件的修改)

安装

  1. 克隆仓库
   git clone https://github.com/YOUR_USERNAME/mysql-nlp-mcp-server.git
   cd mysql-nlp-mcp-server
  1. 安装依赖项
   pip install -r requirements.txt
  1. 配置环境变量:
   cp .env.example .env

编辑 .env 附上您的身份证明文件:

   # Database Configuration
   DB_HOST=your-rds-endpoint.amazonaws.com
   DB_PORT=3306
   DB_NAME=your_database_name
   DB_USER=your_username
   DB_PASSWORD=your_password

   # AWS Configuration
   AWS_REGION=us-east-1
   BEDROCK_MODEL_ID=anthropic.claude-3-5-sonnet-20240620-v1:0
  1. 配置AWS凭证
   aws configure
   # OR set environment variables:
   export AWS_ACCESS_KEY_ID=your_access_key
   export AWS_SECRET_ACCESS_KEY=your_secret_key
  1. 测试设置:
   python test_mcp_server.py

用法

选项1:终端接口(推荐直接使用)

交互式终端客户端

python terminal_mcp_client.py

命令:

  • ask - 提出自然语言问题
  • sql - 执行原始SQL查询
  • schema - 获取数据库模式
  • generate - 生成SQL而不执行
  • help - 显示所有命令

命令行界面

# Quick commands
python mcp_cli.py ask "Show me all courses"
python mcp_cli.py sql "SELECT * FROM Courses LIMIT 5"
python mcp_cli.py schema
python mcp_cli.py generate "Find students from California"

选项2:MCP服务器(用于AI集成)

python start_mcp_server.py

可用的MCP工具:

  • query_database - 执行自然语言查询
  • execute_sql - 执行原始SQL SELECT查询
  • get_schema - 获取数据库模式信息
  • generate_sql - 从自然语言生成SQL语句而不执行

与Claude桌面版集成

要使用Claude Desktop连接您的MCP服务器,请按照以下步骤操作:

第一步:安装Claude桌面版

从以下链接下载并安装:https://claude.ai/download

步骤2:定位配置文件

找到您的Claude桌面配置文件:

  • Windows%APPDATA%\Claude\claude_desktop_config.json
  • macOS(苹果电脑操作系统)~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

步骤3:添加MCP服务器配置

编辑 claude_desktop_config.json 并添加您的服务器:

{
  "mcpServers": {
    "mysql-nlp": {
      "command": "python",
      "args": [
        "C:/Users/YOUR_USERNAME/path/to/mcp-mysql/mcp_server.py"
      ],
      "env": {
        "DB_HOST": "your-database-host",
        "DB_PORT": "3306",
        "DB_NAME": "your-database-name",
        "DB_USER": "your-username",
        "DB_PASSWORD": "your-password",
        "AWS_REGION": "us-east-1",
        "BEDROCK_MODEL_ID": "amazon.nova-pro-v1:0"
      }
    }
  }
}

重要提示:

  • 使用 绝对路径 到你的 mcp_server.py 文件
  • 使用正斜杠(/)/) 即使在Windows上
  • 将占位符值替换为您的实际凭据
  • 或者,使用 "cwd" 从(指定位置)加载的参数 .env 文件:
{
  "mcpServers": {
    "mysql-nlp": {
      "command": "python",
      "args": ["mcp_server.py"],
      "cwd": "C:/Users/YOUR_USERNAME/path/to/mcp-mysql"
    }
  }
}

步骤4:重启Claude桌面应用

完全退出并重新启动 Claude Desktop 以使更改生效。

第五步:使用工具

在Claude Desktop中:

  1. 寻找🔨(锤子)图标以查看可用工具
  2. 请Claude使用你的数据库工具:

- “使用query_database向我展示所有教授” - “使用 get_schema 获取数据库模式” - “生成SQL语句以查找学生人数超过50人的所有课程”

示例对话:

You: Use the query_database tool to show me all professors

Claude: I'll query the database for all professors.
[Calls query_database tool]

Here are all the professors in your database:
1. Dr. John Doe - john.doe@university.edu (Hired: 2020-01-10)
2. Dr. Jane Williams - jane.williams@university.edu (Hired: 2019-09-05)

故障排除:

  • 如果工具未出现,请检查Claude Desktop中的开发者控制台
  • 确保 Python 已添加到系统的 PATH 中
  • 验证所有凭据是否正确
  • 确认MCP服务器独立运行: python start_mcp_server.py

选项3:FastAPI服务器(REST API)

python start_fastapi_server.py

访问: http://localhost:8000/docs

API终端点:

  • GET / - API信息
  • GET /test-db - 测试数据库连接
  • GET /schema - 获取数据库架构
  • POST /query - 处理自然语言查询
  • POST /sql - 执行原始SQL查询
  • POST /generate-sql - 从自然语言生成SQL

示例用法:

# Natural language query
curl -X POST "http://localhost:8000/query" \
  -H "Content-Type: application/json" \
  -d '{"query": "Show me all users from California"}'

# Raw SQL query
curl -X POST "http://localhost:8000/sql" \
  -H "Content-Type: application/json" \
  -d '{"sql": "SELECT * FROM users WHERE state = \"CA\""}'

配置

环境变量

变量描述默认值
DB_HOSTMySQL 主机地址本地主机
DB_PORTMySQL 端口3306
DB_NAME数据库名称mcpdemo1
DB_USER数据库用户名root
DB_PASSWORD数据库密码密码
AWS_REGIONBedrock 所在的 AWS 区域us-east-1
BEDROCK_MODEL_ID基础模型IDanthropic.claude-3-5-sonnet-20240620-v1:0
API_HOSTFastAPI 主机0.0.0.0
API_PORTFastAPI 端口8000
API_RELOAD启用自动重载true

数据库需求

  • MySQL 5.7或更高版本,或MySQL 8.0或更高版本
  • 对目标数据库的读取访问权限
  • 服务器到数据库的网络连接

AWS 要求

  • 拥有Bedrock访问权限的AWS账户
  • IAM(身份和访问管理)权限用于 bedrock:InvokeModel
  • 已正确配置AWS凭证

安全特性

  • 只读查询仅允许使用SELECT语句
  • SQL注入防护参数化查询和输入验证
  • 模式验证自动模式检测和验证
  • 错误处理全面的错误处理,同时不泄露敏感信息

项目结构

mysql-nlp-mcp-server/
├── app/
│   ├── main.py          # FastAPI server implementation
│   ├── config.py        # Configuration management
│   └── shared_utils.py  # Shared utilities (database + Bedrock)
├── mcp_server.py       # MCP server implementation
├── start_mcp_server.py # MCP server startup script
├── start_fastapi_server.py # FastAPI server startup script
├── terminal_mcp_client.py # Interactive terminal MCP client
├── mcp_cli.py          # Command-line MCP interface
├── test_mcp_server.py  # MCP server testing script
├── test_rds_connection.py # Database connection testing
├── requirements.txt    # Python dependencies
├── .env.example       # Environment variables template
└── README.md          # This file

发展

添加新功能

  1. 对于MCP工具在(此处)添加新的工具定义 mcp_server.py
  2. 对于API终端点添加新路线到 app/main.py
  3. 对于数据库操作扩展函数中的功能 app/shared_utils.py
  4. 对于配置更新 app/config.py 用于新设置

测试

测试数据库连接:

curl http://localhost:8000/test-db

测试自然语言查询:

curl -X POST "http://localhost:8000/query" \
  -H "Content-Type: application/json" \
  -d '{"query": "Show me the first 5 records from any table"}'

测试

测试您的设置

# Test MCP server functionality
python test_mcp_server.py

# Test database connection
python test_rds_connection.py

# Test simple SQL query
python test_simple.py

示例查询

自然语言:

# Interactive mode
python terminal_mcp_client.py
MCP> ask Show me all courses with more than 50 students

# Command line
python mcp_cli.py ask "Find all students from California"

SQL 查询:

# Interactive mode
MCP> sql SELECT * FROM Courses LIMIT 10

# Command line  
python mcp_cli.py sql "SELECT COUNT(*) FROM Students"

故障排除

常见问题

  1. 数据库连接错误

- 检查数据库凭据 .env - 确保可以从服务器访问数据库 - 验证 MySQL 服务是否正在运行

  1. AWS Bedrock 错误:

- 验证AWS凭证是否已配置 - 检查Bedrock的IAM权限 - 确保模型ID正确无误 - 确保您使用的是正确的Claude 3.5 Sonnet模型ID

  1. 导入错误:

- 安装所有依赖项: pip install -r requirements.txt - 检查Python版本兼容性 - 确保所有文件都位于正确的目录结构中

  1. MCP服务器问题:

- 验证MCP服务器能否无错误启动: python mcp_server.py - 检查共享实用程序是否已正确导入 - 确保环境变量已配置

日志

两台服务器都提供了详细的日志记录。请检查控制台输出以获取错误消息和调试信息。

做出贡献

我们欢迎投稿!以下是投稿指南:

  1. 为仓库创建分支
  2. 创建一个特性分支: git checkout -b feature/amazing-feature
  3. 进行你的更改 并测试它们
  4. 提交您的更改: git commit -m 'Add amazing feature'
  5. 推送到分支: git push origin feature/amazing-feature
  6. 提交拉取请求

开发环境设置

# Clone your fork
git clone https://github.com/YOUR_USERNAME/mysql-nlp-mcp-server.git
cd mysql-nlp-mcp-server

# Install dependencies
pip install -r requirements.txt

# Run tests
python test_mcp_server.py

许可证

这个项目遵循MIT许可证授权——详见 许可证 文件中有详细信息。

支持

需要帮助吗?

  1. 📖 查看上面的故障排除部分
  2. 请查看API文档: /docs
  3. 🐛 在仓库中创建一个问题
  4. 💬 开始讨论问题

发现了一个错误吗?

  • 请创建一个问题,并包含以下内容:

- 复现步骤 - 预期行为与实际行为 - 环境详情(操作系统、Python版本等)

给这个仓库点赞/收藏

如果这个项目对您有帮助,请给它点个星吧!

目录标签

目录标签

自然语言处理数据分析PythonClaude本地部署SQL生成数据库查询AI集成MySQL工具

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP