mcpField
C
cypher-mcp

cypher-mcp

远程服务
github.com/lonniev数据库0今天更新
代码仓库

关于 cypher-mcp

cypher-mcp 是一款 MCP 服务,通过运营者编写的 Cypher 模板,从 Neo4j 图数据库提供定价查询结果。它面向图数据使用者和 Agent,且不会向用户公开原始 Cypher。

主要功能

  1. 01执行经过审核的参数化 Cypher 查询
  2. 02将查询发布为具类型的命名工具
  3. 03为各工具单独设置价格
  4. 04查询失败时退还扣款
  5. 05通过 Neo4j Browser 编辑模板

适用场景

  1. 01在不开放原始数据库访问的情况下向 Agent 提供图查询结果
  2. 02将目录中的查询发布为可调用的 MCP 工具
  3. 03对成功返回的图查询结果收费
  4. 04在 Neo4j Browser 中完善并测试模板

MCP 相关

向 MCP 客户端提供参数化图查询和已发布的命名工具。运营者通过受限的 MCP 工具管理查询模板和工具发布。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://cypher-mcp.fastmcp.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

112
参数类型必填说明
npubstring是要查询余额的 Nostr 公钥(npub1...)。
dpop_tokenstring是证明调用方持有 npub 的凭据:来自 receive_npub_proof 的授权信封,或由 npub 签名的 kind-27235 Nostr 事件原始 JSON,其中 `u` 标签的值为此工具的名称。

详细介绍

cypher-mcp

通过 Bitcoin Lightning 提供付费图谱答案。 一款 Tollbooth-DPYC Operator, 销售图谱中的付费答案——由运营方编写、带参数的命名 Cypher 查询模板,而不是原始数据库访问权限。

开源 Neo4j MCP 服务只是连接数据库的免费通道,运营方仍需单独支付数据库费用(Neo4j 账单),并通过单独的账单系统(Stripe 技术栈)向客户收费。 cypher-mcp 将基础设施成本、应用计费和访问控制整合到一个按量计费的 MCP 接口中:运营方不再销售席位,而是销售以 sats 结算的答案,无需 Stripe 技术栈,也不会把 Neo4j 账单转嫁给客户。

已上线:https://cypher-mcp.fastmcp.app/mcp。

工作原理

两个平面,清晰分离:

  • 结算/身份平面 — Neon + Nostr + Tollbooth,与所有其他 DPYC Operator 共用。它完全不知道图谱的存在。
  • 价值交付平面 — Bolt → Neo4j,封装在工具处理程序内部(graph.py),每个请求单独建立和拆除连接(不使用连接池)。底层存储对用户而言只是不可见的实现细节,因此可以替换,而无需更改 MCP 接口。

三个概念层:

层级位置内容
L1 — 原语代码(仅随项目发布一次)execute_query_by_key(key, params) + 目录 CRUD
L2 — 目录Neon query_catalogkey → 经过审核的 Cypher 模板 + 参数架构(可执行的查询)
L3 — 定价Tollbooth 定价模型销售内容、名称及价格

状态:已上线,支持命名工具。 L1 + L2 已发布并正在提供实际计费的答案——已有运营方经 Authority 采纳,后端由 AuraDB 提供支持,并已端到端验证抛出异常时退款。命名工具现已上线(L3 工具合成): 运营方可以调用 publish_tool(key),将查询作为一等、带类型的工具发布(例如 cypher_which_service_handles(keyword)),并在 Pricing Studio 中单独定价。每个键的参数化定价公式将在后续步骤中推出——请参阅 CHANGELOG.md。

工具

用户(付费):

  • cypher_execute_query_by_key(key, params) — 运行已发布的查询。你只需提供参数;查询文本由运营方管理,参数会绑定为 Cypher $params(绝不通过字符串插值)。只有成功交付答案才会收费——未知键、无效参数或查询失败都会回滚扣款(抛出异常时退款)。

免费: cypher_public_factory_stats — 仅提供汇总计数(不含标题、路径或 npub),并缓存在进程中,供只读 Cypher Lab Notebook 前端的未认证落地页使用,前端位于 frontend/。

此外还有 wheel 提供的标准 DPYC 接口:cypher_check_balance、 cypher_check_price、cypher_purchase_credits、Secure Courier、npub proof、 Oracle delegation、账户对账单、基于约束的动态定价等。

仅限运营方(受限、不定价)——编写平面:

  • cypher_create_query / cypher_update_query / cypher_get_query / cypher_list_queries / cypher_delete_query
  • cypher_publish_tool(key) / cypher_unpublish_tool(key) — 将查询发布为一等、带类型的命名工具(或将其下架)。请参阅下文的命名工具。

原始 Cypher 永远不会交付给用户——只提供命名的参数化模板。

在 Neo4j 自带的界面中编写——无需学习第二个编辑器

