mcpField
C
CKB Pulse

CKB Pulse

远程服务
pulse-lab.lusocryptolabs.com其他41 天前更新

关于 CKB Pulse

CKB Pulse 展示 Nervos CKB 生态的公开 GitHub 活动,面向关注项目、开发者和 DAO 资助进展的人群。它结合实时活动、历史统计、链上数据与 Fiber 网络地图,并提供摘要、订阅源和徽章。

主要功能

  1. 01可视化实时 GitHub 活动
  2. 02查看项目与开发者历史
  3. 03呈现链上合约使用情况
  4. 04映射 Fiber 支付网络
  5. 05提供摘要、Atom 订阅源和徽章

适用场景

  1. 01追踪 CKB 项目近期开发动态
  2. 02查看开发者及项目的长期活动
  3. 03了解受资助项目的进展
  4. 04查看 Fiber 网络节点和通道

配置

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

服务地址https://pulse-lab.lusocryptolabs.com/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 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

CKB Pulse

以 3D 方式呈现 CKB 生态的 GitHub 实时动态。

每个项目都是一个方块,有人参与项目时就会亮起。可查看实时动态、过去 24 小时或过去 7 天的数据。支持 English、中文和 Português。顶部的计数器可打开同一内容的项目和人员列表,方便使用键盘和屏幕阅读器浏览。

https://pulse-lab.lusocryptolabs.com

运行

npm install
GITHUB_TOKEN=<read-only token> node server.mjs

需要 Node 20 或更高版本。依赖项只有两个:resvg 用于绘制分享图片,web-push 用于发送浏览器通知(首次启动时会在 DATA_DIR/vapid.json 中生成密钥)。PORT 默认为 8080,DATA_DIR 默认为 ./data。PUBLIC_URL 是摘要、动态源和 Telegram 中显示的地址(未设置时,则使用收到各请求的地址)。

测试

npm test

测试涵盖规则(哪些活动算作 CKB 工作、清单、突发上限、Agent 和计划任务)、各语言文案、分享卡片、徽章、摘要页面和动态源、访问量、长期历史记录,以及不使用长破折号。CI 会在每次推送时运行这些测试。

服务器运行期间,GET /health 会返回 200;如果 10 分钟内没有组织动态源响应,collector.ok 就会变为 false。该接口还会包含今天的访问量。

访问量

通过 GET /api/visits(30 天)和 DATA_DIR/visits.json(90 天),可查看页面、Fiber 地图、摘要、动态源和徽章每天的页面浏览量和访客数。不使用 Cookie,也不需要账户:访客标识是当天的盐、地址和浏览器生成的哈希;一天结束后会删除盐和哈希,只保留计数。运行时间检查、爬虫、链接预览、脚本和无头浏览器会根据其 User-Agent 单独计为 bots:2026-10-26,它们产生了该页面 1997 次浏览,而页面脚本被获取了 26 次。

追踪范围

  • config.mjs 中的组织和账户,每分钟通过 ETag 轮询。逐一读取账户的代码仓库,因为账户自己的动态源只会列出该账户的活动。
  • GitHub 的事件 API 会延迟 30 秒到数小时,因此本页面也无法更快显示。
  • 它有时也会停止发送推送事件:从 2026-10-30 约 11:00 UTC 起,连续两天没有任何组织动态源包含推送事件,但拉取请求和提交仍在持续。因此,每 15 分钟也会读取过去 14 天内有活动的每个代码仓库的主分支提交。若某个提交在 45 分钟后仍未随推送事件出现,就将其视为作者的一次推送(同一代码仓库的新提交会相互等待,并合并计数);之后才到达的、针对同一提交的推送事件则会被丢弃。
  • 构建者:依赖 CKB 库(CCC、Lumos、Spore、RGB++、JoyID、JS、Go 和 Java SDK、ckb-std、ckb-types、ckb-testtool 等,在 config.mjs 中列出)的公开代码仓库;在任意源文件中调用 Fiber 节点 RPC 字段的代码仓库;以及带有 CKB 主题的代码仓库。每 6 小时搜索一次。
  • CKB Community Fund DAO 资助的项目,在 config.mjs 中连同其提案一起列出,不论发现机制找到什么:其中有些项目没有 CKB 主题,代码搜索也无法找到依赖项。
  • 仅包含公开代码仓库。代码仓库转为私有后,在出现首个私有事件时就会从页面移除,最迟 6 小时内移除,其已存储的活动仍会计入。30 天内没有人工活动的所有者会被隐藏。
  • 自动化活动显示为灰色火花,不计入数量和奖牌:机器人;AI Agent 在自己的分支上自行推送、创建分支和提议的活动(claude/、codex/、copilot/、cursor/、devin/,以及 Claude Code 云端的 ccr- 分支),但合并其工作仍会计入;以及某个账户在过去 30 天中的 15 天或以上向同一项目推送的提交标题。
  • 每周检查一次在已追踪代码仓库中活动的人员,查看他们是否有自己的 CKB 项目;任何人也都可以在页面上推荐一个组织或个人。当 GitHub 显示其过去 30 天内有公开的 CKB 活动(主题、名称、CKB 依赖项或对 Fiber 节点的调用)时,即会将其纳入。config.mjs 中的 BLOCKED 会将某个所有者排除在外。
  • 每天一次,通过每个已追踪代码仓库自身的事件列表补足本周的活动,因为组织动态源只保留最近 300 条事件。

