mcp-alchemy
mcp-alchemy:让AI模型直接访问数据库的MCP服务器工具,支持多种数据库,助力AI数据分析。

mcp-alchemy 解决方案概述
MCP Alchemy 是一款强大的 MCP 服务器,旨在让 AI 模型(特别是 Claude Desktop)能够直接与关系型数据库交互。它允许 AI 模型探索数据库结构、编写和验证 SQL 查询、分析大型数据集并生成报告。通过支持 PostgreSQL、MySQL、SQLite 等多种数据库,MCP Alchemy 充当了 AI 模型与数据库之间的桥梁。
其核心功能包括检索表名、过滤表名、获取详细的模式定义以及执行 SQL 查询。通过 claude-local-files
集成,它还能处理大型结果集,突破 Claude 的上下文窗口限制。开发者可以通过简单的配置将其集成到 Claude Desktop 中,并利用环境变量灵活地管理数据库连接。MCP Alchemy 极大地简化了 AI 模型访问和理解数据库的过程,为数据分析和报告生成提供了强大的支持。
mcp-alchemy 核心能力
数据库结构智能探索
mcp-alchemy 允许 Claude 直接探索和理解数据库结构,无需手动编写复杂的查询语句。通过 all_table_names
和 filter_table_names
API,Claude 可以快速获取数据库中的所有表名,并根据关键词筛选出相关的表。更进一步,schema_definitions
API 能够提供指定表的详细模式信息,包括列名、数据类型、主键、外键关系以及是否允许为空等。这些信息以清晰易懂的格式呈现,帮助 Claude 理解数据库的整体结构和表之间的关系,从而更好地进行后续的数据分析和查询。
例如,用户可以向 Claude 提问:“数据库中有哪些与用户相关的表?” Claude 可以使用 filter_table_names
API 查找包含 "user" 关键词的表,然后使用 schema_definitions
API 获取这些表的详细模式信息,最终向用户展示 "users", "user_roles", "user_permissions" 等表及其详细结构。这极大地简化了数据库探索的过程,提高了效率。
SQL查询辅助与执行
mcp-alchemy 简化了 SQL 查询的编写和验证过程。开发者可以使用 Claude 生成 SQL 查询语句,然后通过 execute_query
API 在数据库中执行这些查询。该 API 支持传入 SQL 查询语句和可选的查询参数,并以清晰的垂直格式返回结果,方便 Claude 理解和处理。为了处理大型结果集,mcp-alchemy 具备智能截断功能,并集成了 claude-local-files
,允许 Claude 访问完整的查询结果,突破了上下文窗口的限制。此外,该 API 还能清晰地显示 NULL 值,并以 ISO 格式化日期,提高了结果的可读性。
例如,开发者可以使用 Claude 生成一个查询语句,用于获取所有用户的姓名和邮箱地址。Claude 可以使用 execute_query
API 执行该查询,并将结果以垂直格式返回,例如:
1. row
id: 123
name: John Doe
created_at: 2024-03-15T14:30:00
email: NULL
Result: 1 rows
如果结果集很大,Claude 可以使用 claude-local-files
访问完整的查询结果,并进行进一步的分析和处理。
Claude Local Files集成
mcp-alchemy 通过与 claude-local-files
的集成,显著增强了 Claude 处理大型数据集的能力。当配置了 CLAUDE_LOCAL_FILES_PATH
环境变量后,mcp-alchemy 会自动激活该集成。这意味着 Claude 可以访问完整的查询结果,而不仅仅是上下文窗口内的部分数据。这使得 Claude 能够生成更详细的报告和可视化,对大型数据集进行深入分析,并将结果导出以供进一步处理。
例如,如果一个 SQL 查询返回了数千行数据,而 Claude 的上下文窗口只能容纳几百行,那么通过 claude-local-files
集成,Claude 仍然可以访问所有的数据,并生成一份完整的报告,分析数据的分布情况,或者找出其中的异常值。这极大地扩展了 Claude 的数据分析能力,使其能够处理更复杂、更大型的任务。
技术实现
mcp-alchemy 基于 Python 构建,并使用 SQLAlchemy 作为数据库抽象层。这使得它能够支持多种关系型数据库,包括 PostgreSQL、MySQL、MariaDB、SQLite、Oracle 和 MS SQL Server 等。通过 SQLAlchemy,mcp-alchemy 可以屏蔽不同数据库之间的差异,提供统一的 API 接口,简化了开发过程。此外,mcp-alchemy 使用 uv
作为运行环境,保证了性能和稳定性。