数据库分析师在 Neo4j Browser 中完善模板,而不是使用专门开发的工具。 cypher_get_query(key) 会返回模板以及 edit_url——这是一个指向托管版 Neo4j Browser(browser.neo4j.io)的深层链接,已预先定位到运营方的 AuraDB,并以编辑模式(cmd=edit)加载语句。 你可以使用自动补全、运行测试、可视化和 PROFILE 来完善模板,然后用 cypher_update_query 保存。模板只是通过 MCP 传递的字符串——无需文件、桌面应用或导出的包。链接包含 DBMS URI,但绝不包含密码;而且 get_query 仅限运营方使用,因此两者都不会传到用户手中。

命名工具——将查询发布为独立工具

cypher_publish_tool(key) 会将目录中的查询投影为名为 cypher_<key> 的一等 MCP 工具,其扁平化、带类型的参数来自查询架构——例如 cypher_which_service_handles(keyword)。Agent 随后可按名称使用带类型的参数调用它,而无需调用 execute_query_by_key(key, params)。在内部,每个命名工具都会通过同一个共享执行器运行(按键查找存储的 Cypher → 绑定参数 → 执行),因此只有一条代码路径,并且同样保证出错时退款。已发布的工具注册时不设价格——它会像任何新工具一样显示在 Pricing Studio 中;在那里为它设置价格(在设置之前,调用会返回“尚未定价(TBD)”)。cypher_unpublish_tool(key) 会停用该工具(查询本身仍会保留,仍可按键运行)。已发布的工具在重启后仍会保留(从目录重新生成);重新连接即可查看工具列表的变更。

合成机制是通用的 tollbooth-dpyc 基元(register_dynamic_tool)——命名 Cypher 查询只是其中一种实现;同一基元也可用于合成调用 REST、SQL 或存储的提示词的工具。

入驻(运营方)

  1. 向 Authority 提交采用请求(使用运营方的密钥签名,调用 cypher_request_adoption)。采用是唯一的接入方式:Authority 的所有者批准请求后,Authority 会自动配置一个隔离的 Neon 租户。cypher_adoption_status 会报告进度。
  2. 通过 Secure Courier 提供运营方密钥(调用 cypher_request_credential_channel,服务为 cypher-operator):
    • neo4j_uri、neo4j_user、neo4j_password——图存储(例如 Neo4j AuraDB 实例)
    • btcpay_host、btcpay_api_key、btcpay_store_id——Lightning
  3. 使用 cypher_create_query 编写目录,随后用户即可按键执行查询。

开发

pip install -e ".[dev]"
pytest -v
python -m cypher_mcp.server   # needs TOLLBOOTH_NOSTR_OPERATOR_NSEC

部署在 Prefect Horizon(FastMCP 运行时)上;请参阅 fastmcp.json。启动所需的唯一环境变量是 TOLLBOOTH_NOSTR_OPERATOR_NSEC——所有其他密钥都通过 Secure Courier 提供。


DPYC 生态系统

仓库角色
tollbooth-dpycPython SDK — 金库、身份验证、定价、支付、Nostr 身份
dpyc-community治理注册表、成员资格、公告、威胁模型
dpyc-oracle社区顾问 — 免费入门帮助和成员资格查询
tollbooth-authority认证骨干 — Schnorr 签名的采购订单证书
tollbooth-sample示例运营方 — 新 MCP 服务的标准模板
tollbooth-pricing-studioiOS 应用 — 可视化定价模型编辑器和运营方控制台
schwab-mcpCharles Schwab 经纪数据(运行示例)
thebrain-mcpTheBrain 个人知识图谱(运行示例)
excalibur-mcpX/Twitter 发帖(运行示例)
taxsort-mcp税务分类 + Cloudflare Pages 界面(运行示例)
goodearth-mcp按区域划分的农场气候分析(运行示例)
beesknees-mcp多人参与的竞速夺后游戏(运行示例)
roastify-mcpRoastify 咖啡目录和包装艺术作品(运行示例)
ChartRemotely-mcp通过赞助者自己的 Agent 进行远程桌面制图(运行示例)
tollbooth-web供运营方前端使用的共享浏览器 SDK
tollbooth-oauth2-collectorOAuth2 回调处理程序 — 共享倡导者服务
stablecoin.myshopify.comDPYC 周边商品和奥地利经济学

先前技术与署名

本仓库所含的方法、算法和实现可能是 Lonnie VanZandt 的原创作品,首次发表于 2026 年 6 月 15 日。 本公开披露依据美国专利法(35 U.S.C. 102)确立了先前技术。

所有使用、复制或衍生创作均须遵守本仓库所附的 Apache License 2.0,并须根据 NOTICE 文件的要求,恰当注明原作者。

如何署名

如果您使用或基于此作品进行开发,请在文档或源代码中加入以下内容:

Based on original work by Lonnie VanZandt and Claude.ai
Originally published: June 15, 2026
Source: https://github.com/lonniev/cypher-mcp
Licensed under Apache License 2.0

欢迎访问这位技术专家为 Bitcoin 倡导者和咖啡爱好者开设的虚拟咖啡馆:stablecoin.myshopify.com。

专利声明

作者保留就此处描述的新颖方法和系统寻求专利保护的一切权利。公开披露本作品确立的优先权日期为 2026 年 6 月 15 日。根据《美国发明法案》,作者自首次公开披露之日起保留一年的宽限期,可在此期间提交专利申请。

致潜在申请人的说明: 本公开仓库及其完整的 Git 历史记录可作为先前技术的证据。在本仓库发布后提交、涵盖实质上相似方法的任何专利申请,都可能依据 35 U.S.C. 102(a) 被判无效。

延伸阅读

闪电收费站上的幻影收费亭 — 关于我们如何将 AI API 的货币化过程本身变现,然后退居幕后,全篇故事。

Software Factory 意图词汇表(DPYC Agent)

cypher-mcp 是 DPYC Software Factory 的图谱基础层:其 Agent(Porter = Service Desk、Journeyman = Engineering)会在此读取和写入机构记忆图谱,但绝不会持有原始 Cypher 工具。它们调用一组固定的、由操作员编写并带参数的模板——写入模板和读取模板——这些模板以类型化的 cypher_<key> 工具形式发布。

  • 写入模板用于记录记忆:record_triage、note_rejection、 route_rejection(防止乒乓式往返:将拒绝反馈给其来源)、record_scope、 link_root_cause、link_pr、assert_rationale、bind_rationale_to_symbol、 anchor_symbol(编辑后用于 grep 限定范围的锚点)、upsert_capability、assert_invariant、 upsert_patent_element、register_service 等。
  • 读取模板是意图服务的正向映射——RAG 接口,只需一次查询即可确定“哪个服务处理 X/这项能力为何存在”,而不必 grep 十二个仓库:which_service_handles、explain_capability、what_realizes_capability、 capability_patents、context_pack(用于 grep 限定范围的旗舰工具包)、list_capabilities、 list_invariants、list_patent_elements、routing_history、recent_activity、 factory_resolution_stats 及其来源信息读取工具。

assert_rationale 将 provenance:'llm-inferred-unverified' 硬编码为 Cypher 字面量,因此 Agent 密钥绝不可能声明权威来源信息。

先不限量,之后再设限。 初始化只会编写并发布这些工具;随后它们会以未定价状态出现在 Pricing Studio 中。为它们定价后,任何有资金的赞助者都能调用——这两个 Agent 和其他赞助者一样,只会购买 api_sats。需要限制只有这两个 Agent 可以调用时,可在 Pricing Studio 会话中,为每个工具添加 json_expression 允许列表,按 patron.npub 筛选(使用 Constraint Engine,而非定制 ACL):列出的 npub 可以调用,其他人默认拒绝;运行时可修改,无需部署。还可通过余额控制使用范围——给 Porter 少量资金,给 Journeyman 多一些;资金耗尽的 Agent 将停止写入图谱,但仍会在 GitHub 上进行分类处理。

初始化(由操作员执行,可重复运行且幂等)。 scripts/seed_factory_vocabulary.py 会编写并发布这些词汇。--dry-run 无需服务器或 nsec,还会打印精确的允许列表,供你在限制访问时复制到 Pricing Studio:

python scripts/seed_factory_vocabulary.py --dry-run \
    --porter-npub npub1ymg... --journeyman-npub npub1m5q...

对线上 operator 执行应用(从 OPERATOR_NSEC 读取或通过隐藏提示输入的 operator nsec,会临时用于为每个请求签名(NIP-98),绝不会记录日志或写入磁盘)。添加 --gate(并提供两个 npub),还可通过编程方式应用按 npub 设置的允许列表,而无需在 Pricing Studio 中操作:

python scripts/seed_factory_vocabulary.py \
    --url https://cypher-mcp.fastmcp.app/mcp --operator-npub npub1fuhq0... \
    --porter-npub npub1ymg... --journeyman-npub npub1m5q...

这些词汇本身位于 scripts/factory_vocabulary.py(仅含数据,不执行 I/O),并由 tests/test_factory_vocabulary.py 覆盖。流水线接线(Agent 对这些工具签名并调用)、NIP-05 发布和资金供给均属于该基础层之后的工作。

商标

DPYC™、Tollbooth DPYC™ 和 Don't Pester Your Customer™ 是 Lonnie VanZandt 的商标。有关使用指南,请参阅 dpyc-community 仓库中的 TRADEMARKS.md。

许可证

Apache License 2.0 — 详情请参阅 LICENSE 和 NOTICE。


因为说到底,收费站从来就不是终点。它始终只是旅程的开始。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。