AI模块化定制服务器

DollhouseMCP是一个开源的AI模块化定制平台,通过六种可组合元素(角色、技能、模板、代理、记忆、组合)实现AI行为、能力和权限的深度定制,支持本地化部署和社区共享。

  • by DollhouseMCP
  • TypeScript
  • 本地部署
  • 46 星标
  • 更新于
在 GitHub 查看 dollhousemcp/mcp-server

使用说明

玩具屋MCP

通过模块化元素进行开源AI定制。

网站 · 浏览收藏 · NPM包 · Discord 的中文翻译是“不和谐”或“纷争”。


运作原理

 CREATE or EDIT                    PORTFOLIO                   ACTIVATE → USE
 ─────────────────────────────────────────────────────────────────────────────

 "Create a skill for            📁 ~/.dollhouse/portfolio/    "Activate the Dollhouse
  writing blog posts"                                              Expert ensemble"
                                 37 starter elements:
 "Edit the code review      ──▶  personas · skills ·       ──▶  Your AI now has
  persona to add security"       templates · agents ·           new behavior,
                                 memories · ensembles           capabilities, and
  persona · skill · template                                    permission policies
  agent · memory · ensemble      + everything you create
                                 + community installs

选择任何路径开始:

  • 激活 你投资组合中的一个启动元素——你的人工智能会立即发生变化
  • 创建 通过用简单的英语描述你想要的东西,任何元素类型(角色、技能、模板、代理、记忆、集合)
  • 编辑 任何现有元素都可以对其进行优化
  • 浏览 这 社区集合 并安装其他用户制作的元素

你的 投资组合 (~/.dollhouse/portfolio/ 在macOS/Linux上, %USERPROFILE%\.dollhouse\portfolio\ 在Windows上)是一个本地文件夹,其中包含所有Dollhouse元素。它搭载了37名首发球员,其中包括 玩具屋专家套房 集成(角色+知识库),您可以激活以获得指导帮助。你在这里创建或安装的所有东西。随时准备分享回社区或同步到GitHub。


快速开始

v2.0.0现已发布。 DollhouseMCP v2是默认版本。 发行说明 | 迁移指南 | 报告问题

DollhouseMCP安装在任何兼容MCP的AI客户端上——Claude Code、Claude Desktop、Cursor、Gemini、Codex和本地LLM。核心元素管理(创建、激活、搜索、浏览)适用于所有平台。高级功能(网守确认流、代理循环执行)已在Claude Code上进行了广泛测试,应适用于支持标准MCP工具调用/响应模式的任何客户端。

交互式设置 (任何平台):

npx @dollhousemcp/mcp-server@latest --web

打开基于浏览器的安装向导,一键安装Claude Desktop、Claude Code、Cursor、VS Code、Codex、Gemini CLI、Windsurf、Cline和LM Studio。检测现有安装,支持自动更新和固定版本。

权限挂钩支持 在安装向导中,当前的故障如下:

平台 设置状态 权限挂钩状态
Claude Code 一键安装 完全原生支持
游标 一键安装 部分原生支持
VS Code 一键安装 部分原生支持
Codex 一键安装 部分原生支持,仅限Bash
Gemini CLI 一键安装 部分原生支持
Windsurf 一键安装 部分原生支持
Cline 一键安装 仅此版本中的MCP安装
LM Studio 一键安装 仅在此版本中安装MCP
Claude Desktop 一键安装 此版本中没有本机权限挂钩路径

克劳德代码 (一个命令):

claude mcp add -s user dollhousemcp -- npx -y @dollhousemcp/mcp-server

克劳德桌面版 (一键安装):

下载 DollhouseMCP桌面扩展 (.mcpb 文件)并双击它。Claude Desktop处理其余部分——不需要终端。

其他平台 --看看 快速入门指南 或者运行上面的交互式设置。

然后开始对话:

"What DollhouseMCP tools do you have available?"
"List all available Dollhouse personas"
"Activate the Dollhouse debug detective persona"

