mcpField
A
ALTWEB Context Loader

ALTWEB Context Loader

本地服务
altweb.software安全02 周前更新

关于 ALTWEB Context Loader

ALTWEB Context Loader 是用于验证 AI Agent 上下文来源的 MCP 服务,面向需要控制提示词、技能和记忆文件来源的用户。它只在签名有效且公钥受信任时加载胶囊,默认拒绝其他内容。

主要功能

  1. 01将 Markdown 编译为独立胶囊
  2. 02可选压缩、加密与签名
  3. 03验证签名及信任密钥
  4. 04拒绝未签名、篡改或不受信任内容
  5. 05提供编译、解码、验证和密钥生成 CLI

适用场景

  1. 01在注入 Agent 上下文前核验来源
  2. 02离线传递可验证的 Markdown 内容
  3. 03管理允许签署上下文的密钥

MCP 相关

altweb-context MCP 服务提供 load_capsule、verify_capsule 和 list_trusted_keys 工具。它仅在胶囊签名有效且签署者公钥位于信任文件中时加载内容。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"software-altweb-altweb-context": {
"command": "npx",
"args": [
"-y",
"altweb-context"
],
"env": {
"ALTWEB_TRUST_FILE": "<ALTWEB_TRUST_FILE>"
}
}
}
}
启动命令npx -y altweb-context
需要配置的环境变量
ALTWEB_TRUST_FILEOverride the local trust file of allowed signer public keys (default: ~/.altweb/trusted-keys.json). A missing or empty trust file refuses every capsule.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmaltweb-context1.1.2

工具

3

收录的工具列表 · 更新于 2 周前

参数类型必填说明
sourcestring是Capsule 来源:.altweb.html 或 .altweb 文件的路径、带 #hash 的 URL、指向独立托管 capsule 的 URL,或原始哈希字符串
passwordstring否加密 capsule 的密码

详细介绍

ALTWEB — 已签名的上下文胶囊

为 AI Agent 提供已签名的上下文胶囊——将 Markdown 编译为独立、可验证、可选加密的制品,并配备一个拒绝未签名或不受信任上下文的 MCP 加载器。注入前先验证。

AI Agent 基于纯文本上下文运行:指令、角色设定、技能、记忆文件。这些内容都没有来源证明——任何能写入这些文件的对象都能污染它们。ALTWEB 为上下文提供完整的保管链,并让加载器拒绝任何缺少保管链的内容:

  • 胶囊 — 将 Markdown 编译为单个 .altweb.html 文件(或 URL):内容经过压缩(deflate),可选加密(AES-256-GCM),也可选签名(ECDSA P-256)。独立运行——可在任何浏览器中打开、离线验证,无需服务器:你交给别人的是文件,而不是数据库。
  • 已验证的上下文加载 — 只有签名有效且签名者的公钥位于你的信任文件中时,altweb-context MCP 服务才会将胶囊加载到你的 Agent 中。未签名、遭篡改或不受信任的胶囊会在加载时被拒绝,并明确说明原因。默认拒绝:空的信任文件会拒绝所有内容,无论是否已签名。
you write MD ──► altweb compile --sign ──► capsule (.altweb.html / URL)
                                              │
agent asks for context ──► altweb-context ──► verify signature + trust
                                              │
                              trusted ──► markdown injected
                          everything else ──► REFUSED (reason)

软件包

软件包说明
altweb命令行工具:altweb compile / decode / verify / keygen(packages/cli)
altweb-contextMCP 服务:load_capsule、verify_capsule、list_trusted_keys(packages/mcp)
@altweb/core无头引擎:内容模型、编解码器、加密、Markdown、清理(打包在两个软件包中;计划发布到 npm)
@altweb/editor类 Notion 编辑器(基于 Novel 构建),支持一键导出胶囊
site/文档站点(Astro + Starlight)

快速入门

这两个工具都已发布到 npm——无需克隆。在源代码检出目录之外运行以下命令(在此仓库内运行时,npm 会解析到本地工作区软件包):

