mcpField
M
mcp-mysql-server

mcp-mysql-server

本地服务
github.com/tonycai数据库379 周前更新

关于 mcp-mysql-server

这是一个基于 Python 和 FastMCP 的服务,通过 stdio 查询和检查本地 MySQL 数据库。它支持可配置的连接参数、结构发现、SQL 查询和插入行,面向本地开发工作流。

主要功能

  1. 01测试数据库连接
  2. 02列出表并查看结构
  3. 03读取表数据
  4. 04向表中插入行
  5. 05执行自定义 SQL

适用场景

  1. 01开发时检查本地 MySQL 结构
  2. 02通过 MCP 工具读取或插入记录
  3. 03通过 stdio 自动执行数据库任务

MCP 相关

通过 stdio 向 MCP 客户端提供 MySQL 连接测试、表与结构查看、数据读取和写入以及 SQL 执行工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-mysql-server

一个基于 FastMCP、通过标准输入/输出(stdio)与本地 MySQL 数据库交互的简单 Python 脚本。

概述

mcp-mysql-server 提供命令行界面,用于查询本地 MySQL 数据库并检查其架构。它专为本地开发环境设计,适合偏好轻量级脚本交互的场景。该脚本使用标准输入和输出传递命令与结果,便于与其他命令行工具和工作流集成。

功能

  • 执行查询: 执行 SQL SELECT 语句,并以简单易读的格式查看结果。
  • 数据操作: 使用 write_table 工具向表中插入数据。
  • 架构检查: 获取数据库架构信息,包括:
    • 使用 list_tables 工具列出所有表。
    • 使用 get_table_schema 获取指定表的列及其数据类型。
  • 连接测试: 测试数据库连接并获取服务器信息。
  • 可配置的访问控制: 通过配置定义连接参数(主机、用户、密码、数据库),以安全地访问数据库。
  • stdio 接口: 使用标准输入向脚本传递命令,并通过标准输出接收结果,便于编写脚本和实现自动化。
  • 专注本地部署: 针对本地开发环境中的使用进行了优化。

开始使用

先决条件
  • 系统已安装 Python 3.x。
  • 本地 MySQL 服务器实例正在运行。
  • 所需的 Python 库(使用 requirements.txt 文件安装):
    pip install -r requirements.txt
    
安装
  1. 将仓库下载或克隆到本地计算机。
配置
  1. 在脚本所在目录创建配置文件(例如 config.ini),或在运行脚本时指定文件路径。配置文件格式如下:

    [mysql]
    host = localhost
    port = 3306  # Optional, defaults to 3306
    user = your_mysql_user
    password = your_mysql_password
    database = your_database_name
    

    注意: 请确保指定的 MySQL 用户拥有执行所需操作的必要权限。

用法

运行以下命令,并指定配置文件的路径:

python mcp-mysql-server.py --config config.ini

该脚本提供以下工具,可用于与 MySQL 数据库交互:

  • test_connection:测试数据库连接并返回服务器信息。
  • list_tables:列出当前数据库中的所有表。
  • read_table:读取并返回指定表中的所有数据。
  • write_table:向指定表中插入一行新数据。
  • get_table_schema:返回指定表的架构(列定义)。
  • execute_sql:执行自定义 SQL 查询并返回结果。

项目结构

  • mcp-mysql-server.py:包含 MySQL MCP 服务实现的主脚本
  • config.ini:MySQL 连接参数配置文件
  • requirements.txt:Python 依赖项列表
  • changes.log:项目变更日志

Docker 支持

本项目可通过 Docker Compose 在 Docker 容器中运行。此配置包括:

  1. 一个包含示例数据的 MySQL 容器
  2. MCP MySQL 服务容器
使用 Docker 运行
  1. 确保系统已安装 Docker 和 Docker Compose。
  2. 克隆此仓库。
  3. 在仓库根目录运行:
docker-compose up -d

此操作将:

  • 启动一个包含示例数据(users 和 posts 表)的 MySQL 服务器
  • 启动连接到 MySQL 数据库的 MCP MySQL 服务
Docker 配置

在 Docker 中运行时会使用专用配置文件(config.docker.ini),该文件指向 MySQL 容器。

测试

我们提供了单元测试,以确保功能正常运行。测试使用模拟,避免需要实际的数据库连接。

在本地运行测试
# Make a copy of the main script with underscore naming
cp mcp-mysql-server.py mcp_mysql_server.py

# Run the tests
python -m unittest tests.py
使用 Docker 运行测试
docker-compose -f docker-compose.test.yml up --build

这将构建测试容器,并在其中运行单元测试。

开发

如果开发者希望扩展此工具,可以通过创建其他 MCP 工具来添加新功能。每个工具都是一个使用 @mcp.tool() 装饰的 Python 函数,用于处理特定的数据库操作。

添加新工具的示例:

@mcp.tool()
def my_new_tool(param1: str, param2: int) -> dict:
    """
    Documentation for the new tool.
    """
    connection = create_mysql_connection()
    cursor = connection.cursor()
    try:
        # Your tool implementation here
        return {"result": "success"}
    finally:
        cursor.close()
        connection.close()

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。