Dollhouse MCP提供所有6种类型的38个Dollhouse元素。用自然语言描述你想要什么。

第一次? 这 公测入职指南 在10分钟内引导您从安装到第一个激活的玩偶屋角色。


玩具屋元素:行为、能力和权限

Dollhouse元素是定制AI的模块化构建块。当您激活Dollhouse组件时,您不仅仅是在更改提示——您还在更改AI可以访问的工具、可以运行的命令以及需要您批准的操作。

Dollhouse元素 它做什么
玩偶之家人物角色 塑造行为、语气、专业知识和优先事项。
作为安全主体,使用权限策略来控制AI可以做什么
玩具屋技能* 添加人工智能可以按需激活的离散功能。
代码审查、数据分析、渗透测试、翻译等。
玩具屋模板 通过变量替换对输出进行标准化。
报告、电子邮件、简报、文件——每次都有一致的结构。变量是从以下内容自动导出的 {{placeholder}} 内容中的标记——不需要手动模式。
玩具屋代理商 自主执行多步骤目标。
状态跟踪、弹性策略、自主评估和执行生命周期。
玩具屋回忆 在会话中保持结构化的上下文。
事实、偏好、项目状态。启动时可以自动加载。
玩具屋组合 将多个元素捆绑成一个可激活的单元。
激活策略、冲突解决和协调的权限策略。

*技能兼容性

玩偶屋技能(于2025年7月推出)早于后来由Claude/Anthropic采用的代理技能格式。DollhouseMCP包括两种格式之间的内置无损双向转换器。

  • 导入:转换代理技能→ 玩偶屋技能通过 convert_skill_format。一旦转换,它们就是一流的玩偶之家元素——可与玩偶之家特工管理并受看门人政策保护的玩偶之屋中的人物角色、模板和其他技能组合。
  • 出口:转换玩偶屋技能→ 没有安装DollhouseMCP的平台的代理技能。
  • 来回:转换器支持无损模式,可在两个方向上保留所有内容。还提供了一种安全模式,可以在转换过程中清除潜在的危险模式。

全技能转换器文档

所有Dollhouse元素都是存储在本地公文包中的可读markdown或YAML文件。你拥有它们,你控制它们。在与AI交互时,使用“Dollhouse”来消除歧义——比如“激活Dollhouse代码审查角色”或“运行Dollhouse研究代理”,以确保AI使用Dollhouse MCP元素而不是本地平台功能。


MCP-AQL:你的AI如何与Dollhouse MCP对话

大多数MCP服务器都公开了数十个单独的工具,每个工具都消耗上下文令牌,并迫使LLM从平面列表中选择正确的一个。Dollhouse-MCP采取了不同的方法。

MCP-AQL (模型上下文协议 **A.**先进的 **A.**根特 **A.**圆周率 **A.**适配器 Q查询 Llanguage)将所有操作组织成5个语义端点-- 原油:创建、读取、更新、删除、执行。A队承担着四重任务: **A.**高级查询功能, **A.**gent-first设计, **A.**PI整合,以及 **A.**适配器层,用于桥接其他MCP服务器和API,以直接与LLM协同工作。每个端点根据它们对状态所做的操作对操作进行分组,为LLM提供有关每个操作后果的清晰语义信号:

端点 目的 权限级别
创建 添加新元素、从集合安装、添加内存条目 每个会话确认一次
阅读 列出、搜索、获取详细信息、激活、反思 自动批准(安全、无副作用)
更新 编辑现有元素 每次确认
删除 删除元素,清除条目 每次确认
执行 运行代理,管理执行生命周期,确认操作 每次确认