历史记录

事件 API 最多可追溯 90 天。月份和年份数据来自 GitHub 的贡献者统计:每周、每位作者在所有已知 CKB 代码仓库中的提交数,包括近期不活跃的代码仓库;每周刷新至 DATA_DIR/history.json。据此统计过去两年的每月活跃开发者(当月有提交)、新开发者(首次向这些代码仓库提交的开发者)和提交数,以及每个项目的月度提交数。非个人作者(机器人、actions-user、以 claude 或 cursoragent 名义提交的 AI Agent,在 config.mjs 中列出)会被排除在外,实时统计也同样如此。

每个读取过的代码仓库即使停止活跃或从页面移除,仍会继续计入。通过旧名称(重命名或迁移前的名称)请求的代码仓库只会计入一次,使用新名称:GitHub 对两种名称返回相同的数据。本页面开始运行前就已停止的项目仍未纳入,因此较早月份的数据偏低,增长看起来也比实际更大。

链上数据

每天一次:CKB 区块浏览器记录的、带有源代码仓库的每个脚本(其代码仓库也会随之纳入追踪),以及项目在已提交的 ckb-cli 迁移中记录的主网合约。通过公开 CKB 节点(CKB_RPC,默认值为 mainnet.ckb.dev)测量每个脚本所使用的活跃 Cell 中的 CKB 数量及其最近使用时间。数据显示在每个项目的卡片中,并带有场景标签。

Fiber

/fiber 映射主网和测试网上的 Fiber 支付网络。节点、公开通道及其更新来自你自己的 Fiber 节点,该节点仅监听(没有通道、没有资金,且关闭自动接受):将 FIBER_MAINNET_RPC 和 FIBER_TESTNET_RPC 设置为它的 RPC 地址。通道的开启和关闭则逐块从链上获取:Fiber 的 FundingLock 下出现并被花费的单元,因此私有通道也会计入(CKB_RPC、CKB_TESTNET_RPC)。支付在节点间加密传输,无法查看。

Gossip 信息会逐渐补全。2026-10-10 在测试网上测得:一个新的监听节点在 2 分钟后有 317 条通道,20 分钟后,当这些节点再次公告时又增加了 537 条(这波公告携带的更新已有 41 分钟)。在这波公告之外,通道更新会在其时间戳之后 14 到 62 秒到达该节点(90 分钟内共 6 条)。通道的开启和关闭来自链上,这是最快的路径。

页面绘制网络的方式与 LSP 实时视图绘制单个 LSP 的方式相同:每个公告的节点是一个单元(一个枢纽,有 8 个或更多邻居,中心由方块组成),每对有通道的节点之间是一条根线,CKB 越多,根线越粗。只有真实变化才会让图形移动:新通道会长出根线,离开地图的通道会枯萎,生命迹象会点亮根线并让其两端发出涟漪,新节点会膨胀出现。“Simple”会保持地图简洁;当页面无法每秒保持 20 次绘制时,会自动切换到该模式(在测试网上使用 Chrome 的 CPU 限速测得:每秒 30 次绘制可承受高达 6 倍减速,20 倍减速时切换到 Simple)。

新项目与关注

过去 14 天内创建且被关注的公开仓库是新项目:它会列在 New 下,并向打开的页面公告一次。Fork 不算。对于关注组织之外的仓库,其名称、描述或主题中必须包含链相关词语。“ckb”单独出现并不能说明仓库与 CKB 有关(它也可能指中库尔德语或 Codebase Knowledge Base 格式),fiber-network 主题也不行,因为光纤项目也会使用这个主题。

访客可在自己的设备上关注项目和人员,无需账户。允许浏览器通知后,服务器会在关注对象有动态时发送一条通知(每个项目每 10 分钟最多一次),也会在收到请求时发送新项目通知。iPhone 上需要先将页面添加到主屏幕。

摘要、Feed 和徽章

/digest?p=day|week|month 以纯页面形式展示该时段的精选内容,提供三种语言(lang=),方便阅读、转发或打印,并带有专属链接预览。每周一 08:00 UTC,该周的精选内容会保存到 DATA_DIR/digests.json(保存一年;页面运行满一周后就会生成第一份),而 /feed.xml 是一个 Atom Feed,供 Feed 阅读器订阅每周精选内容和新项目。设置 TELEGRAM_BOT_TOKEN、TELEGRAM_CHAT_ID 和 PUBLIC_URL 后,每周摘要也会以 DIGEST_LANG(en)发布到该聊天中,图片在前。

徽章以小型 SVG 展示过去 7 天的数据,可用于 README 或网站;安静或未关注时显示为灰色,缓存 10 分钟:

[![CKB Pulse](https://pulse-lab.lusocryptolabs.com/badge/repo.svg?name=owner/repo)](https://pulse-lab.lusocryptolabs.com/?repo=owner/repo)
[![CKB Pulse](https://pulse-lab.lusocryptolabs.com/badge/person.svg?login=someone)](https://pulse-lab.lusocryptolabs.com/?person=someone)
[![CKB Pulse](https://pulse-lab.lusocryptolabs.com/badge/ckb.svg)](https://pulse-lab.lusocryptolabs.com/)

页面上每个项目和人员的卡片都会显示其徽章及可复制的 Markdown。

获资助项目

/funded 显示 CKB Community Fund DAO 资助的项目(config.mjs 中的 FUNDED):每个仓库主分支自投票以来每周的提交数来自 GitHub 的统计数据,旁边显示团队在 Nervos Talk 提案帖子中的动态;数据每天读取一次并写入 DATA_DIR/funded.json。根据帖子的开头文字,将其计为里程碑报告或完成报告。若某项资助连续 30 天没有 GitHub 工作且没有报告,则会显示为暂停,直至发布完成报告。/api/funded 会以 JSON 返回相同内容。

场景

独立构建者是规模最大的群组,按语言排列:拥有 4 个或更多仓库的每种语言都有自己的小网格和标签,其余语言共用一个网格。首次访问时,镜头会飞向项目和本周人物,然后停下来;触摸任意位置都会结束飞行。

在手机上,项目默认显示为条形图:每个项目占一行,显示每个人的工作量,条形长度与工作量的平方根成正比,颜色表示工作类型,末端显示贡献者的头像。随着工作量增加,各行会滑动到新位置;手指按在列表上时,列表会保持静止。上方的开关可切换场景视图,切换选择会保存在设备上。显示条形图时不会绘制场景。

在场景视图中,手机会将画面框入面板留出的空间;面板是底部的一张卡片:拖动卡片栏,可将它展开到预览、半屏或顶部;超过半屏后,动态信息栏会移到一旁。时间轴和卡片会避开主屏幕指示条。

24 小时和 7 天视图会一次显示整个时段,播放按钮可重新播放。启用筛选器后,计数会反映筛选结果(“已筛选,来自 247 条更新”)。?ui=next 会启用试用中的更整洁布局(?ui=old 可关闭;选择会保存在浏览器中):所有屏幕均显示条形图,筛选器收在按钮后面;只有当时间轴上方的条带显示了面板中没有的信息时,才会显示该条带;README 徽章收在“面向开发者”下方。

外观

每个页面都共用 public/theme.css,采用 Cellula 页面的视觉风格:文字使用 Space Grotesk,数字和小标签使用 JetBrains Mono,暖黑底色搭配青柠绿。字体由 public/vendor/fonts 提供(拉丁文字子集,采用 SIL Open Font License,许可文本与字体放在一起),因此访问页面时无需向任何字体托管服务请求资源;中文使用系统字体。阅读页面(/funded、/digest、/use)开头都有一个小标签、一个重点词语高亮的大标题,以及标题下的一行文字。

菜单

每个页面(实时页面、/fiber、/funded、/digest、/use)都使用同一菜单,来自 public/menu.js 和 public/menu.css:浏览(实时、Fiber、资助、本周摘要)、持续关注(公告、动态)、面向构建者(添加项目、徽章、AI Agent 和 API),以及关于本项目。宽屏上,三个视图(实时、Fiber、资助)也会与名称并排显示。可打开实时页面特定位置的链接:/?tab=new、/?tab=notices、/?tab=suggest、/?about=1。

分享

指向某个时段精选内容(?h=day|week|month)、项目(?repo=owner/name)或人物(?person=login)的链接会直接打开对应内容,其预览图由服务端绘制,尺寸为 1200 x 630。/funded(所有资助项目,或使用 ?g=<topic> 查看单个项目)、/fiber?net=mainnet|testnet(真实网络图)和 /use 也一样;最近 14 天内创建的项目会带有“新加入 CKB”飘带。每张图片的地址都带有其绘制内容的标记(v=),每个分享链接都带有日期(d=),因为 X 和 Telegram 会按地址保存预览;只有处于进行中或已交付状态的资助项目,图片才会标明其状态。卡片使用页面中的字体,字体来自 fonts/。奖章不会因短时间内集中更新而增加:每人、每个项目、每小时最多计入 10 条更新,打开分支则永远不会计入。

API

  • GET /api/state:仓库、精选内容和 7 天的历史记录;每分钟最多构建一次,并附带 ETag(如果内容没有变化,可发送 If-None-Match 以获取 304 响应)
  • GET /api/repo?name=owner/repo:单个仓库,30 天;名称不区分大小写,响应会保留原有拼写
  • GET /api/stream:新事件,Server-Sent Events
  • GET /og/highlights.png?p=, /og/repo.png?name=, /og/person.png?login=,每个接口均支持 lang=en|pt|zh:分享图片
  • GET /api/push/key、POST /api/push,参数为 {sub, repos, people, news, lang},以及 POST /api/push/off,参数为 {endpoint}:浏览器通知
  • GET /api/fiber?net=mainnet|testnet:Fiber 地图、链上开放的通道,以及一周内的开启和关闭记录
  • GET /api/fiber/stream:实时推送 Fiber 变更,Server-Sent Events
  • GET /version.json:服务器当前运行的构建版本,用于新版本通知
  • POST /api/propose,参数为 {"login"},然后调用 GET /api/propose?id=:获取一条提议及其检查结果
  • GET /digest?p=day|week|month&lang=:以页面形式查看精选内容;GET /feed.xml?lang=:Atom 订阅源
  • GET /badge/repo.svg?name=, /badge/person.svg?login=, /badge/ckb.svg,每个接口均支持 lang=:徽章
  • GET /api/visits:每日浏览量和访客数,30 天
  • POST /mcp:为 AI Agent 提供相同数据,详见下文
  • GET /use?lang=:以页面形式介绍 Pulse 的全部功能,供用户查看;该页面链接在菜单和其他页面的页脚中;GET /llms.txt:为 AI Agent 提供相同内容

MCP

Pulse 也是一个位于 /mcp 的 Model Context Protocol 服务(Streamable HTTP,无会话,无需安装):

claude mcp add --transport http ckb-pulse https://pulse-lab.lusocryptolabs.com/mcp

在浏览器中打开 /mcp 时,会跳转到 /use#ai,其中介绍了如何连接。

它已列入 MCP Registry,名称为 io.github.LusoCryptoLabs/ckb-pulse(server.json,使用 mcp-publisher publish 发布)。

其工具只读取 Pulse 已存储的数据(不调用 GitHub),仅涉及人员,时间范围为最近 30 天:

  • overview:按日、周或月查看更新、人员和项目,了解最活跃的对象以及新加入 Pulse 的项目
  • find_projects:按关键词和领域(ckb、fiber、dob/spore、rgb++、ccc、nervos)查找已关注的项目
  • project:查看单个项目的活动、各月情况、人员和最新更新
  • person:查看某人的项目、这些项目所属的领域和使用的语言,以及他们发布的更新类型
  • who_works_on:查看在某个领域或与关键词匹配的项目中最活跃的人员
  • recent_updates:查看最新更新,可涵盖所有内容,也可限定在某个项目或某个人
  • dao_funded:查看 Community Fund DAO 资助项目,并附上与报告对应的代码
  • trends:查看每月的开发者数量、新增开发者数量和提交次数

另一个生态系统

几乎所有提及“CKB”的内容都位于 config.mjs(组织、搜索、审核关键词、标签)和 public/words.js 中的分组名称里。链上和 Fiber 部分专用于 CKB;如果没有设置相应变量,它们就不会运行。将配置指向另一个生态系统的组织和库,同一个页面就会随之适配。

许可证

MIT。Three.js(MIT)和 d3(ISC)以各自的许可证随附于 public/vendor 中。

评论

支持 Markdown

第一次接触 MCP?

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

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