Token导航 LogoToken导航

MCP Server · 数据服务

sqlprism (Darkcofy)

SQLPrism是一个将SQL代码库索引为可查询知识图的服务,支持DuckDB后端,适用于SQL-heavy数据项目,如SQLMesh和dbt。

stdio官方级别未说明来源级核验工具 24
代码索引PythonClaude数据分析VS Code

快速开始

作者 / 组织
darkcofy
提供方
darkcofy
运行时
Python

工具数量

24

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

sqlprism (Darkcofy) 属于数据服务类 MCP Server,公开资料标注 24 个工具,通过stdio 本地进程接入,适配 Claude、VS Code,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

数据服务

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

uv run sqlprism init # creates sqlprism.yml in the current directory

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 24 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

SQLPrism

一个MCP服务器,将SQL代码库索引到由DuckDB支持的可查询知识图中。与其翻阅文件,不如问结构性问题: *这张表上有什么,这列在哪里转换,这个PR的爆炸半径是多少。*

为SQL密集型数据项目构建——使用原始SQL, SQLMesh,以及 数据构建工具.

为什么不只是Grep?

Grep找到了字符串。此工具了解SQL结构。

功能GrepSQLPrism
查找表引用是是
CTE到CTE数据流否--手动读取文件是--在图中跟踪边
带转换的列沿袭(CAST、COALESCE、SUM)否是--从AST解析
使用类型(WHERE vs SELECT vs JOIN vs GROUP BY)脆弱正则表达式精确——从AST解析
多跳影响分析手动跟踪自动图遍历
PR爆炸半径用git diff DIY一个电话
跨CTE列跟踪基本上不可能内置

200型号 SQLMesh 项目,列影响查询返回 75个结构化结果,约5000个代币。grep等价物需要 打开40-60个文件,~10000+个令牌,但仍然无法告诉您列是出现在WHERE筛选器中还是SELECT中。

设置

1.安装

git clone https://github.com/darkcofy/sqlprism.git && cd sqlprism
uv sync

2.配置

uv run sqlprism init                    # creates sqlprism.yml in the current directory
# edit sqlprism.yml to add your repos (see Configuration below)
uv run sqlprism reindex                 # index plain SQL repos
先决条件: dbt和SQLMesh是 不 sqlprism的依赖关系。渲染器向 dbt compile / sqlmesh 在目标项目自己的virtualenv中(通过 uv run 默认情况下)。在该项目中安装渲染器——例如 uv add dbt-core dbt- 或 uv add sqlmesh --跑步前 reindex-dbt / reindex-sqlmesh。如果缺少渲染器,sqlprism将在指向项目目录时引发明显错误。

3.连接您的MCP客户端

克劳德代码:

claude mcp add sqlprism -- uv run --directory /path/to/sqlprism sqlprism serve

克劳德桌面/光标/继续开发 (.mcp.json):

{
  "mcpServers": {
    "sqlprism": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/sqlprism", "sqlprism", "serve"]
    }
  }
}

替换 /path/to/sqlprism 带有克隆的绝对路径。

4.保存时重新索引

当您设置保存挂钩时,图形会自动保持新鲜。根据您的编辑器,有两种模式。

克劳德代码

添加a PostTool使用挂钩 因此,每当Claude写入或编辑文件时,索引都会更新。将此另存为 .claude/settings.json 在项目根目录中:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "FILE=$(cat | jq -r '.tool_input.file_path // empty'); [ -n \"$FILE\" ] && [[ \"$FILE\" =~ \\.sql$ ]] && sqlprism reindex-file \"$FILE\" || true"
          }
        ]
      }
    ]
  }
}

这将从钩子的stdin JSON中提取文件路径,检查它是否是 .sql 文件,并调用CLI对其重新索引。运行 /hooks 在Claude Code中验证钩子是否处于活动状态。

其他MCP客户端(游标、Continue.dev)

这 reindex_files MCP工具接受绝对文件路径,并仅对受影响的模型重新建立索引。纯SQL在~50ms内重新索引; 数据构建工具/SQLMesh 模型在2-5s内编译+重新索引。每个仓库都会取消调用(SQL为500ms,渲染模型为2s),因此可以快速将批处理保存到单个操作中。

