mcpField
M
MCP Alchemy

MCP Alchemy

本地服务
github.com/runekaagaard数据库4222 周前更新

关于 MCP Alchemy

MCP Alchemy 让 AI 客户端访问兼容 SQLAlchemy 的关系数据库,用于探索结构、执行 SQL 和分析数据。它支持多种数据库系统,并提供 stdio 与 HTTP 传输方式。

主要功能

  1. 01列出和筛选数据库表
  2. 02检查列信息及表关系
  3. 03执行带可选参数的 SQL
  4. 04格式化并截断查询结果
  5. 05通过 claude-local-files 访问完整结果

适用场景

  1. 01探索陌生数据库的结构
  2. 02编写并验证 SQL 查询
  3. 03分析查询结果并制作报告
  4. 04处理超出上下文窗口的结果集

MCP 相关

MCP Alchemy 将数据库表发现、结构详情和查询执行作为工具提供给 MCP 客户端。它支持 stdio、streamable HTTP 和旧版 SSE 传输。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

MCP Alchemy

PulseMCP 徽章

状态:积极维护并每天使用。经过测试的版本会通过 git 标签发布到 PyPI,并定期处理问题和拉取请求。

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

  • 帮助你探索并了解数据库结构
  • 协助编写和验证 SQL 查询
  • 显示表之间的关系
  • 分析大型数据集并生成报告
  • Claude Desktop 可以借助 claude-local-files 分析超大型数据集并创建制品。

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

MCP Alchemy 实际运行效果

安装

确保已安装 uv:

# Install uv if you haven't already
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==2026.10.15.202659",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "sqlite:////absolute/path/to/database.db"
      }
    }
  }
}
PostgreSQL
{
  "mcpServers": {
    "my_postgres_db": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2026.10.15.202659", "--with", "psycopg2-binary",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "postgresql://user:password@localhost/dbname"
      }
    }
  }
}
MySQL/MariaDB
{
  "mcpServers": {
    "my_mysql_db": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2026.10.15.202659", "--with", "pymysql",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "mysql+pymysql://user:password@localhost/dbname"
      }
    }
  }
}
Microsoft SQL Server
{
  "mcpServers": {
    "my_mssql_db": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2026.10.15.202659", "--with", "pymssql",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "mssql+pymssql://user:password@localhost/dbname"
      }
    }
  }
}
Oracle
{
  "mcpServers": {
    "my_oracle_db": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2026.10.15.202659", "--with", "oracledb",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "oracle+oracledb://user:password@localhost/dbname"
      }
    }
  }
}
CrateDB
{
  "mcpServers": {
    "my_cratedb": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2026.10.15.202659", "--with", "sqlalchemy-cratedb>=0.42.0.dev1",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "crate://user:password@localhost:4200/?schema=testdrive"
      }
    }
  }
}

连接到 CrateDB Cloud 时,请使用类似这样的 URL: crate://user:[email protected]:4200?ssl=true。

Vertica
{
  "mcpServers": {
    "my_vertica_db": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2026.10.15.202659", "--with", "vertica-python",
               "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "vertica+vertica_python://user:password@localhost:5433/dbname",
        "DB_ENGINE_OPTIONS": "{\"connect_args\": {\"ssl\": false}}"
      }
    }
  }
}
Docker

GitHub Container Registry 上发布了一个容器镜像,预装了常用数据库驱动程序 (PostgreSQL、MySQL/MariaDB、MS SQL Server、Oracle):

{
  "mcpServers": {
    "my_db": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "DB_URL",
               "ghcr.io/runekaagaard/mcp-alchemy:latest"],
      "env": {
        "DB_URL": "postgresql://user:[email protected]/dbname"
      }
    }
  }
}

或者使用 docker build -t ghcr.io/runekaagaard/mcp-alchemy . 自行构建。

传输方式

默认情况下,服务通过标准输入输出进行通信。它也可以通过 HTTP 提供服务,以供通过这种方式连接的客户端使用:

# Recommended HTTP transport (serves on http://HOST:PORT/mcp)
mcp-alchemy --transport streamable-http --host 127.0.0.1 --port 7000

# Legacy SSE transport, for older clients (serves on http://HOST:PORT/sse)
mcp-alchemy --transport sse --host 127.0.0.1 --port 7000

环境变量

  • 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:保持 1 个持久连接(MCP 服务通常一次处理一个请求)
  • max_overflow=2:允许最多额外使用 2 个连接,以应对突发负载
  • pool_recycle=3600:刷新已使用超过 1 小时的连接(防止超时问题)
  • isolation_level='AUTOCOMMIT':确保每个查询都会自动提交

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

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

对于超时设置较严格的数据库(例如 MySQL 默认的 8 小时超时),结合使用 pool_pre_ping 和 pool_recycle 可确保连接可靠。

API

工具
  • all_table_names

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

    • 查找名称中包含指定子字符串的表
    • 输入:q (string)
    • 返回匹配的表名
    Input: "user"
    Returns: "users, user_roles, user_permissions"
    
  • schema_definitions

    • 获取指定表的详细架构
    • 输入:table_names (string[])
    • 返回表定义,包括:
      • 列名和类型
      • 主键
      • 外键关系
      • 可空标志
    users:
        id: INTEGER, primary key, autoincrement
        email: VARCHAR(255), nullable
        created_at: DATETIME
        
        Relationships:
          id -> orders.user_id
    
  • execute_query

    • 以纵向输出格式执行 SQL 查询
    • 输入:
      • query (string):SQL 查询
      • params (object, optional):查询参数
    • 以简洁的纵向格式返回结果:
    1. row
    id: 123
    name: John Doe
    created_at: 2024-03-15T14:30:00
    email: NULL
    
    Result: 1 rows
    
    • 特性:
      • 智能截断大型结果
      • 通过 claude-local-files 集成访问完整结果集
      • 清晰显示 NULL 值
      • 日期采用 ISO 格式
      • 清晰分隔各行

Claude Local Files

配置 claude-local-files 后:

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

设置 CLAUDE_LOCAL_FILES_PATH 后,集成会自动启用。

开发

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

git clone [email protected]:runekaagaard/mcp-alchemy.git
cd mcp-alchemy
uv sync
uv pip install psycopg2-binary

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

...
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-alchemy", "-m", "mcp_alchemy.server", "main"],
...

我的其他 LLM 项目

  • MCP Redmine - 让 Claude Desktop 管理你的 Redmine 项目和问题。
  • MCP Notmuch Sendmail - 使用 notmuch 的 Claude Desktop 邮件助手。
  • MCP Show-on-Kindle - 将文件复制到运行 KOReader 的 Kindle 上,并在屏幕上打开。
  • Diffpilot - 支持文件分组和标记的多列 git 差异查看器。
  • Claude Local Files - 在 Claude Desktop 制品中访问本地文件。

MCP 目录收录

MCP Alchemy 已收录于以下 MCP 目录网站和仓库:

贡献

欢迎大家踊跃贡献!无论是错误报告、功能请求、文档改进还是代码贡献,所有反馈都很有价值。欢迎你:

  • 提交 issue 报告错误或提出功能建议
  • 提交改进内容的拉取请求
  • 改进文档或分享使用示例
  • 提问并分享你的体验

我们的目标是进一步改善 Claude 的数据库交互体验,你的见解和贡献将有助于实现这一目标。

许可证

Mozilla Public License Version 2.0

评论

支持 Markdown

第一次接触 MCP?

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

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