Borrowing it
Nothing to install: this file belongs to ErikaAlk/jlceda-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/ErikaAlk/jlceda-mcp/main/CLAUDE.mdgit clone --depth 1 https://github.com/ErikaAlk/jlceda-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/erikaalk/jlceda-mcp/claude-md)<a href="https://agentmods.dev/instructions/erikaalk/jlceda-mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/erikaalk/jlceda-mcp/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/erikaalk/jlceda-mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/erikaalk/jlceda-mcp/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.02480 | $0.02480 |
| Opus 5 | $0.01240 | $0.01240 |
| Sonnet 5 | $0.00496 | $0.00496 |
| Haiku 4.5 | $0.00248 | $0.00248 |
Grade A, and why
jlceda-mcp CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 166 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md — jlceda-mcp
新会话进来先读这份,再读 README.md(那份是给人看的用法)。 这份是给 agent 看的:架构、不许破坏的不变量、会浪费你半小时的坑。
两个组件
| 目录 | 是什么 | 跑在哪 |
|---|---|---|
src/ |
MCP server + 内嵌 broker | Claude Code 起的 node 进程 |
jlc-bridge/ |
嘉立创EDA 扩展 | EDA 渲染进程的沙箱里 |
Claude Code ⇄(stdio) mcp-server ⇄(ws://127.0.0.1:18800/ws/bridge) JLC MCP 扩展 ⇄ EDA
└─ broker 就长在这里
⚠ 不变量 1:EDA 每次调用扩展都会把整个 bundle 重新求值一遍
这是这个项目最反直觉的一条,旧版三个 bug 里有两个是它造成的。
从 EDA 安装目录 assets/pro-api/*/api.js 的 Ta() 逆出来的事实:
菜单点击走 extensionApi.callFunctionInExtension → Ta(uuid, fnName),而 Ta 会
- 重新从 IndexedDB 读出 entry 文件的源码
- 在末尾拼一段
if (typeof fnName === 'function') { fnName(...) } else if (edaEsbuildExportName...) - 包进
with (sandbox) { ... },用AsyncFunction整个重新 eval
也就是说:
模块级的
let/ 闭包变量,在两次菜单点击之间不保留。 启动激活、点「状态」、点「暂停」,每一次都是一个全新的模块实例。
能跨越重新求值活下来的只有三样:
- EDA 按 ID 托管的资源:
sys_Timer的定时器、sys_WebSocket的连接、sys_Storage的配置 globalThis上挂的东西(沙箱没拦globalThis,实测可读可写)- 已经跑起来的闭包(第一次求值时注册的
onMessage回调会一直用那一版代码)
所以:所有跨调用的状态一律挂在 hub.ts 的 globalThis.__JLC_BRIDGE_HUB_V2__ 上,
每个导出函数第一件事都是 boot()(幂等)。别写 let connected = false 这种。
装了新版扩展之后,还活着的 onMessage 闭包是上一版代码的。
link.ts 靠 hub.codeBuild !== CODE_BUILD 发现这件事并推倒重连,让新代码接管。别删。
⚠ 不变量 2:sys_WebSocket 没有 close / error 回调
register(id, url, onMessage, onConnected) 就这四个参数。对端死了扩展毫无感知。
推论:
- 判活只能靠「最近一次收到数据的时间」(
hub.lastRxAt)。broker 每 3 秒 ping 一次 就是为了喂这个判据;扩展收到 ping 回 pong。超过RX_TIMEOUT_MS没动静就判死重连。 - 连不上时同样一个回调都不给:对端不在时
new WebSocket(...)照样构造成功, 失败是异步的,onConnected永远不来。所以connecting必须有超时 (CONNECT_TIMEOUT_MS),超了就hardReset重来。 少了这条,phase 会永远停在connecting、心跳再也不会重新register, 表现就是用户报的「先开 EDA、后开 Claude Code,必须手动点一次重连」。 所有重连判断集中在advance()一处,别再散出去。 - 连上之后扩展要主动 ping(
KEEPALIVE_MS)。往一个已关闭的 socket 上send会抛, 这是对端消失时唯一能快速察觉的信号;没有它就得干等 11 秒的接收超时。 register()遇到同 ID 且 readyState 是 CONNECTING 或 OPEN 的连接时,会 立刻同步调用onConnected然后返回:注意 CONNECTING 也算。 所以「onConnected被调了」≠「连上了」。phase 从connecting翻到online必须发生在收到第一帧的时候,不能在onConnected里。- 反过来,这个复用语义让
ensureLink()天然幂等:已经连着时再调就是个空操作。 这正是「每次点菜单都调一遍」能成立的原因。
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 166 lines · 2,480 tokens per session scan A 51ab99bc6f70
jlceda-mcp CLAUDE.md is an instructions file published in the GitHub repository ErikaAlk/jlceda-mcp (1 stars, last pushed 15d ago), licensed MIT. It adds 2,480 tokens to every session, about $0.0124 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
codex AGENTS.md
AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
deepseek-harness AGENTS.md
AGENTS.md instructions for deepseek-ai/deepseek-harness, covering agents.md, pre-stable apis and released session data, repository layout, commands and host sandbox failures.