配置您的客户端以调用 reindex_files 保存时保存文件的路径。

不带MCP的编辑器(Vim、Neovim、Emacs、VS代码任务)

这 reindex-file CLI命令可以独立工作,不需要运行服务器:

sqlprism reindex-file /path/to/model.sql

Vim/Neov:

autocmd BufWritePost *.sql silent !sqlprism reindex-file %:p

Emacs:

(add-hook 'after-save-hook
  (lambda ()
    (when (string-match-p "\\.sql\\'" buffer-file-name)
      (start-process "sqlprism" nil "sqlprism" "reindex-file" buffer-file-name))))

VS Code (使用 运行保存 扩展, .vscode/settings.json):

{
  "emeraldwalk.runonsave": {
    "commands": [
      {
        "match": "\\.sql$",
        "cmd": "sqlprism reindex-file ${file}"
      }
    ]
  }
}

配置

sqlprism init 在以下位置创建默认配置 sqlprism.yml 在工作目录中。YAML是默认格式;JSON也支持(--format json).现有的 sqlprism.json 文件是自动发现的,以实现向后兼容性。用以下内容覆盖配置路径 --config PATH 任何命令。

db_path: ~/.sqlprism/graph.duckdb
sql_dialect: null
repos:
  my-queries: /path/to/sql/repo
  multi-dialect-repo:
    path: /path/to/repo
    dialect: starrocks
    dialect_overrides:
      athena/: athena
      postgres/: postgres
sqlmesh_repos:
  my-sqlmesh-project:
    project_path: /path/to/sqlmesh/folder
    env_file: /path/to/.env
    dialect: athena
    variables:
      GRACE_PERIOD: 7
dbt_repos:
  my-dbt-project:
    project_path: /path/to/dbt/project
    env_file: /path/to/.env
    target: dev
    dialect: starrocks
    dbt_command: uv run dbt
字段描述
db_pathDuckDB数据库文件的路径。默认为 ~/.sqlprism/graph.duckdb.
sql_dialect全局默认SQL方言。 null 用于自动检测。
repos纯SQL存储库。值是路径字符串或具有以下值的对象 path, dialect, dialect_overrides.
dialect按回购方言覆盖(例如。 "starrocks", "athena", "bigquery").
dialect_overrides使用前缀匹配或glob模式覆盖每个目录。
sqlmesh_reposSQLMesh 项目。在解析之前渲染模型。
dbt_repos数据构建工具 项目。在解析之前编译模型。

SQL方言支持

由...驱动 SQL胶水,索引器支持 33种SQL方言 开箱即用:

Athena、BigQuery、ClickHouse、ViewModel、Doris、Dremio、Drill、Druid、DuckDB、Dune、Exasol、Fabric、Hive、Materialize、MySQL、Oracle、Postgres、Presto、PRQL、Redshift、RisingWave、SingleStore、Snowflake、Spark、Spark2、SQLite、StarRocks、Tableau、Teradata、Trino、TSQL。

将方言名称作为小写字符串传递(例如。 "starrocks", "bigquery", "athena").方言特定的引用和标识符大小写规范化是自动处理的。

CLI命令

完整参考: CLI指南

命令描述
sqlprism init创建默认配置文件。
sqlprism reindex对普通SQL存储库进行增量重新索引。
sqlprism reindex-file快速保存特定文件的重新索引。
sqlprism reindex-dbt编制并索引a 数据构建工具 项目。
sqlprism reindex-sqlmesh渲染和索引a SQLMesh 项目。
sqlprism serve启动MCP服务器(stdio或HTTP)。
sqlprism conventions init生成 sqlprism.conventions.yml 根据推断的惯例。
sqlprism conventions refresh重新索引后重新运行约定推理。
sqlprism conventions diff显示自上次以来发生了什么变化 --init.
sqlprism status显示索引状态。
sqlprism query search按名称模式查找实体。
sqlprism query references查找入站/出站依赖关系。
sqlprism query column-usage查找不同模型中的列使用情况。
sqlprism query trace多跳依赖关系跟踪。
sqlprism query lineage端到端列沿袭链。