为什么这很重要

  • 语义清晰 --法学硕士知道这种呼唤 mcp_aql_read 总是安全的。召唤 mcp_aql_delete 总是具有破坏性的。没有猜测。

  • 主机级权限控制 --像Claude Code这样的MCP客户端可以为每个端点设置不同的审批策略(自动审批读取,删除时需要确认)。

  • 通过内省逐步披露 --LLM仅从5个工具端点开始。它通过询问服务器在运行时发现操作、参数、元素格式和使用示例:

    { "operation": "introspect", "params": { "query": "operations" } }
    { "operation": "introspect", "params": { "query": "format", "name": "persona" } }
    

    这是协议中内置的渐进式披露——LLM只在需要时加载它需要的东西。与需要特殊线束支持的客户端解决方案(如Claude Code的延迟工具加载)不同,MCP-AQL的自检适用于任何MCP客户端,因为它只是一个返回结构化数据的标准工具调用。不需要花哨的客户端功能。服务器自我描述。

    元素使用相同的原理:YAML frontmatter提供元数据用于快速扫描,只有在激活时才会加载完整的markdown内容。LLM可以一眼列出200个元素,并深入了解所需的元素。

  • 代币效率 --5个端点,约4300个令牌,而约40个离散工具的端点约29600个(减少85%)。单模进一步减少到约350个令牌。

完整的MCP-AQL文档 --协议设计、CRUD模式原理、自检系统、端点模式和调试。


看门人:元素控制权限

每个MCP-AQL操作都通过Gatekeeper——Dollhouse元素直接控制的服务器端权限系统。当您激活玩偶之家角色、技能或合奏时,其权限策略会立即生效。

 Example: Activate a "read-only analyst" persona

 ┌─────────────────────────────────────────────────────────────────┐
 │  Persona: read-only-analyst                                     │
 │                                                                 │
 │  gatekeeper:                                                    │
 │    allow:  [list_elements, search, get_element, introspect]     │
 │    deny:   [create_element, edit_element, delete_element,       │
 │             execute_agent, confirm_operation]                    │
 └─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
 ┌─────────────────────────────────────────────────────────────────┐
 │  What the LLM CAN do:           What the LLM CANNOT do:        │
 │                                                                 │
 │  ✓ List and search elements     ✗ Create new elements           │
 │  ✓ Read element details         ✗ Edit existing elements        │
 │  ✓ Introspect operations        ✗ Delete anything               │
 │  ✓ Activate/deactivate          ✗ Run agents                    │
 │                                 ✗ Confirm any gated operation   │
 └─────────────────────────────────────────────────────────────────┘

即使MCP客户端启用了“始终允许”,这也能正常工作。 Gatekeeper在服务器端运行——在客户端批准工具调用后,Gatekeeper仍然执行活动元素的策略。来自任何活动元素的拒绝都不能被LLM或客户端覆盖。

不同地使用两个看门人表面:

  • allow / confirm / deny 用于MCP-AQL操作模式,如 read_*, edit_*, delete_element,以及 execute_agent
  • externalRestrictions 用于外部工具和钩子图案,如 Read:*, Edit:*, Bash:git status*,以及 Bash:rm *

政策决议如何运作

 deny  >  confirm  >  allow  >  route default
 (highest priority)              (lowest priority)
  1. 元素拒绝 --硬封锁,无法确认或绕过
  2. 元素确认 --即使路线默认为自动批准,也需要用户确认
  3. 元素允许 --自动批准通常需要确认的操作
  4. 路由默认值 --端点的内置权限级别(读取自动批准,删除确认)

策略堆叠在所有活动元素上。如果一个角色允许操作,但另一个角色拒绝,则拒绝获胜。这让你可以自信地组合元素——一个专注于安全的角色可以锁定操作,而一项技能可以增加功能。

这在实践中意味着什么

  • 激活只读角色 → 即使您已授予MCP客户端完全访问权限,LLM也只能浏览和搜索
  • 激活安全分析师集成 → delete_element 和 rm -rf * 被拒绝,但代码审查工具正常工作
  • 停用限制性元件 → 完全访问权限立即返回
  • 核沙箱 → deny: ['confirm_operation'] 阻止所有确认,使会话完全只读,直到元素被停用

