EMET
概览
作者提供的说明(英文原文)
ISO 9001 7.5.3 / ISO 13485 4.2.5 document-control memory for AI agents. Nothing is deleted.
PopNx MCP 的三大支柱
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
- 用户评价i暂无评价评价功能将在后续阶段与账户功能一起开放
- 我们的基础检查i1 项中通过 1 项依据公开信息检查;尚未扫描代码
- 使用情况i非常新↓ 309/周 · ★ –
它能帮你做什么
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
- 连接方式: 在你的电脑上运行
- 传输方式: stdio
- 分类: 文档、表格与办公
- 你需要填写:MONGODB_URI
安装
选择你使用的 AI 应用,然后复制设置。
安装之前
- 基础检查:1 项中通过 1 项
- 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
- 需要你自己填写:
MONGODB_URI
标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
- npm已安装 Node.js(用于 npx 命令)
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"emet": {
"command": "npx",
"args": [
"-y",
"@dreamforgestudiollc/emet"
],
"env": {
"MONGODB_URI": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add emet --env MONGODB_URI=your-value -- npx -y @dreamforgestudiollc/emet运行前请先填写空着的值。
或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"emet": {
"command": "npx",
"args": [
"-y",
"@dreamforgestudiollc/emet"
],
"env": {
"MONGODB_URI": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"emet": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@dreamforgestudiollc/emet"
],
"env": {
"MONGODB_URI": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
需要你填写的值
- MongoDB connection string for the memory store.
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它能做什么
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
基础检查i
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日
- ✓ 通过
作者与仓库一致
注册名称已通过 GitHub 账户 dreamforgestudiollc 验证,该账户拥有此仓库
- … 尚未检查
仍在维护
我们还没有从 GitHub 读取这个仓库
- … 尚未检查
有许可证
我们还没有从 GitHub 读取这个仓库
- – 不适用
端点有响应
它在你的电脑上运行,没有互联网端点
- – 不适用
使用 OAuth 登录
在你的电脑上运行,改用本地设置
- … 尚未检查
工具描述中没有隐藏指令
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与“文档、表格与办公”中的其他服务器比较i
- 星标数多于此分类中其他 3603 个服务器的 0%
- 发布到注册中心的时间比此分类中其他 3603 个服务器的 84% 更新
- 基础检查结果等于或优于此分类中其他 3603 个服务器的 100%
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
常见问题
EMET 安全吗?
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
它需要哪些密钥或代码?
你需要填写:MONGODB_URI
它在我的电脑上运行还是在云端?
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
它还在维护吗?
GitHub 仓库最后更新于–,最新版本(0.3.3)于5天前进入注册中心。
哪些应用可以使用它?
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
有什么可以替代它?
同一分类中有:Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
替代选择
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Excel MCP Server
Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.
MCP Server for Excel
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
作者的 README
打开 README
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
EMET
EMET is an MCP (Model Context Protocol) memory server, persistent shared memory for AI agents, bot teams and chats.
אמת — Hebrew for truth. Also Enduring Memory & Epistemic Tiers.
Website: https://dreamforgestudiollc.github.io/EMET/
See also: CHANGELOG · CONTRIBUTING · SECURITY · Charter · Feature map · Development practices
What it does
- Layered memory. Six layers — identity, semantic, episodic, procedural, meta, and working — hold curated claims, split by what kind of thing an entry is.
- Verified writes. Every write is read back and compared before it is reported as saved.
- Word-for-word transcript tier. A separate tier stores the conversation as it was written, so a summary cannot overwrite the record it came from.
- stdio and remote HTTP with OAuth. The same server runs locally over stdio, and remotely over HTTP with OAuth. The transport changes. The store does not.
- MongoDB. Atlas, or MongoDB you run yourself. A one-machine trial can use MongoDB 6 or newer. Only
semantic_recallneeds Atlas. - Golem Expertise Module (GEM) socket. Add-on behavior ships as GEMs, seated at startup and checked by
gem-checkagainst the GEM standard ingem-library/. A GEM ranks below the core floor and below the user's current word, and cannot remove a protected floor line. Two work-in-progress examples ship bundled and stay off unless you ask: Neurendipity (neurodivergent engagement and autistic burnout support; support only, not counseling or treatment;EMET_ACTIVE_GEMS=neurendipity) and Lean Six Sigma (DMAIC and DMADV guidance, templates, and client-side calculators;EMET_ACTIVE_GEMS=lean-six-sigma). Fieldnote stays in the tree as a developer case-study of a runed GEM. It is not a user-facing third GEM, and it is off by default. - Bot-team backup (optional). Off unless the first-run interview records yes. Yes is the recommended choice. The recipe and the recovery template ship as the bundled bot-team-backup GEM. EMET does not copy prompts or settings itself, and secret values are never stored.
- Client-side GEM execution. A GEM may declare a tool. EMET does not run that computation. EMET verifies the record, not the computation. The client runs the tool, and what is written back is checked the same way as any other write.
- Released flag. A GEM is seated only when its released flag is the boolean true. Any other value is refused. A missing flag is refused except for a legacy manifest pinned by id, version, and file digests.
- Per-client attribution and approvals. Every write is attributed to the client that made it. A new client is read-limited until it is approved. The approval is recorded.
- Error codes and problem reports. Every error carries a stable
EMET- -code. An operational error log keeps 10,000 entries or 90 days, plus daily summaries. The owner-onlyemet_error_reportreturns the report and an email draft that you send yourself. See Reporting a problem. - verify-emet and the feature map.
npm run verifyrunsscripts/verify-emet.mjsfrom a checkout. It starts EMET in a temporary directory on the in-memory test database, with no.env, and drives every registered tool. A tool that needs a service a plain install does not have is reported as a gap. A run whose only problems are gaps exits 3. A failed tool exits 1. The map is docs/features/README.md. - MIT. Version 0.3.3. EMET is still 0.x: stored document shapes may change before 1.0. Pin a version if you depend on them.
The store has one owner, and other people can join only through the optional Guest (read-only) and Member (read and write) access, both off by default.
Document control (ISO 9001 7.5.3 / ISO 13485 4.2.5)
EMET is built for document control in environments that work under ISO 9001 and ISO 13485. It supports that work; it holds no certification and claims no conformity. An organization that uses it stays responsible for its own quality system, including validating EMET for its intended use.
- No delete, on any store, by design. No tool removes a memory entry, a document or a transcript. The database role EMET runs under is not granted remove on the record either.
- Corrections are made by adding. A memory entry is superseded by a revision that stands alone. A document is revised or retired. A transcript part is revised. Events are never rewritten.
- Retired means obsolete, not gone.
retire_docmarks a document obsolete and keeps its id, content, version and digest.read_docstill returns it, flagged retired, with the reason. - Prior versions are retained. Every document write archives the copy it replaces, and
read_doc_historyreads any retained revision back, checked against its stored digest. - Records are superseded whole, never patched. The handoff and any other record document cannot be patched. A new revision is written in full and names the version it supersedes.
- Templates are controlled documents. Base templates ship with the release, and the shipped copy governs. Every templated write is checked against its template, and a write that fails is kept and marked for review, never silently accepted or discarded.
- A test holds the line.
write-path.test.jsfails if anything insrc/removes from a layer, document or transcript collection, andatlas-role.test.jsfails if the database role grants remove.
30-second start
- Guided setup: docs/GUIDED-SETUP.md — never deployed anything. Your assistant installs, configures, deploys, and verifies. You sign in when asked and paste the connector URL.
- Setup: docs/SETUP.md — the manual walkthrough: MongoDB, both transports, and the first-run interview.
- Deploy: docs/DEPLOY.md — remote HTTP with OAuth, so a phone, a browser, or another vendor's agent reaches the same store.
npm lags the repo.
npx -y @dreamforgestudiollc/emetinstalls 0.3.2 until 0.3.3 is
published. For 0.3.3, clone this repo and run
npm ci && npm start, or deploy the
repository itself.
Status: 0.x. The stored document shapes are not frozen yet. Breaking changes to the
schema may land before 1.0. Pin a version if you depend on it.
Set `EMET_SOURCE_TAGS` before you let more than one host or bot write. The source-tag
guards (unregistered tags refused on the main records, and on another bot's
bots/folder)
are off unless `EMET_SOURCE_TAGS` is set. With it unset, any caller can write under any
tag. See
.env.exampleand docs/DEPLOY.md.
Install as a Cursor / Grok Bot plugin
EMET ships a plugin for Cursor and Grok Bot (this repo's .cursor-plugin/plugin.json and mcp.json). The Cursor Marketplace listing is submitted and pending review. The plugin does not host memory for you: it connects to your own EMET server, so your records stay in your MongoDB.
- Deploy EMET remotely: docs/DEPLOY.md. Set
PUBLIC_URLand a strongEMET_OAUTH_PASSPHRASE. Checkhttps:// /healthreturns{"ok":true,...}. - Install the EMET plugin and set the variable
EMET_URLtohttps:// /mcp. - Connect. The OAuth sign-in opens EMET's passphrase page; enter your passphrase once per device.
- Verify: call
emet_statuswith{"probe": true}(it writes, reads back and removes a row from_emet_verifyonly), then save withsave_to_layerandrecallit from another client.
The plugin also ships an emet-memory skill that tells the agent when to recall, save and close a session.
Shared memory across hosts
EMET stores agent memory in MongoDB (Atlas or self-hosted) across six layers, keeps a separate word-for-word transcript tier, and verifies every write by reading it back. It runs as a local stdio server and as a remote HTTP server from the same source, so it works as a bridge: AI models on several hosts — desktop, CLI, browser, phone, another vendor's agent — read and write one shared memory, and the work, checks, and decisions one leaves behind are there for the next. That includes Grok Bot teams and single-session Grok chats connected to the same server: what the bots save is there for a fresh Grok chat to find once it initializes, and the reverse. To connect a single-session chat (a Grok project, or any chat host that takes a remote MCP connector and supports its OAuth sign-in), add your deployed server's URL, https:// /mcp, as a remote MCP connector there and complete the sign-in with the passphrase you set (EMET_OAUTH_PASSPHRASE; see Connecting clients). A connector that only takes a fixed header or key will not work. Then put the instruction block from docs/BOOTSTRAP.md in the project instructions: the chat reaches for that memory most reliably, unprompted from the first turn, with the block there, or, as a fallback where there is no such field, with it pasted as the first message. The store has one owner, and other people can join only through the optional Guest (read-only) and Member (read and write) access, both off by default.
Two ways in
A session that has not initialized can read everything and can write only a new drop (drops/ - .md): its items, wrap-up and handoff. A session with a registered source and the full startup has full access. Every initialized session sees unhandled drops first. A board edit is refused only for a drop that was listed at that session's boot. New drops are capped at 20 per New York day, in one bucket: the whole local process on stdio, one shared visitor bucket for HTTP with no signed-in client, the source tag bound at approval when there is one, or that OAuth client otherwise. A source the caller types does not move the bucket. Drops are never deleted.
Editing working state
The server provisions a blank board at setup. No session can write the board. It is edited with patch_doc and a reason; an added row names its origin. Once any working document exists, it is edited, not rewritten. A change that leaves a document under half the size it had when this session first touched it, or under half of its largest size in the last 24 hours, is refused. retire_doc refuses a working document. rename_doc issues a new id and marks the old id retired; the text stays readable and stays in the list. restore_doc is the one whole-document recovery, for an owner-listed tag, and only a stored conforming revision whose digest matches.
The name
EMET is אמת — Hebrew for *truth*. It is also an acronym for what the server does: Enduring Memory & Epistemic Tiers.
The choice is not decoration. In the golem legend the word *emet* is inscribed to animate the body, and erasing its first letter leaves מת — *met*, dead. One character is the whole difference.
That is why the verification layer is called `aleph`. Every write in EMET is read back and compared before it is reported as saved. That read-back is the aleph: a memory system without it still returns answers, still looks healthy, and is quietly a corpse — confidently serving things it never actually stored. Aleph is also the *first* letter, which matches the order the protocol insists on: verify before retrying, verify the premise before applying the remedy, read back before trusting.
The same image explains what setup is for. A golem is inert until the word is wri
只显示了开头部分;其余内容请在仓库中阅读