MCP工具

完整参考: MCP工具指南

作为MCP服务器运行时(sqlprism serve),暴露了以下工具:

工具说明
search按带分页的名称模式查找实体。
find_references带有代码段的入站/出站依赖关系。
find_column_usage列用法——类型、转换、别名。
trace_dependencies多跳上游/下游链。
trace_column_lineage通过CTE进行端到端的列沿袭。
get_schema包含列、类型和依赖关系的表/视图架构。
get_context一个调用是模型的全面上下文转储。
find_path两个模型之间的最短路径(DuckPGQ)。
find_critical_models按PageRank重要性对模型进行排名(DuckPGQ)。
detect_cycles在图中查找循环依赖关系。
find_subgraphs识别断开连接的集群和孤立模型(DuckPGQ)。
find_bottlenecks具有风险分类的高扇出模型。
check_impact更改前的列级影响分析。
pr_impact自基础提交以来的结构差异+爆炸半径。
reindexSQL存储库的后台增量重新索引。
reindex_files通过每回购一次的减持,快速实现重新索引。
reindex_dbt后台dbt编译+索引。
reindex_sqlmesh后台SQLMesh渲染+索引。
get_conventions推断项目约定——命名、引用、列。
find_similar_models查找与您正在构建的模型相似的现有模型。
suggest_placement根据参考建议放置新模型的位置。
search_by_tag通过语义标签(业务领域概念)查找模型。
list_tags列出所有带有模型计数和置信度的语义标签。
index_status索引统计、跨仓库边和名称冲突。

建筑

src/sqlprism/
  types.py               checksum -> parse -> store; file-level reindex with repo-type dispatch
    mcp_tools.py        <- FastMCP tool definitions (non-blocking reindex, per-repo debounce)
    conventions.py      <- Convention inference engine: layers, naming, references, tags, overrides
  cli.py                <- Click CLI: serve, reindex, reindex-file, reindex-sqlmesh, reindex-dbt, conventions, status, init

SQL解析器提取:

  • 节点:表、视图、CTE、查询(具有模式元数据和方言感知案例规范化)
  • 边缘:表引用、CTE引用、JOIN(上下文类似于“FROM子句”、“JOIN子句”)
  • 列使用情况:按列跟踪,使用类型(select、where、join_on、group_by、order_by、has、partition_by、window_order)、转换(CAST、COALESCE、SUM等)、输出别名和where筛选器表达式
  • 列沿袭:通过CTE和子查询进行端到端跟踪,返回源表,当模式目录可用时进行SELECT\*扩展

DuckPGQ图形分析

SQLPrism可选地与 DuckPGQ 用于高级图形分析。安装后,这些工具可用: find_path, find_critical_models, find_subgraphs, find_bottlenecks (聚类富集)。DuckPGQ在首次使用时会自动安装,无需手动设置。

发展

uv sync
uv run pytest                          # run tests (630+ tests)
uv run pytest --cov=sqlprism           # run with coverage report
uv run pytest --cov=sqlprism --cov-report=html:coverage_html  # HTML report

代码覆盖率

许可证

Apache许可证2.0——请参阅 许可证.

工具与能力

工具数量

24

资源数量

0

提示词数量

0

能力标签

SQL解析Python本地部署代码索引知识图谱数据工程SQL分析

支持客户端

ClaudeVS Code

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 工具数量 24 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude、VS Code,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
sqlprism (Darkcofy)

MCP World · 本页

24stdio有1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

sqlprism (Darkcofy) 怎么安装?

公开资料给出的安装命令是 uv run sqlprism init # creates sqlprism.yml in the current directory,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

sqlprism (Darkcofy) 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

sqlprism (Darkcofy) 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

sqlprism (Darkcofy) 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

sqlprism (Darkcofy) 支持哪些客户端?

公开资料标注支持 Claude、VS Code;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP