CockroachDB自然语言接口服务器

CockroachDB MCP服务器是一个自然语言接口,专为LLM和代理应用设计,用于管理、监控和查询CockroachDB数据,支持与MCP客户端的无缝集成。

  • by amineelkouhen
  • Python
  • 混合部署
  • 12 星标
  • 更新于
在 GitHub 查看 amineelkouhen/mcp-cockroachdb

使用说明

CockroachDB MCP服务器

概述

CockroachDB MCP服务器是 自然语言界面 专为LLM和代理应用程序设计,用于管理、监视和查询CockroachDB中的数据。它与 MCP(模型内容协议) 客户端,如Claude Desktop或Cursor,使AI驱动的工作流能够直接与您的数据库交互。

目录

特性

  • 自然语言查询:AI代理可以通过自然语言进行查询和交易。
  • 集群监控:群集状态、节点运行状况、复制、慢速查询、争用、索引建议。
  • 数据库操作:列出、创建、删除和切换数据库。
  • 桌位管理:创建、删除、更改(添加/删除/重命名列)、截断、重命名、描述;大宗进口;索引、视图、模式。
  • 查询引擎:具有json/csv/表输出、多语句事务、解释、历史的参数化SQL。
  • 用户和权限管理:配置SQL用户和角色,授予/撤销权限。允许您在作用域非root用户下运行代理。
  • 向量搜索:使用余弦/L2/内积度量进行相似性搜索(从索引操作类自动检测),C-SPANN ANN索引管理(v25.2+)。
  • 作业管理:观察和控制异步作业(BACKUP、RESTORE、IMPORT、CHANGEFEED、SCHEMA CHANGE)。
  • 备份与恢复:针对s3、gs、azure、nodelocal、userfile进行完整/数据库/表备份和还原。
  • 统计:创建并显示优化器统计信息。
  • 多区域:区域、生存目标、地点(REGIONAL_BY_ROW等)、区域配置。
  • 更改订阅源:通过汇聚方案验证,将CDC管道连接到Kafka/webhook/云存储。
  • 群集管理:集群设置,停用/排水(门控)。
  • 诊断:跟踪跨度、语句诊断包。
  • 安全第一:严格的标识符验证、参数化值、, --read-only 模式,明确 confirm=True 对于破坏性操作,编辑DSN响应。
  • 无缝MCP集成:适用于任何MCP客户端(Claude Desktop、Cursor、VS代码副本、OpenAI代理SDK等)。
  • 多个传输:stdio(默认)和可流式传输的HTTP。

工具

CockroachDB MCP服务器将Cockroach数据库作为一组MCP工具公开。请求从任何MCP客户端通过传输流到安全层,然后流到十三个工具类别之一,最后通过asyncpg连接池流到CockroachDB。

flowchart LR
    subgraph Clients["MCP Clients"]
        direction TB
        C1["Claude Desktop"]
        C2["Cursor"]
        C3["VS Code Copilot"]
        C4["OpenAI Agents SDK"]
        C5["Augment"]
    end

    subgraph Transport["Transport"]
        direction TB
        T1["stdio"]
        T2["streamable HTTP"]
    end

    subgraph Server["CockroachDB MCP Server (FastMCP)"]
        direction TB

        subgraph Safety["Safety Layer"]
            direction TB
            S1["Identifier validation<br/>(strict regex)"]
            S2["Parameterized values<br/>($1, $2, ...)"]
            S3["--read-only gate"]
            S4["--allow-destructive<br/>+ confirm=True"]
            S5["DSN redaction"]
        end

        subgraph Tools["Tool Categories (13)"]
            direction TB

            subgraph Obs["Observe & Diagnose"]
                O1["Cluster Monitoring"]
                O2["Diagnostics"]
                O3["Statistics"]
            end

            subgraph Data["Data & Schema"]
                D1["Database Operations"]
                D2["Table Management"]
                D3["Query Engine"]
                D4["Vector Search (C-SPANN)"]
            end

            subgraph Ops["Data Movement"]
                P1["Job Management"]
                P2["Backup & Restore"]
                P3["Changefeeds (CDC)"]
            end

            subgraph Adm["Admin & Topology"]
                A1["User & Privilege Management"]
                A2["Multi-Region"]
                A3["Cluster Admin"]
            end
        end

        Pool["asyncpg connection pool"]
    end

    DB[("CockroachDB<br/>single- or multi-region cluster")]

    Clients --> Transport
    Transport --> Safety
    Safety --> Tools
    Tools --> Pool
    Pool --> DB

