这是一个为 DuckDB 实现的模型上下文协议(MCP)服务器,通过 MCP 工具提供数据库交互功能。让 LLM 分析它会很有趣。DuckDB 适合本地分析。
该服务器通过模型上下文协议与 DuckDB 数据库进行交互,允许执行查询、创建表和检查模式等数据库操作。
目前没有实现自定义资源。
目前没有实现自定义提示。
服务器实现了以下数据库交互工具:
query
(字符串)- 任何有效的 DuckDB SQL 语句[!NOTE]
服务器提供了一个统一的query
函数,而不是单独的专业函数,因为现代 LLM 可以为任何数据库操作(SELECT、CREATE TABLE、JOIN 等)生成适当的 SQL,而无需单独的端点。
[!NOTE]
当服务器在readonly
模式下运行时,DuckDB 的原生只读保护将被强制执行。这确保了语言模型(LLM)无法执行任何写操作(CREATE、INSERT、UPDATE、DELETE),从而保持数据完整性并防止意外更改。
--readonly
且数据库文件不存在,服务器将无法启动并报错false
)
read_only=True
打开,防止任何写操作。false
)
要通过 Smithery 自动为 Claude Desktop 安装 DuckDB Server:
npx -y @smithery/cli install mcp-server-duckdb --client claude
在 Claude Desktop 的配置文件中配置 MCP 服务器:
位置:~/Library/Application Support/Claude/claude_desktop_config.json
位置:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"duckdb": {
"command": "uvx",
"args": [
"mcp-server-duckdb",
"--db-path",
"~/mcp-server-duckdb/data/data.db"
]
}
}
}

~/mcp-server-duckdb/data/data.db
应替换为 DuckDB 数据库文件的实际路径。uv
包管理器的 Python由于 MCP 服务器基于 stdio 通信,调试可能会很困难。我们建议使用 MCP Inspector 以获得最佳的调试体验。
npx @modelcontextprotocol/inspector uv --directory ~/codes/mcp-server-duckdb run mcp-server-duckdb --db-path ~/mcp-server-duckdb/data/data.db
检查器提供以下内容的可见性: