返回市场
MCP服务器鸭库

MCP服务器鸭库

作者:ktanaka101171 星标更新:2025-05-05

项目介绍

mcp-server-duckdb

PyPI - 版本 PyPI - 许可证 smithery 徽章

这是一个针对DuckDB的模型上下文协议(MCP)服务器实现,通过MCP工具提供数据库交互功能。让大型语言模型(LLM)分析它会很有趣。DuckDB适合本地分析。

<a href="https://glama.ai/mcp/servers/fwggl49w22"><img width="380" height="200" src="https://gips3.baidu.com/it/u=483188660,4248207115&fm=3081&app=3081&f=PNG?w=760&h=400" alt="mcp-server-duckdb MCP服务器" /></a>

概述

此服务器通过模型上下文协议与DuckDB数据库进行交互,允许执行数据库操作如查询、表创建和模式检查。

组件

资源

目前没有实现自定义资源。

提示

目前没有实现自定义提示。

工具

服务器实现了以下数据库交互工具:

  • query: 在DuckDB数据库上执行任何SQL查询
    • 输入: query (字符串) - 任何有效的DuckDB SQL语句
    • 输出: 查询结果作为文本(或对于CREATE/INSERT等操作的成功消息)

[!NOTE] 服务器提供了一个统一的query函数,而不是单独的专业化函数,因为现代大型语言模型(LLM)可以生成适用于任何数据库操作(如SELECT、CREATE TABLE、JOIN等)的适当SQL,而无需单独的端点。

[!NOTE] 当服务器以readonly模式运行时,会强制执行DuckDB的原生只读保护。 这确保了语言模型(LLM)不能执行任何写入操作(如CREATE、INSERT、UPDATE、DELETE),从而维护数据完整性并防止意外更改。

配置

必需参数

  • db-path (字符串): 到DuckDB数据库文件的路径
    • 如果不存在,服务器将自动创建数据库文件及其父目录
    • 如果指定了--readonly且数据库文件不存在,则服务器将以错误启动失败

可选参数

  • --readonly: 以只读模式运行服务器(默认:false
    • 描述: 设置此标志时,服务器将以只读模式运行。这意味着:
      • DuckDB数据库将以read_only=True打开,阻止任何写入操作。
      • 如果指定的数据库文件不存在,则不会创建。
      • 安全优势: 阻止语言模型(LLM)执行任何写入操作,确保数据库保持不变。
    • 参考: 更多关于DuckDB只读连接的详细信息,请参阅DuckDB Python API文档
  • --keep-connection: 整个服务器生命周期内重用单个DuckDB连接(默认:false
    • 描述: 设置此标志时,整个服务器生命周期内重用单个DuckDB连接。这使TEMP对象可用,并略微加快查询速度,但可能会对文件持有独占锁。

安装

通过Smithery安装

要通过Smithery自动安装DuckDB服务器用于Claude桌面:

npx -y @smithery/cli install mcp-server-duckdb --client claude

Claude桌面集成

在Claude桌面的配置文件中配置MCP服务器:

MacOS

位置: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows

位置: %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
  • DuckDB Python包
  • MCP服务器依赖项

调试

由于MCP服务器基于标准I/O通信,调试可能具有挑战性。我们建议使用MCP Inspector获得最佳调试体验。

使用MCP Inspector

  1. 使用npm安装检查器:
npx @modelcontextprotocol/inspector uv --directory ~/codes/mcp-server-duckdb run mcp-server-duckdb --db-path ~/mcp-server-duckdb/data/data.db
  1. 打开提供的URL以访问调试界面

检查器提供了以下可见性:

  • 请求/响应通信
  • 工具执行
  • 服务器状态
  • 错误消息