mcp-server-motherduck
OfficialMCP-сервер DuckDB от MotherDuck
Реализация сервера MCP, взаимодействующая с базами данных DuckDB и MotherDuck, предоставляющая возможности аналитики SQL для помощников ИИ и IDE.
Ресурсы
Замкните цикл: более быстрые конвейеры данных с MCP, DuckDB и ИИ (запись в блоге)
Более быстрая разработка конвейеров данных с помощью MCP и DuckDB (YouTube)
Related MCP server: MotherDuck DuckDB MCP Server
Функции
Гибридное выполнение : запрос данных из локальной базы данных DuckDB и/или облачной базы данных MotherDuck
Интеграция с облачным хранилищем : доступ к данным, хранящимся в Amazon S3 или другом облачном хранилище, благодаря интеграции MotherDuck
Обмен данными : создание и обмен базами данных
Аналитика SQL : используйте диалект SQL DuckDB для запроса любого объема данных непосредственно из вашего AI Assistant или IDE
Архитектура без сервера : запуск аналитики без необходимости настройки экземпляров или кластеров
Компоненты
Подсказки
Сервер выдает одну подсказку:
duckdb-motherduck-initial-prompt: приглашение инициализировать соединение с DuckDB или MotherDuck и начать работу с ним
Инструменты
Сервер предлагает один инструмент:
query: выполнение SQL-запроса к базе данных DuckDB или MotherDuckВходные данные :
query(строка, обязательно): SQL-запрос для выполнения
Все взаимодействия с DuckDB и MotherDuck осуществляются посредством написания SQL-запросов.
Начиная
Общие предварительные условия
uvустановлен, вы можете установить его с помощьюpip install uvилиbrew install uv
Если вы планируете использовать MCP с Claude Desktop или любым другим совместимым с MCP клиентом, необходимо установить клиент.
Предварительные условия для DuckDB
Никаких предварительных условий. Сервер MCP может создавать базу данных в памяти на лету
Или подключитесь к существующему локальному файлу базы данных DuckDB или к файлу, хранящемуся в удаленном хранилище объектов (например, AWS S3).
См. раздел Подключение к локальной DuckDB .
Предпосылки для MotherDuck
Зарегистрируйте учетную запись MotherDuck
Сгенерируйте токен доступа через интерфейс MotherDuck
Сохраните токен в безопасном месте для использования в конфигурации.
Использование с курсором
Установите Cursor с cursor.com/downloads, если вы еще этого не сделали.
Открытый курсор:
Чтобы настроить его глобально в первый раз, перейдите в «Настройки» -> «MCP» и нажмите «+ Добавить новый глобальный сервер MCP».
Откроется файл
mcp.json, в который вы добавите следующую конфигурацию:
{
"mcpServers": {
"mcp-server-motherduck": {
"command": "uvx",
"args": [
"mcp-server-motherduck",
"--db-path",
"md:",
"--motherduck-token",
"<YOUR_MOTHERDUCK_TOKEN_HERE>"
]
}
}
}Использование с VS Code
Для максимально быстрой установки нажмите одну из кнопок «Установить с UV» в верхней части файла README.
Ручная установка
Добавьте следующий блок JSON в файл настроек пользователя (JSON) в VS Code. Это можно сделать, нажав Ctrl + Shift + P и введя Preferences: Open User Settings (JSON) .
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "motherduck_token",
"description": "MotherDuck Token",
"password": true
}
],
"servers": {
"motherduck": {
"command": "uvx",
"args": [
"mcp-server-motherduck",
"--db-path",
"md:",
"--motherduck-token",
"${input:motherduck_token}"
]
}
}
}
}При желании вы можете добавить его в файл .vscode/mcp.json в вашем рабочем пространстве. Это позволит вам поделиться конфигурацией с другими.
{
"inputs": [
{
"type": "promptString",
"id": "motherduck_token",
"description": "MotherDuck Token",
"password": true
}
],
"servers": {
"motherduck": {
"command": "uvx",
"args": [
"mcp-server-motherduck",
"--db-path",
"md:",
"--motherduck-token",
"${input:motherduck_token}"
]
}
}
}Использование с Claude Desktop
Установите Claude Desktop с claude.ai/download , если вы еще этого не сделали.
Откройте файл конфигурации Claude Desktop:
Чтобы быстро получить к нему доступ или создать его в первый раз, откройте приложение Claude Desktop, выберите «Настройки» и нажмите вкладку «Разработчик», затем нажмите кнопку «Изменить конфигурацию».
Добавьте следующую конфигурацию в ваш
claude_desktop_config.json:
{
"mcpServers": {
"mcp-server-motherduck": {
"command": "uvx",
"args": [
"mcp-server-motherduck",
"--db-path",
"md:",
"--motherduck-token",
"<YOUR_MOTHERDUCK_TOKEN_HERE>"
]
}
}
}Важные примечания :
Замените
YOUR_MOTHERDUCK_TOKEN_HEREна ваш настоящий токен MotherDuckЗамените
YOUR_HOME_FOLDER_PATHна путь к вашему домашнему каталогу (необходим DuckDB для файловых операций). Например, на macOS это будет/Users/your_usernameДля правильной работы DuckDB необходима переменная среды
HOME.
Обеспечение безопасности вашего сервера MCP при запросе MotherDuck
Если сервер MCP доступен третьим лицам и должен иметь доступ только для чтения данных, мы рекомендуем использовать токен масштабирования для чтения и запустить сервер MCP в режиме SaaS.
Токены масштабирования чтения — это специальные токены доступа, которые позволяют масштабировать операции чтения, допуская до 4 одновременных реплик чтения, повышая производительность для нескольких конечных пользователей, ограничивая возможности записи . Обратитесь к документации по масштабированию чтения, чтобы узнать, как создать токен масштабирования чтения.
Режим SaaS в MotherDuck повышает безопасность, ограничивая доступ к локальным файлам, базам данных, расширениям и конфигурациям, что делает его идеальным для сторонних инструментов, требующих более строгой защиты среды. Узнайте больше об этом в документации по режиму SaaS .
Безопасная конфигурация
{
"mcpServers": {
"mcp-server-motherduck": {
"command": "uvx",
"args": [
"mcp-server-motherduck",
"--db-path",
"md:",
"--motherduck-token",
"<YOUR_READ_SCALING_TOKEN_HERE>",
"--saas-mode"
]
}
}
}Подключиться к локальной DuckDB
Чтобы подключиться к локальной базе данных DuckDB, вместо использования токена MotherDuck укажите путь к локальному файлу базы данных DuckDB или используйте :memory: для базы данных в памяти.
База данных в памяти:
{
"mcpServers": {
"mcp-server-motherduck": {
"command": "uvx",
"args": [
"mcp-server-motherduck",
"--db-path",
":memory:"
]
}
}
}Локальный файл DuckDB:
{
"mcpServers": {
"mcp-server-motherduck": {
"command": "uvx",
"args": [
"mcp-server-motherduck",
"--db-path",
"/path/to/your/local.db"
]
}
}
}Локальный файл DuckDB в режиме только для чтения :
{
"mcpServers": {
"mcp-server-motherduck": {
"command": "uvx",
"args": [
"mcp-server-motherduck",
"--db-path",
"/path/to/your/local.db",
"--read-only"
]
}
}
}Примечание : режим только для чтения для локальных файловых подключений DuckDB также использует кратковременные подключения. Каждый раз, когда используется инструмент запроса MCP, создается временное, кратковременное подключение + выполняется запрос + подключение закрывается. Эта функция была мотивирована рабочим процессом, в котором DBT использовался для моделирования данных в duckdb, а затем клиент MCP (Windsurf/Cline/Claude/Cursor) использовался для исследования базы данных. Кратковременные подключения позволяют каждому инструменту запускаться, а затем отключать свое подключение, позволяя подключиться следующему инструменту.
Примеры запросов
После настройки вы можете, например, попросить Клода выполнить такие запросы:
«Создать новую базу данных и таблицу в MotherDuck»
«Запросить данные из моего локального CSV-файла»
«Объединить данные из моей локальной базы данных DuckDB с таблицей в MotherDuck»
«Анализ данных, хранящихся в Amazon S3»
Тестирование
Сервер предназначен для запуска такими инструментами, как Claude Desktop и Cursor, но вы можете запустить его вручную для тестирования. При ручном тестировании сервера вы можете указать, к какой базе данных подключаться, используя параметр --db-path :
База данных MotherDuck по умолчанию :
Чтобы подключиться к базе данных MotherDuck по умолчанию, вам необходимо передать токен аутентификации с помощью параметра
--motherduck-token.
uvx mcp-server-motherduck --db-path md: --motherduck-token <your_motherduck_token>Конкретная база данных MotherDuck :
uvx mcp-server-motherduck --db-path md:your_database_name --motherduck-token <your_motherduck_token>Локальная база данных DuckDB :
uvx mcp-server-motherduck --db-path /path/to/your/local.dbБаза данных в памяти :
uvx mcp-server-motherduck --db-path :memory:
Если вы не указали путь к базе данных, но установили переменную среды motherduck_token , сервер автоматически подключится к базе данных MotherDuck по умолчанию ( md: ).
Работа в режиме SSE
Сервер также может работать в режиме SSE с использованием supergateway , если выполнить следующую команду:
npx -y supergateway --stdio "uvx mcp-server-motherduck --db-path md: --motherduck-token <your_motherduck_token>"И вы можете направить свои клиенты, такие как Claude Desktop, Cursor, на эту конечную точку.
Конфигурация разработки
Для запуска сервера из локальной среды разработки используйте следующую конфигурацию:
{
"mcpServers": {
"mcp-server-motherduck": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/local/mcp-server-motherduck",
"run",
"mcp-server-motherduck",
"--db-path",
"md:",
"--motherduck-token",
"<YOUR_MOTHERDUCK_TOKEN_HERE>"
]
}
}
}Поиск неисправностей
Если у вас возникли проблемы с подключением, проверьте правильность токена MotherDuck.
При проблемах с доступом к локальным файлам убедитесь, что параметр
--home-dirустановлен правильно.Проверьте, доступна ли команда
uvxв вашем PATH.Если вы столкнулись с ошибками
spawn uvx ENOENT, попробуйте указать полный путь кuvx(выводwhich uvx)В предыдущей версии v0.4.0 мы использовали переменные окружения, теперь мы используем параметры
Лицензия
Этот сервер MCP лицензирован по лицензии MIT. Это означает, что вы можете свободно использовать, изменять и распространять программное обеспечение в соответствии с условиями лицензии MIT. Для получения более подробной информации см. файл LICENSE в репозитории проекта.
Available Tools
5 toolsexecute_queryExecute QueryADestructive
Execute a SQL query on the DuckDB or MotherDuck database. Unqualified table names resolve to current_database() and current_schema() automatically. Fully qualified names (database.schema.table) are only needed when multiple DuckDB databases are attached or when connected to MotherDuck.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | SQL query to execute (DuckDB SQL dialect) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=false, so safety profile is covered. The description adds genuine behavioral context about unqualified name resolution, which is not in the annotations, but it never warns that arbitrary SQL can mutate or drop data — a meaningful omission for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences, front-loaded with the core action, followed by the naming-resolution rules. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description adequately covers invocation semantics. It could go further by noting that the tool executes arbitrary statements including writes/DDL, but the destructiveHint annotation already signals that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema coverage the baseline is 3, but the description adds real meaning beyond 'SQL query to execute' by explaining how unqualified versus fully qualified table names resolve against current_database()/current_schema(). That directly informs how the agent should author the sql argument.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Execute a SQL query on the DuckDB or MotherDuck database', which is immediately distinguishable from the introspection siblings (list_databases, list_tables, list_columns). It does not explicitly name or contrast with those siblings, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful conditional guidance about when fully qualified names are needed ('only needed when multiple DuckDB databases are attached or when connected to MotherDuck'), but that is guidance about writing the SQL, not about when to choose this tool over switch_database_connection or the listing tools. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_columnsList ColumnsARead-only
List all columns of a table or view with their types and comments. If database/schema are not specified, uses the current database/schema.
| Name | Required | Description | Default |
|---|---|---|---|
| table | Yes | Table or view name | |
| schema | No | Schema name (defaults to current schema) | |
| database | No | Database name (defaults to current database) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds the useful defaulting behavior for database/schema, but that same default is already stated in the input schema, so the incremental behavioral value is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, and the defaulting constraint follows without redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety and a full output schema covering return values, the description supplies the only remaining critical context: that database/schema fall back to the current session. Nothing needed to call this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters, including their defaulting behavior. The description repeats the database/schema default without adding syntax, format, or selection meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List all columns of a table or view with their types and comments.' This clearly distinguishes it from sibling tools like list_tables and list_databases, and an agent can tell exactly what it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies usage (inspect table structure), and the description notes the default database/schema behavior, but it never states when to choose this over execute_query or list_tables, nor any prerequisites or exclusions. Adequate but with a clear gap in routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_databasesList DatabasesARead-only
List all databases available in the connection. Useful when multiple DuckDB databases are attached or when connected to MotherDuck.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds only the MotherDuck/multi-attach scenario and says nothing about result ordering, pagination, or scope limits beyond 'the connection'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core action front-loaded and the situational hint second. Nothing is redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero params, rich annotations, and an output schema that handles return values, the description covers what an agent needs. It could be marginally stronger by clarifying that it lists databases within the active connection rather than across all connections.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema carries no parameter semantics to explain; baseline for a no-arg tool is 4. The description correctly implies no filtering inputs are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (databases) scoped to the current connection, which cleanly separates it from list_tables and list_columns. It does not explicitly name a sibling to route against, but the resource noun is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a usage condition ('when multiple DuckDB databases are attached or when connected to MotherDuck'), which is real implied guidance. However, it never says when NOT to use it or which sibling to pick instead (e.g., list_tables for table enumeration), so guidance stays implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesList TablesBRead-only
List all tables and views in a database with their comments. If database is not specified, uses the current database.
| Name | Required | Description | Default |
|---|---|---|---|
| schema | No | Optional schema name to filter by | |
| database | No | Database name to list tables from (defaults to current database) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description only adds that comments accompany each table and that the current database is the default scope; it says nothing about result size, filtering interaction, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the primary action stated first and the fallback behavior second. Nothing redundant or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the tool is a simple read with no credentials or side effects. The definition is essentially complete, with only minor room for a note on result limits or when to prefer list_columns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both the 'schema' filter and the 'database' default are already documented in the schema. The description merely restates the database default, adding no format, syntax, or edge-case detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (tables and views in a database) with the added detail that comments are returned. The resource clearly separates it from siblings like list_databases and list_columns, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains a default (falls back to the current database) but gives no guidance on when to choose this tool over list_databases, list_columns, or execute_query. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
switch_database_connectionSwitch Database ConnectionA
Switch to a different database connection. For local files, use absolute paths only. The new connection respects the server's read-only/read-write mode. For local files, the file must exist unless create_if_not_exists=True (requires read-write mode).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Database path. For local files, must be an absolute path. Also accepts :memory:, md:database_name, or s3:// paths. | |
| create_if_not_exists | No | If True, create the database file if it doesn't exist. Only works in read-write mode. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, openWorldHint=true and destructiveHint=false. The description adds real behavioral context beyond that: the new connection inherits the server's read/write mode, and creating a missing file is gated on read-write mode. It does not state what happens to the previous connection or whether switching mid-transaction is permitted, so this is strong but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, purpose first, then constraints in descending order of importance. No filler, no repetition of the title, and the preconditions are front-loaded where an agent will see them.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the main surprising preconditions (absolute paths, file existence, read-write mode) are covered. The one notable omission is the fate of the previously active connection, which matters for a state-switching tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents absolute-path requirements and the create_if_not_exists read-write constraint. The description largely restates those same facts, adding no syntax or format detail beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Switch to a different database connection"), which no sibling tool does — the siblings are all query/catalog tools. However, it never names or contrasts with any alternative (e.g., list_databases to discover targets), so it is clear but lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives conditional usage rules (absolute paths for local files, create_if_not_exists=True only in read-write mode), which is genuine guidance. But it never says when to prefer this tool or how to find valid targets, leaving the agent to infer that from siblings like list_databases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.8- First observed
execute_query - First observed
list_columns - First observed
list_databases - First observed
list_tables - First observed
switch_database_connection
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: execute_query runs SQL, list_databases/tables/columns return metadata, switch_database_connection manages connections. Overlap is minimal because the listing tools target different entity levels (databases, tables, columns).
All tools use a consistent verb_noun snake_case pattern: execute_query, list_databases, list_tables, list_columns, switch_database_connection. The naming is predictable and readable.
Five tools is well-scoped for a database interface: one query executor, three metadata listers, and one connection switcher. No obvious missing core operations given the server's purpose.
The surface covers querying, schema exploration, and connection management. However, it lacks tools for database writing/DDL (e.g., create table, insert) or connection closing, which might be needed for full lifecycle management.
Maintenance
Related MCP Connectors
An MCP server for search and retrieval over a local LanceDB database
Official Duck Framework MCP server for AI-assisted development and project scaffolding.
MCP server for interacting with the Supabase platform
MCP server for OnceAsk, the AI-native current-address layer for people and agents.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceUniversal database MCP server connecting to MySQL, PostgreSQL, SQLite, DuckDB and etc.22 npm3,780MIT
- AlicenseAqualityDmaintenanceA local MCP server implementation that interacts with DuckDB and MotherDuck databases, providing SQL analytics capabilities to AI Assistants and IDEs.1MIT
- AlicenseNot gradedqualityDmaintenanceA local MCP server enabling AI assistants to query and analyze data via DuckDB SQL engine, supporting local files, memory, S3, and MotherDuck.15 npmApache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server for SQL analytics on DuckDB and MotherDuck databases, enabling AI assistants and IDEs to query data via natural language.1MIT