mcp-server-duckdb

mcp-server-duckdb

一个为 DuckDB 实现的 Model Context Protocol (MCP) 服务器,通过 MCP 工具提供数据库交互能力。让 LLM 分析它会很有意思。DuckDB 适合本地分析。

数据库交互
AI集成系统
数据与应用分析
访问服务器

Tools

read-query

Execute a SELECT query on the DuckDB database

list-tables

List all tables in the DuckDB database

describe-table

Get the schema information for a specific table

write-query

Execute an INSERT, UPDATE, or DELETE query on the DuckDB database

create-table

Create a new table in the DuckDB database

README

mcp-server-duckdb

PyPI - Version PyPI - License smithery badge

一个用于 DuckDB 的模型上下文协议 (MCP) 服务器实现,通过 MCP 工具提供数据库交互功能。 如果能让 LLM 分析它会很有趣。 DuckDB 适用于本地分析。

<a href="https://glama.ai/mcp/servers/fwggl49w22"><img width="380" height="200" src="https://glama.ai/mcp/servers/fwggl49w22/badge" alt="mcp-server-duckdb MCP server" /></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: 以只读模式运行服务器
    • 描述: 设置此标志后,服务器以只读模式运行。 这意味着:
      • DuckDB 数据库将以 read_only=True 打开,从而阻止任何写入操作。
      • 如果指定的数据库文件不存在,则不会创建它。
      • 安全优势: 阻止语言模型 (LLM) 执行任何写入操作,确保数据库保持不变。
    • 参考: 有关 DuckDB 中只读连接的更多详细信息,请参阅 DuckDB Python API 文档

安装

通过 Smithery 安装

要通过 Smithery 为 Claude Desktop 自动安装 DuckDB Server:

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

Claude Desktop 集成

在 Claude Desktop 的配置文件中配置 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 服务器基于 stdio 进行通信,因此调试它们可能具有挑战性。 我们建议使用 MCP Inspector 以获得最佳调试体验。

使用 MCP Inspector

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

inspector 提供以下方面的可见性:

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

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Neon MCP Server

Neon MCP Server

MCP server for interacting with Neon Management API and databases

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
AIO-MCP Server

AIO-MCP Server

🚀 All-in-one MCP server with AI search, RAG, and multi-service integrations (GitLab/Jira/Confluence/YouTube) for AI-enhanced development workflows. Folk from

精选
本地
Knowledge Graph Memory Server

Knowledge Graph Memory Server

为 Claude 实现持久性记忆,使用本地知识图谱,允许 AI 记住用户的信息,并可在自定义位置存储,跨对话保持记忆。

精选
本地
Hyperbrowser

Hyperbrowser

欢迎来到 Hyperbrowser,人工智能的互联网。Hyperbrowser 是下一代平台,旨在增强人工智能代理的能力,并实现轻松、可扩展的浏览器自动化。它专为人工智能开发者打造,消除了本地基础设施和性能瓶颈带来的麻烦,让您能够:

精选
本地
https://github.com/Streen9/react-mcp

https://github.com/Streen9/react-mcp

react-mcp 与 Claude Desktop 集成,能够根据用户提示创建和修改 React 应用程序。

精选
本地
MCP Atlassian

MCP Atlassian

适用于 Atlassian Cloud 产品(Confluence 和 Jira)的 Model Context Protocol (MCP) 服务器。此集成专为 Atlassian Cloud 实例设计,不支持 Atlassian Server 或 Data Center 部署。

精选