平台兼容性:Gatekeeper在服务器端执行策略——拒绝和允许决策在任何MCP客户端上工作。确认流程(LLM调用的地方 confirm_operation 在Claude Code和Dollhouse MCP Bridge上进行了广泛的测试。它应该适用于任何MCP客户端,其中LLM可以解释结构化的工具响应并进行后续的工具调用,但尚未在所有平台上经过严格验证。

看门人文件 --确认流、元素策略语法、沙盒模型、外部工具限制和会话允许问题。


投资组合

您的玩偶屋元素位于当地的投资组合中 ~/.dollhouse/portfolio/ (macOS/Linux)或 %USERPROFILE%\.dollhouse\portfolio\ (Windows)。让你的人工智能“打开投资组合浏览器”(或致电 open_portfolio_browser 通过MCP-AQL)进行可视化浏览。激活是通过LLM完成的——让它“激活Dollhouse代码审查角色”,它就会处理其余的事情。

  • 本地优先 --一切都在离线状态下运行。不需要帐户。
  • 37个捆绑元素 --服务器附带了7个角色、7种技能、8个模板、7个代理、3个记忆、5个集合作为初始内容。包括 玩具屋专家套房 集成(人物角色+知识库记忆)用于指导帮助,以及 会话监视器 使LLM与服务器状态更改保持同步的代理。
  • GitHub同步 --您可以选择将您的投资组合备份到GitHub存储库,并与他人共享元素。
  • 社区集合 — 浏览收藏 查看可用内容,然后直接从您的AI安装元素。或者 提交您自己的.

GitHub投资组合同步指南 --备份到GitHub,在机器之间同步,提交给社区。


Dollhouse特工执行

Dollhouse代理不仅仅是运行——每一步都要经过MCP服务器,回到LLM,然后通过网关。LLM做出语义决策;服务器处理程序化执行。双方都不单独行动。

 ┌───────────────┐
 │   HUMAN       │
 │  (optional)   │◄──── LLM asks for guidance
 │               │      when autonomy evaluator
 │ Approve, deny,│      says "pause"
 │ or guide      │
 └───────┬───────┘
         │ responds to LLM
         ▼
 ┌─────────────┐     ┌─────────────────────────────┐     ┌─────────────┐
 │             │     │  DollhouseMCP MCP Server     │     │             │
 │    LLM      │────▶│                              │────▶│    LLM      │
 │             │     │  1. Gatekeeper checks policy  │     │             │
 │  Decides    │     │  2. Autonomy Evaluator scores │     │  Records    │
 │  next       │     │  3. Danger Zone enforcement   │     │  step and   │
 │  action     │     │  4. Execute or block          │     │  continues  │
 │             │     │  5. Return result + autonomy  │     │  or pauses  │
 │             │◀────│     guidance to LLM           │◀────│             │
 └─────────────┘     └─────────────────────────────┘     └─────────────┘
        │                                                       │
        └──────────────── repeats every step ───────────────────┘

循环中的每一步:

  • 守门人 根据活动元素策略检查每个操作--拒绝、确认或允许
  • 自主性评估员 对代理是应该自主继续还是暂停人工输入进行评分
  • 危险地带 对高风险操作(文件删除、外部API调用、系统命令)强制执行硬块
  • 步骤记录 为每个决策和结果创建审计跟踪
  • 法学硕士接受自主指导 每次响应——继续、暂停或升级——因此它永远不会在不受监控的情况下运行

这意味着玩偶之家特工不能悄无声息地升级。每个操作都是可见的,每个步骤都经过评估,活动元素策略在整个执行过程中都得到了执行。

平台说明:代理循环依赖于LLM进行顺序MCP工具调用并解释结构化响应——标准MCP行为。它已经在Claude Code和Dollhouse MCP Bridge上进行了广泛的测试。服务器端执行(网守、危险区、台阶记录)是独立于平台的。LLM遵循自主指导(继续/暂停/升级)的能力取决于LLM解释结构化工具响应的能力,这些响应可能因平台而异。

完整的代理执行文档 --代理循环、安全实施、人在循环控制、代理组合、弹性策略和执行生命周期操作。


更多功能

  • Web作品集浏览器 --内置网络控制台,用于直观地浏览和管理您的作品集。让你的AI“打开投资组合浏览器”或运行 npm run web 独立。
  • 批量操作 --在单个MCP-AQL请求中执行多个操作,以实现高效的工作流程
  • 激活持久性 --在会话中激活的元素将在服务器重新启动时还原。无需重新激活。
  • 通用备份 --为具有恢复功能的投资组合元素提供内置备份服务
  • 缓存内存预算 --用于收集和索引缓存的可配置内存预算,以控制资源使用
  • NLP发现 --用于智能元素搜索和发现的Jaccard相似性和Shannon熵评分
  • 跨元素关系 --用于查找相关内容的元素之间的GraphRAG样式映射
  • 安全强化 --输入净化、路径遍历预防、YAML注入保护、文件锁定、DOMPurify净化、针对数百种攻击向量的内容验证。 安全文件
  • 交叉平台的 --在Windows、macOS和Linux上跨Node.js 20进行了测试+

安装选项

这 快速开始 上面介绍了最快的路径。要获得更多控制:

本地安装(建议用于多种配置)

mkdir -p ~/mcp-servers && cd ~/mcp-servers
npm install @dollhousemcp/mcp-server

然后将您的MCP客户端指向 node <path>/node_modules/@dollhousemcp/mcp-server/dist/index.js.

MCP-AQL端点模式

模式 端点 令牌 环境变量 最适合
原油 (默认) 5 ~4300 MCP_AQL_ENDPOINT_MODE=crude 大多数用户。具有主机级权限控制的语义分组
单 1 ~350 MCP_AQL_ENDPOINT_MODE=single 具有受限上下文窗口的多服务器设置
离散 ~40 ~29,600 MCP_INTERFACE_MODE=discrete 与v1工具名称向后兼容

备注:CRUD和Single由控制 MCP_AQL_ENDPOINT_MODE离散模式使用不同的变量: MCP_INTERFACE_MODE=discrete.

通用配置

变量 默认值 描述
MCP_AQL_ENDPOINT_MODE crude 端点模式: crude, single
MCP_INTERFACE_MODE mcpaql 界面样式: mcpaql, discrete
DOLLHOUSE_PORTFOLIO_DIR ~/.dollhouse/portfolio/ 自定义投资组合位置
GITHUB_TOKEN -- GitHub操作的个人访问令牌

完整的环境变量引用 · 其他平台的MCP客户端设置


文档

指南 说明
快速入门指南 Claude Code、桌面、Cursor、Gemini、Codex、本地LLM的平台特定安装
公开测试版入职 10分钟内安装到第一个角色
LLM快速参考 为AI助手编写的操作备忘单
MCP-AQL架构 CRUD协议、自检、端点模式
网守安全模型 权限层、元素策略、沙盒模型
GitHub投资组合同步 备份到GitHub,机器之间同步,社区提交
存储器系统 持久上下文存储和检索
技能转换器 双向代理技能转换
代理执行 代理循环、安全执行、人在循环、组合
架构概述 系统设计、DI容器、数据流
安全 威胁模型、测试和漏洞报告
API 参考 完整的MCP工具目录和有效载荷模式
V2迁移指南 从v1.x升级
故障排除 常见问题和解决方案

贡献

我们欢迎贡献——错误报告、功能请求、文档、代码和社区元素。

git clone https://github.com/DollhouseMCP/mcp-server.git
cd mcp-server
npm install && npm run build && npm test

看 贡献.md 了解完整的开发工作流程、分支策略和代码风格指南。


社区


许可证

AGPL-3.0或更高版本 --免费使用、修改和分发。网络使用需要披露来源。看 许可证 完整条款。


版权所有2024-2026米克·达林/玩具屋MCP