# create your signing identity (deterministic from a passphrase; only the
# public key + fingerprint are stored, in ~/.altweb/identity.json)
npx altweb keygen --save

# write, compile, sign
echo "# My agent's operating notes" > notes.md
npx altweb compile notes.md -o notes.altweb.html --sign

# verify anywhere, offline
npx altweb verify notes.altweb.html

将加载器接入 MCP 客户端(Claude Code 示例):

claude mcp add altweb-context -- npx -y altweb-context

(从源代码运行:执行 npm install && npm run build,然后使用 packages/*/dist/ 下的打包文件。)

从源代码运行

需要 Node.js 20 或更高版本。在仓库根目录中运行:

npm install
npm run build

# Create and save an identity with the locally built CLI
npm run keygen

# Start the editor in development mode
npm run dev

编辑器会显示本地 URL(通常为 http://localhost:5173)。可以通过 node packages/cli/dist/altweb.mjs <command> 调用命令行工具。请勿在检出目录中使用 npx altweb:npm 可能会选择本地工作区软件包,而该软件包的可执行文件要等到构建后才会存在。

文档站点有意作为独立的 npm 项目,而非工作区。要在本地运行:

npm install --prefix site
npm run dev --prefix site

将签名者的完整公钥添加到 ~/.altweb/trusted-keys.json,即可信任该签名者(UNTRUSTED_KEY 拒绝消息会提供可直接使用的条目;短指纹只是便于人识别的标签,并非信任锚点):

{ "keys": [ { "name": "Me", "publicKey": "<base64url SPKI>", "fingerprint": "ab:12:..." } ] }

签名能证明什么——不能证明什么

有效签名可以证明胶囊由谁创作,以及字节内容未被篡改。它不能证明内容安全或属实。信任文件代表你的策略;请保持条目精简。

请选择高强度密码短语。 身份通过 Argon2id 和固定的协议盐从你的密码短语确定性地派生(因此无需存储任何信息即可移植)。内存困难特性会大幅提高大规模字典攻击的成本,但密码短语的熵仍然是身份的根基。请使用至少 16 个字符的 Diceware 风格短语;工具会强制要求达到最低强度。

安全性

解码时会使用 DOMPurify 清理内容;制品带有 CSP;编解码器使用 zod 验证结构。完整说明请参阅 site/ 文档 → 安全模型,其中包括加密胶囊的注意事项(签名覆盖解密后的负载,因此必须在解密后才能完成验证)。

路线图

近期计划,按大致优先级排列:

  • @altweb/core 发布到 npm —— 将引擎作为可安装的库,供程序化使用(CLI 和加载器已将其打包在内)。
  • 硬件支持的身份验证(FIDO2 / passkeys) —— 作为口令身份之外的可选身份类型:私钥存储在安全密钥或安全隔区中,永远无法导出;签名需要用户实际操作。口令身份仍是默认选项——“口令就是密钥对”——硬件密钥则为有此需求的用户增添持有之物这一要素。

致谢

本项目基于出色的开源项目构建:Novel(Apache-2.0)和 Tiptap(MIT)用于编辑器;引擎中使用了 DOMPurify、marked、pako、zod、@noble/curves。详见 NOTICE。

许可证

ALTWEB 采用双重许可:

  • 开源:AGPL-3.0-or-later。 可免费使用、研究、修改和分享——但须履行一项核心义务:如果你修改 ALTWEB 并分发修改后的版本,或将其作为网络服务运行(例如为他人托管 altweb-context),就必须依据 AGPL 发布修改后的源代码。
  • 商业许可:另行协商。 若要在闭源产品中使用 ALTWEB,或将其作为托管服务提供而不公开你的修改,则需要单独的商业许可证。详见 COMMERCIAL.md。

版权所有 © 2026 Daniel C. ȘOIMU。打包的第三方组件仍适用各自的(宽松型)许可证——详见 NOTICE。

评论

支持 Markdown

第一次接触 MCP?

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

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