返回市场
MCP-炼金术

MCP-炼金术

作者:runekaagaard363 星标更新:2025-08-15

项目介绍

MCP Alchemy

<a href="https://www.pulsemcp.com/servers/runekaagaard-alchemy"><img src="https://www.pulsemcp.com/badge/top-pick/runekaagaard-alchemy" width="400" alt="PulseMCP 徽章"></a>

状态:运行良好且每日使用中,无已知问题。

状态2:刚刚将包添加到PyPI并更新了使用说明。如有任何问题,请随时报告 :)

让Claude成为你的数据库专家!MCP Alchemy直接连接Claude Desktop到你的数据库,使其能够:

  • 帮助你探索和理解数据库结构
  • 协助编写和验证SQL查询
  • 显示表之间的关系
  • 分析大型数据集并创建报告
  • 使用claude-local-files,Claude Desktop可以分析和生成非常大的数据集的工件。

支持PostgreSQL、MySQL、MariaDB、SQLite、Oracle、MS SQL Server、CrateDB、Vertica, 以及许多其他SQLAlchemy兼容的数据库。

MCP Alchemy 在行动

安装

确保已经安装了uv:

# 如果尚未安装uv,请执行以下命令
curl -LsSf https://astral.sh/uv/install.sh | sh

使用Claude Desktop

在你的claude_desktop_config.json中添加内容。你需要在--with参数中添加适当的数据库驱动程序。

注意:在新版本发布后,可能会有长达600秒的时间,本地缓存清除期间,导致uv抛出版本错误。重新启动MCP客户端即可解决此问题。

SQLite(内置Python)

{
  "mcpServers": {
    "my_sqlite_db": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2025.8.15.91819",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "sqlite:////绝对路径/到/database.db"
      }
    }
  }
}

PostgreSQL

{
  "mcpServers": {
    "my_postgres_db": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2025.8.15.91819", "--with", "psycopg2-binary",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "postgresql://用户:密码@localhost/dbname"
      }
    }
  }
}

MySQL/MariaDB

{
  "mcpServers": {
    "my_mysql_db": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2025.8.15.91819", "--with", "pymysql",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "mysql+pymysql://用户:密码@localhost/dbname"
      }
    }
  }
}

Microsoft SQL Server

{
  "mcpServers": {
    "my_mssql_db": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2025.8.15.91819", "--with", "pymssql",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "mssql+pymssql://用户:密码@localhost/dbname"
      }
    }
  }
}

Oracle

{
  "mcpServers": {
    "my_oracle_db": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2025.8.15.91819", "--with", "oracledb",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "oracle+oracledb://用户:密码@localhost/dbname"
      }
    }
  }
}

CrateDB

{
  "mcpServers": {
    "my_cratedb": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2025.8.15.91819", "--with", "sqlalchemy-cratedb>=0.42.0.dev1",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "crate://用户:密码@localhost:4200/?schema=testdrive"
      }
    }
  }
}

对于连接到CrateDB Cloud,使用类似这样的URL: crate://用户:密码@example.aks1.westeurope.azure.cratedb.net:4200?ssl=true

Vertica

{
  "mcpServers": {
    "my_vertica_db": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2025.8.15.91819", "--with", "vertica-python",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "vertica+vertica_python://用户:密码@localhost:5433/dbname",
        "DB_ENGINE_OPTIONS": "{\"connect_args\": {\"ssl\": false}}"
      }
    }
  }
}

环境变量

  • DB_URL:SQLAlchemy 数据库URL(必需)
  • CLAUDE_LOCAL_FILES_PATH:完整结果集的目录(可选)
  • EXECUTE_QUERY_MAX_CHARS:最大输出长度(可选,默认值为4000)
  • DB_ENGINE_OPTIONS:包含额外SQLAlchemy引擎选项的JSON字符串(可选)

连接池

MCP Alchemy使用优化的连接池,适用于长时间运行的MCP服务器。默认设置如下:

  • pool_pre_ping=True:在使用前测试连接以处理数据库超时和网络问题
  • pool_size=1:维护一个持久连接(MCP服务器通常一次处理一个请求)
  • max_overflow=2:允许最多两个额外连接以应对突发容量需求
  • pool_recycle=3600:刷新超过一小时的连接(防止超时问题)
  • isolation_level='AUTOCOMMIT':确保每个查询自动提交

这些默认设置对大多数数据库都适用,但你可以通过DB_ENGINE_OPTIONS覆盖它们:

{
  "DB_ENGINE_OPTIONS": "{\"pool_size\": 5, \"max_overflow\": 10, \"pool_recycle\": 1800}"
}

对于具有激进超时设置的数据库(如MySQL的默认8小时),pool_pre_pingpool_recycle的组合确保了可靠的连接。

API

工具

  • all_table_names

    • 返回数据库中的所有表名
    • 不需要输入
    • 返回逗号分隔的表名列表
    users, orders, products, categories
    
  • filter_table_names

    • 查找匹配子串的表
    • 输入:q(字符串)
    • 返回匹配的表名
    输入:"user"
    返回:"users, user_roles, user_permissions"
    
  • schema_definitions

    • 获取指定表的详细模式
    • 输入:table_names(字符串数组)
    • 返回表定义,包括:
      • 列名和类型
      • 主键
      • 外键关系
      • 是否为空
    users:
        id: INTEGER, 主键, 自增
        email: VARCHAR(255), 可为空
        created_at: DATETIME
        
        关系:
          id -> orders.user_id
    
  • execute_query

    • 执行SQL查询,并以垂直输出格式返回结果
    • 输入:
      • query(字符串):SQL查询
      • params(对象,可选):查询参数
    • 返回整洁的垂直格式结果:
    1. 行
    id: 123
    name: John Doe
    created_at: 2024-03-15T14:30:00
    email: NULL
    
    结果:1 行
    
    • 特性:
      • 智能截断大结果集
      • 通过claude-local-files集成访问完整结果集
      • 清晰显示NULL值
      • ISO格式日期
      • 清晰的行分隔

Claude Local Files

当配置了claude-local-files

  • 访问超出Claude上下文窗口的完整结果集
  • 生成详细的报告和可视化
  • 对大型数据集进行深入分析
  • 导出结果以供进一步处理

当设置了CLAUDE_LOCAL_FILES_PATH时,集成会自动激活。

开发

首先克隆GitHub仓库,安装依赖项和你选择的数据库驱动程序:

git clone git@github.com:runekaagaard/mcp-alchemy.git
cd mcp-alchemy
uv sync
uv pip install psycopg2-binary

然后在claude_desktop_config.json中设置以下内容:

...
"command": "uv",
"args": ["run", "--directory", "/路径/到/mcp-alchemy", "-m", "mcp_alchemy.server", "main"],
...

我的其他LLM项目

MCP 目录列表

MCP Alchemy 列入以下MCP目录站点和存储库:

贡献

欢迎贡献!无论是错误报告、功能请求、文档改进还是代码贡献——所有输入都是宝贵的。请随意:

  • 打开问题报告错误或提出功能建议
  • 提交包含改进的拉取请求
  • 改进文档或分享你的使用案例
  • 提问并分享你的经验

目标是使与Claude的数据库交互更好,而您的见解和贡献有助于实现这一目标。

许可证

Mozilla Public License Version 2.0