这些工具按关注点分为十三类。每个书写工具都由 --read-only每种破坏性工具都需要 --allow-destructive 加上每次通话的费用 confirm=True 参数;看 安全模型 部分。

集群监控

目的: 提供用于监视和管理CockroachDB集群的工具。

摘要:

  • 获取群集运行状况和节点状态。
  • 显示当前正在运行的查询。
  • 分析查询性能统计数据。
  • 检索表或整个数据库的复制和分发状态。
  • 通过可选的关键字过滤获得查询执行见解。
  • 使用可选的关键字过滤从语句统计中查找慢速查询。
  • 通过可选的关键字过滤获得交易执行见解。
  • 使用可选的表筛选查看争用事件。
  • 从查询洞察中获取索引建议。

数据库操作

目的: 处理数据库级操作和连接管理。

摘要:

  • 连接到CockroachDB数据库。
  • 列出、创建、删除和切换数据库。
  • 获取连接状态和活动会话。
  • 检索数据库设置。

桌位管理

目的: 提供用于管理CockroachDB中的表、索引、视图、模式和关系的工具。

摘要:

  • 创建、删除、描述、重命名和截断表(破坏性操作门控)。
  • alter_table_add_column, alter_table_drop_column, alter_table_rename_column.
  • 将数据批量导入到表中(CSV/Avro来自s3/gs/azure/http(s))。
  • 管理索引(创建/删除)。
  • 管理视图(创建/删除、列表)。
  • 管理架构(list_schemas, create_schema, drop_schema).
  • 列出表格和表格关系;分析模式结构和元数据。

查询引擎

目的: 执行和管理SQL查询和事务。

摘要:

  • 使用格式化选项(JSON、CSV、表)执行SQL查询。
  • 运行多对账单交易。
  • 解释优化的查询计划。
  • 跟踪和检索查询历史记录。

用户和权限管理

目的: 管理SQL用户、角色和权限。从管理代理使用此功能 配置代理自己的作用域(非root)用户。

摘要:

  • list_users, create_user, drop_user, alter_user_password.
  • create_role, drop_role, grant_role, revoke_role.
  • show_grants, grant_privileges, revoke_privileges.

特权针对满配主义者进行验证(SELECT, INSERT, UPDATE, DELETE, ALL, BACKUP, RESTORE, MODIFYCLUSTERSETTING, ...).标识符 使用与其他地方相同的严格正则表达式。

向量搜索

目的: 使用CockroachDB的相似性运算符(v25.2+)搜索VECTOR列 管理C-SPANN ANN索引。

摘要:

  • vector_similarity_search 与 metric 的 cosine (默认), l2, ip, 或 auto (与现有索引操作类匹配)。退货 distance 和一个 衍生的 similarity 现场。
  • create_cspann_index 使用公制→ 操作类映射 (vector_cosine_ops / vector_l2_ops / vector_ip_ops).
  • drop_cspann_index (破坏性)。

查询向量始终作为 $1::VECTOR 参数;标识符与 optional where 子句值被验证。对于标准化嵌入(例如。 Takara DS1、OpenAI文本嵌入-3)所有三个指标的排名相同;这个 默认 cosine 是最安全的,因为它忽略了震级。

作业管理

目的: 观察和控制长时间运行的CockroachDB作业(BACKUP、RESTORE、IMPORT、, 模式更改、CHANGEFEED)。

摘要:

  • list_jobs (按状态和类型过滤), get_job_status.
  • pause_job, resume_job, cancel_job (破坏性)。

备份与恢复

目的: 进行并恢复群集、数据库和表备份。

摘要:

  • create_backup 到s3/gs/azure/nodelocal/userfile目标。
  • list_backups 枚举存储URI处的备份。
  • restore_backup (破坏性)可选 new_db_name.
  • list_scheduled_backups.

URI方案根据满列表进行验证;标识符目标是 标识符已验证。

统计

目的: 计算并检查基于成本的优化器所依赖的表统计信息。

摘要:

  • create_statistics (创建统计数据)。
  • show_statistics (显示表中的统计数据)。

多区域

目的: 配置多区域行为:区域、生存目标、表位置、, 区域配置。

摘要:

  • show_regions, show_database_regions.
  • add_database_region, drop_database_region (破坏性)。
  • set_survival_goal (ZONE 或 REGION).
  • set_table_locality (REGIONAL, REGIONAL_BY_ROW, REGIONAL_BY_TABLE, GLOBAL).
  • show_zone_config 用于数据库/表/索引。

更改订阅源

目的: 设置和操作CDC到Kafka、webhooks或云存储的管道。

摘要:

  • create_changefeed 使用sink方案验证(kafka、webhook http(s)、s3、, gs、azure blob、外部、null)、JSON或Avro格式、信封选择。
  • list_changefeeds, pause_changefeed, resume_changefeed.
  • cancel_changefeed (破坏性)。

群集管理

目的: 群集范围的管理:群集设置和节点生命周期。

摘要:

  • show_cluster_setting, set_cluster_setting, reset_cluster_setting (破坏性)。设置名称将根据严格的正则表达式进行验证。
  • decommission_node, drain_node请注意,SQL启动了停用 仅标记意图;对于整个生命周期,请使用 cockroach node CLI。

诊断

目的: 检查跟踪跨度和请求语句诊断包。

摘要:

  • get_recent_traces 来自 crdb_internal.cluster_inflight_traces.
  • list_statement_diagnostics_requests.
  • request_statement_diagnostics 用于声明指纹。

安装

CockroachDB MCP服务器支持 stdio 运输 和那个 streamable-http 运输。

快速开始使用uvx

使用CockroachDB MCP服务器的最简单方法是 uvx,这允许您直接从GitHub(从分支或使用标记的版本)运行它。建议使用带标签的版本。这 main 分支正在积极开发中,可能包含突破性的变化。例如,您可以执行以下命令来运行 0.1.0 释放:

uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git@0.1.0 cockroachdb-mcp-server --url postgresql://localhost:26257/defaultdb

请查看最新版本的发行说明 发布 部分。 下面提供了其他示例。

# Run with CockroachDB URI
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server --url postgresql://localhost:26257/defaultdb

# Run with individual parameters
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server --host localhost --port 26257 --database defaultdb --user root --password mypassword

# See all options
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server --help

# Run with streamable HTTP transport
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server \
  --url postgresql://localhost:26257/defaultdb \
  --transport http \
  --http-host 0.0.0.0 \
  --http-port 8000 \
  --http-path /mcp

开发安装

对于开发,或者如果您更喜欢克隆存储库:

# Clone the repository
git clone https://github.com/amineelkouhen/mcp-cockroachdb.git
cd mcp-cockroachdb

# Install dependencies using uv
uv venv
source .venv/bin/activate
uv sync

# Run with CLI interface
uv run cockroachdb-mcp-server --help

# Or run the main file directly (uses environment variables)
uv run src/main.py

克隆存储库、安装依赖项并验证可以运行服务器后,您可以配置Claude Desktop或任何其他MCP客户端直接使用此MCP服务器运行主文件(它使用环境变量)。这通常是开发的首选。 以下示例适用于Claude Desktop,但同样适用于任何其他MCP客户端。

  1. 指定您的CockroachDB凭据和TLS配置
  2. 取回您的 uv 命令完整路径(例如。 which uv)
  3. 编辑 claude_desktop_config.json 配置文件 -在MacOS上 ~/Library/Application Support/Claude/
{
    "mcpServers": {
        "cockroach": {
            "command": "<full_path_uv_command>",
            "args": [
                "--directory",
                "<your_mcp_server_directory>",
                "run",
                "src/main.py"
            ],
            "env": {
                "CRDB_HOST": "<your_cockroachdb_hostname>",
                "CRDB_PORT": "<your_cockroachdb_port>",
                "CRDB_DATABASE": "<your_cockroach_database>",
                "CRDB_USERNAME": "<your_cockroachdb_user>",
                "CRDB_PWD": "<your_cockroachdb_password>",
                "CRDB_SSL_MODE": "disable|allow|prefer|require|verify-ca|verify-full",
                "CRDB_SSL_CA_PATH": "<your_cockroachdb_ca_path>",
                "CRDB_SSL_KEYFILE": "<your_cockroachdb_keyfile_path>",
                "CRDB_SSL_CERTFILE": "<your_cockroachdb_certificate_path>",
            }
        }
    }
}

您可以通过跟踪日志文件来解决问题。

tail -f ~/Library/Logs/Claude/mcp-server-cockroach.log

使用Docker Compose(本地开发)

对于本地开发和测试,请使用提供的 docker-compose.yaml 启动CockroachDB和MCP服务器:

# Start CockroachDB and MCP server
docker compose up -d

# The MCP server is available at http://localhost:8000/mcp/
# CockroachDB UI is available at http://localhost:8080

# View logs
docker compose logs -f mcp-server

# Stop and clean up
docker compose down -v

使用Docker

您可以使用此服务器的停靠部署。您可以建立自己的形象或使用官方 CockroachDB MCP Docker 图像。

如果你想构建你的镜像,CockroachDB MCP服务器提供了一个Dockerfile。使用以下命令构建此服务器的映像:

docker build -t mcp-cockroachdb .

最后,配置客户端以在启动时创建容器。下面提供了一个Claude Desktop的示例。编辑 claude_desktop_config.json 并添加:

{
  "mcpServers": {
    "cockroach": {
      "command": "docker",
      "args": ["run",
                "--rm",
                "--name",
                "cockroachdb-mcp-server",
                "-e", "CRDB_HOST=<cockroachdb_host>",
                "-e", "CRDB_PORT=<cockroachdb_port>",
                "-e", "CRDB_DATABASE=<cockroachdb_database>",
                "-e", "CRDB_USERNAME=<cockroachdb_user>",
                "mcp-cockroachdb"]
    }
  }
}

要使用 CockroachDB MCP Docker image,只需替换您的图像名称(mcp-cockroachdb 在上述示例中) mcp/cockroachdb.

作为MCPB捆绑包(Smithery/Claude Desktop)

存储库提供 2甲4氯丁酸 舱单下 mcpb/manifest.json.MCPB(.mcpb)是一个单文件存档,客户端如Claude Desktop,目录如 铁匠铺 可以作为本地stdio服务器安装,通过UI提示用户输入连接详细信息,而不是手动编辑JSON。

舱单上写着六 user_config 领域: url (标记 sensitive,因此客户端将其存储在OS密钥链中,而不是明文配置中), read_only (默认值 true), allow_destructive (默认值 false),可选 ssl_ca_cert / ssl_cert / ssl_key 文件拾取器。值通过env变量传递给服务器(CRDB_URL, MCP_READ_ONLY, MCP_ALLOW_DESTRUCTIVE, CRDB_SSL_*).

构建捆绑包:

npm install -g @anthropic-ai/mcpb
cp mcpb/manifest.json ./manifest.json
mcpb pack . cockroachdb-mcp-server.mcpb

在Claude Desktop中本地安装: 双击结果 .mcpb 文件。Claude Desktop将显示基于以下内容构建的配置表单 user_config.

发布到Smithery:

smithery mcp publish ./cockroachdb-mcp-server.mcpb -n amineelkouhen/cockroachdb-mcp-server

配置

CockroachDB MCP服务器可以通过两种方式配置:通过命令行参数或通过环境变量。 优先级为:CLI参数>环境变量>默认值。

通过命令行参数进行配置

使用CLI界面时,可以使用命令行参数配置服务器:

# Basic CockroachDB connection
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server \
  --host localhost \
  --port 26257 \
  --db defaultdb \
  --user root \
  --password mypassword

# Using CockroachDB URI (simpler)
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server \
  --url postgresql://root@localhost:26257/defaultdb

# SSL connection
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server \
  --url postgresql://user:pass@cockroach.example.com:26257/defaultdb?sslmode=verify-full&sslrootcert=path/to/ca.crt&sslcert=path/to/client.username.crt&sslkey=path/to/client.username.key

# See all available options
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server --help

可用CLI选项:

  • --url -CockroachDB连接URI(postgresql://user:pass@主机:端口/db)
  • --host -CockroachDB主机名
  • --port -CockroachDB端口(默认值:26257)
  • --db -CockroachDB数据库名称(默认值:defaultdb)
  • --username -CockroachDB用户名(默认:root)
  • --password -cockroachdb密码
  • --ssl-mode -SSL模式-可能的值:禁用(默认)、允许、首选、要求、验证ca、验证完整
  • --ssl-key -SSL客户端密钥文件的路径
  • --ssl-cert -SSL客户端证书文件的路径
  • --ssl-ca-cert -CA(根)证书文件的路径
  • --transport -要使用的MCP传输(stdio 或 http)
  • --http-host -绑定HTTP主机以进行流式HTTP传输
  • --http-port -绑定HTTP端口以进行流式HTTP传输
  • --http-path -用于流式HTTP传输的HTTP路径(例如。, /mcp)
  • --stateless-http -启用无状态HTTP模式进行水平扩展
  • --use-env -使用环境变量进行CockroachDB配置
  • --read-only -拒绝所有DDL和编写工具;建议用于助手式部署
  • --allow-destructive -需要 drop_database, drop_table, drop_index, drop_view。即使有这面旗帜,每一次破坏性的召唤都必须包括 confirm=True.
  • --version -显示服务器版本并退出

安全模型

此服务器专为与LLM驱动的代理一起使用而设计,在这种情况下,对代理的快速注入攻击可能会变成SQL注入或数据破坏。内置三层防御:

  1. 标识符验证。 所有数据库、模式、表、列、索引和视图名称都会根据以下内容进行验证 ^[A-Za-z_][A-Za-z0-9_]{0,62}$ 在插入SQL之前。
  2. 值始终是参数化的。 过滤器、限制和间隔使用asyncpg占位符($1, $2, ...).SQL中没有用户控制的值。
  3. 服务器级策略。
    • --read-only 禁用所有DDL和写形工具(drop_*, create_*, execute_query 插入/更新等。, bulk_import, ...).
    • --allow-destructive 是必需的 drop_* 工具。即便如此,来电者也必须通过 confirm=True 每次通话。
    • 回复中对DSN进行了编辑;密码从不出现在 connect() 结果。

生产助理风格使用的推荐默认值: --read-only。对于需要管理架构的管理代理,请设置 --allow-destructive 但切勿禁用 confirm=True 要求。

日志记录

日志记录是通过环境变量配置的:

  • MCP_LOG_LEVEL (默认值 INFO)--标准Python日志级别(调试/信息/警告/错误)。
  • MCP_LOG_JSON=1 --发出JSON结构化日志行,建议在与一起运行时使用 --transport http.

连接池调优

  • CRDB_POOL_MIN (默认值 1)
  • CRDB_POOL_MAX (默认值 10)
  • CRDB_COMMAND_TIMEOUT (默认值 60 秒)

通过环境变量进行配置

如果需要,可以使用环境变量。为所有变量提供默认值。

名称 描述 默认值
CRDB_HOST CockroachDB节点或负载平衡器的主机名或地址。 127.0.0.1
CRDB_PORT CockroachDB节点或负载均衡器的SQL接口的端口号。 26257
CRDB_DATABASE 用作当前数据库的数据库名称。 defaultdb
CRDB_USERNAME 将拥有客户端会话的SQL用户。 根
CRDB_PWD 用户的密码。 无
CRDB_SSL_MODE 使用哪种类型的安全连接。 禁用
CRDB_SSL_CA_PATH 当sslmode不存在时,CA证书的路径 disable。 无
CRDB_SSL_CERTFILE 当sslmode不存在时,客户端证书的路径 disable。 无
CRDB_SSL_KEYFILE 当sslmode不存在时,客户端私钥的路径 disable。 无

有几种方法可以设置环境变量:

  1. 使用a .env 文件: 放一个 .env 项目目录中的文件,其中包含每个环境变量的键值对。工具如 python-dotenv, pipenv,以及 uv 可以在运行应用程序时自动加载这些变量。这是一种方便且安全的配置管理方式,因为它可以将敏感数据从shell历史记录和版本控制中删除(如果 .env 在...里 .gitignore). 例如,创建一个 .env 包含以下内容的文件 .env.example 存储库中提供的文件:
cp .env.example .env

然后编辑 .env 设置CockroachDB配置的文件:

或者,

  1. 在Shell中设置变量: 在运行应用程序之前,您可以直接在shell中导出环境变量。例如:
export CRDB_URL= postgresql://root@127.0.0.1:26257/defaultdb

此方法有助于临时覆盖或快速测试。

集成

以下部分将介绍如何将此MCP服务器与OpenAI代理SDK等开发框架集成,或使用Claude Desktop、VS Code或Augment等工具进行集成。

OpenAI代理SDK

将此MCP服务器与OpenAI代理SDK集成。阅读 文件 了解更多关于SDK与MCP集成的信息。

安装Python SDK。

pip install openai-agents

配置OpenAI令牌:

export OPENAI_API_KEY="<openai_token>"

然后跑 应用.

python3 examples/cockroachdb_assistant.py

您可以使用以下工具对代理工作流进行故障排除 OpenAI仪表板.

增强

您可以通过JSON导入服务器,在Augment中配置CockroachDB MCP服务器:

{
  "mcpServers": {
    "CockroachDB MCP Server": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/amineelkouhen/mcp-cockroachdb.git",
        "cockroachdb-mcp-server",
        "--url",
        "postgresql://root@localhost:26257/defaultdb",
        "--read-only"
      ]
    }
  }
}

Claude 桌面版

配置MCP客户端的最简单方法是使用 uvx.将以下JSON添加到您的 claude_desktop_config.json,记得提供完整的路径 uvx.

{
    "mcpServers": {
        "cockroach-mcp-server": {
            "type": "stdio",
            "command": "/opt/homebrew/bin/uvx",
            "args": [
                "--from", "git+https://github.com/amineelkouhen/mcp-cockroachdb.git",
                "cockroachdb-mcp-server",
                "--url", "postgresql://localhost:26257/defaultdb"
            ]
        }
    }
}

请按照提示并提供配置服务器和连接到CockroachDB的详细信息(例如,使用托管的Cockroach数据库实例)。 该程序将在 claude_desktop_config.json 配置文件。

VS代码与GitHub Copilot

要使用带有VS代码的CockroachDB MCP服务器,您必须启用 代理模式 工具。将以下内容添加到您的 settings.json:

{
  "chat.agent.enabled": true
}

您可以使用以下命令启动GitHub所需版本的CockroachDB MCP服务器 uvx 通过将以下JSON添加到您的 settings.json:

"mcp": {
    "servers": {
        "CockroachDB MCP Server": {
        "type": "stdio",
        "command": "uvx", 
        "args": [
            "--from", "git+https://github.com/amineelkouhen/mcp-cockroachdb.git",
            "cockroachdb-mcp-server",
            "--url", "postgresql://root@localhost:26257/defaultdb"
        ]
        },
    }
},

或者,您可以使用以下命令启动服务器 uv 并配置您的 mcp.json 或 settings.json这通常是开发所需要的。

{
  "servers": {
    "cockroach": {
      "type": "stdio",
      "command": "<full_path_uv_command>",
      "args": [
        "--directory",
        "<your_mcp_server_directory>",
        "run",
        "src/main.py"
      ],
      "env": {
        "CRDB_HOST": "<your_cockroachdb_hostname>",
        "CRDB_PORT": "<your_cockroachdb_port>",
        "CRDB_DATABASE": "<your_cockroach_database>",
        "CRDB_USERNAME": "<your_cockroachdb_user>",
        "CRDB_PWD": "<your_cockroachdb_password>"
      }
    }
  }
}

有关更多信息,请参阅 VS代码文档.

光标

阅读配置选项 这里 并使用此链接输入您的选择:

测试

单元测试

该存储库附带了一个pytest套件,涵盖了SQL标识符验证器、类型序列化器、DSN解析、URL帮助器、输出格式和策略门控(只读模式、破坏性操作门控、注入拒绝)。

uv sync --extra dev
uv run pytest -v

CI在Python 3.12和3.13上运行相同的套件。看 .github/workflows/test.yml.

代码检查

uv run ruff check src tests
uv run ruff format --check src tests

MCP检查员

对于实时服务器的交互式调试,请使用 MCP检查员:

npx @modelcontextprotocol/inspector uv run src/main.py

贡献

  1. 分叉存储库
  2. 创建新分支(feature-branch)
  3. 提交您的更改
  4. 推送到您的分支机构并提交拉取请求。

许可证

该项目根据 MIT 许可证.

质量徽章

联系

如果您有任何问题或需要支持,请随时通过以下方式与我们联系 GitHub Issues.