# Reported issues for DollhouseMCP

Pod holds 23 of 1,274 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [DollhouseMCP](/mcp/dollhousemcp).

## Most discussed

### [TASK] One-line self-hosted deployment and update automation

## Task Summary

Build a smooth one-line deployment and update path for hosted DollhouseMCP, covering both operator-managed cloud alpha/beta deployments and customer/self-hosted local or enterprise-controlled deployments.

This is the packaging/deployment product layer for the hosted Streamable HTTP + OAuth work: after we prove the alpha server manually, deployment should become repeatable, idempotent, and easy to hand to another operator or enterprise admin.

## Product Context

DollhouseMCP ne

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2223) · 2026-06-02 · open · 10 comments

### Proposal: DollhouseMCP as Universal Hook Runtime for AI Coding Platforms

## Summary

**Proposal:** Turn DollhouseMCP into a **universal hook runtime** for AI coding platforms (Claude Code, Codex CLI, Cursor, Cline, Windsurf, etc.). Hooks become Dollhouse elements (skills with a `hook:` frontmatter convention); host platforms invoke a thin per-platform relay shim that calls into a new HTTP endpoint on DollhouseMCP; DollhouseMCP runs the hook code under existing Gatekeeper/safety machinery and returns a platform-shaped response.

The infrastructure is mostly already th

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2010) · 2026-04-15 · open · 8 comments

### [Security][v2.1] Inventory dependency advisories across main, beta, and hosted HTTP

## Summary

Track and review dependency advisories individually across:

- `main` / v2.0 production
- `beta` / intended v2.1 release line
- `codex/hosted-http-integration` / Todd's completed hosted HTTP work

This issue is an inventory and decision record. It is **not authorization for a blanket dependency update**.

Dependency changes must follow the 21-day cooling-off and provenance gate in #2452. Each package requires separate approval, exposure analysis, provenance review, focused tests, and

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2451) · 2026-08-05 · open · 7 comments

### Hosted alpha: put Hetzner origin behind Cloudflare edge

## Context

The hosted alpha MCP endpoint is running on the Hetzner VPS at `178.156.247.192` and is served publicly as `mcp.dollhousemcp.com`.

On 2026-06-08, the `mcp.dollhousemcp.com` Cloudflare DNS record was changed from DNS-only to proxied mode:

- Zone: `dollhousemcp.com`
- Record: `mcp.dollhousemcp.com`
- Origin: `178.156.247.192`
- Cloudflare DNS API state: `proxied: true`

Smoke checks through Cloudflare edge returned expected results:

- `GET /healthz`: `200`
- `GET /readyz`: `200`
- u

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2256) · 2026-06-08 · closed · 7 comments

### [v2.1 Recovery][Batch 1] Promote integration execution foundation into beta

## Parent

Child of #2555. This is the next medium subsystem batch after beta-native repairs #2577/#2598 and #2597/#2599.

## Purpose

Promote Todd's integration execution foundation from the frozen hosted HTTP history into current `beta` as one cohesive, ancestry-preserving subsystem batch.

The first two commits from original integrations PR #2318 are already reachable unchanged from `beta`:

- `e69813f011a525dd9662cc2db572f1a1a3ad215a` — provider seam and storage
- `4cec8b52470a5025563a116523

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2601) · 2026-08-24 · closed · 6 comments

### [v2.1] Promote reconciled hosted HTTP integration into beta

## Parent and dependency

Part of #2455 and the second execution PR under #2374. Blocked until #2459 is merged into hosted HTTP integration with explicit approval.

## Objective

Promote the fully reconciled hosted HTTP integration branch into `beta` through a second reviewed PR, preserving beta's 2.1 delivery identity while making Todd's hosted HTTP implementation the functional basis of the 2.1 candidate.

## Process

- [ ] Refresh exact integration and beta tips after #2459.
- [ ] Open a PR f

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2460) · 2026-08-07 · open · 6 comments

### [v2.1] Reconcile approved beta deltas into hosted HTTP integration

## Parent and dependencies

Part of #2455 and the first execution PR under the detailed runbook in #2374. Blocked by #2456 and #2458.

## Objective

Create a reconciliation branch from the frozen `codex/hosted-http-integration` tip, merge the updated `beta` history into it, and resolve the resulting tree so only persistent beta decisions and fixes are carried into Todd's newer hosted HTTP architecture.

This phase updates hosted HTTP integration first. It does not yet modify `beta`.

## History 

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2459) · 2026-08-07 · closed · 6 comments

### [HOTFIX] Active-policy member resolution reloads entire catalogs and causes startup CPU/RSS storm

## Summary

A freshly started DollhouseMCP v2.0.40 process can consume a full CPU core, grow beyond 1.2 GB RSS, and emit hundreds of thousands of repeated lifecycle/validation log lines without any user activation request.

This is a focused hotfix follow-up to #2614 and #2615. The new reproduction isolates the exact portfolio-scan multiplier and confirms that the Chief of Staff ensemble size is not the cause.

## Fresh-start reproduction

Observed on macOS with the Codex-launched stdio server:

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2618) · 2026-08-25 · closed · 5 comments

## Most recent

### validate_element passes an ensemble whose members do not exist (dangling member references)

## Problem

`validate_element` on an ensemble returns `Status: Valid` even when entries in `metadata.elements` reference elements that do not exist in the portfolio. Nothing in the read path surfaces the dangling references: `get_element_details` lists them as ordinary members with no marker.

Observed 2026-08-30 on the production npm build:

1. Ensemble `company-strategy-board` had 25 member entries after an `edit_element` merge (see #2571), three of which named elements that had been deleted m

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2640) · 2026-08-30 · open · 0 comments

### [BETA HOTFIX 3/3] Install OAuth helper signal handlers before readiness

## Summary

Third implementation PR for #2627. Install OAuth helper termination handlers before asynchronous startup/readiness work so SIGINT/SIGTERM cannot kill the helper before it records a terminal result and performs state/PID cleanup.

This is an independent, focused semantic port that must preserve beta's newer OAuth result handoff and hosted authentication behavior.

## Baseline and sequencing

- Sequence: **3 of 3**.
- Implementation is mechanically independent, but final beta release/d

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2636) · 2026-08-26 · closed · 1 comment

### [BETA HOTFIX 2/3] Adapt durable activation identity to sessions, files, and PostgreSQL

## Summary

Second implementation PR for #2627. Adapt the stable agent/policy identity work to beta's per-session activation registry, filesystem and PostgreSQL stores, HTTP child sessions, database identities, restart restoration, policy aggregation, and agent-runtime recovery.

This is not a verbatim port of stable's filename-only implementation. Beta requires a backend-neutral durable identity with backward compatibility for existing name-only and persona-filename records.

## Baseline and se

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2635) · 2026-08-26 · closed · 1 comment

### [BETA HOTFIX 1/3] Port bounded active-policy resolution, scan freshness, and export ordering

## Summary

First implementation PR for #2627. Forward-port the v2.0.41 runaway-process fix onto the current `beta` architecture by replacing full-catalog active-policy expansion with bounded indexed resolution, adding freshness-safe storage scans, and serializing policy exports.

This is a semantic beta-native implementation. Do not merge `main`, `develop`, or `hotfix/2618-active-policy-catalog-cache`, and do not cherry-pick the stable commits as a batch.

## Baseline and coordination

- Record

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2634) · 2026-08-26 · closed · 1 comment

### [FOLLOW-UP] Triage minor robustness and performance findings from PR #2628

## Summary

Track the validated lower-priority robustness and performance suggestions from Claude's review of #2628. These are not merge blockers, but they should be measured or hardened rather than lost in the merged PR discussion.

## Follow-up work

- [ ] Snapshot `activeAgentsByFilename` before awaiting inside `deactivateAgent()` iteration so concurrent lifecycle operations cannot change the traversal set mid-loop.
- [ ] Evaluate bounded lookup timeouts or cancellation for active-policy memb

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2633) · 2026-08-26 · open · 0 comments

### [BUG] Reconcile cross-category transitions when merging manifest diffs

## Summary

`mergeManifestDiffResults()` unions `added`, `modified`, and `removed` independently, so a path observed in different categories across sequential scans can be returned in mutually contradictory categories.

Claude identified this during review of #2628, and inspection confirmed there is no cross-category reconciliation or regression coverage.

## Current behavior

For example, if a file is observed as added by the first scan and removed by the trailing freshness scan, the merged res

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2632) · 2026-08-26 · open · 0 comments

### [SECURITY] Validate caller-supplied session IDs before activation-state path construction

## Summary

Enforce the existing session-ID format before using a caller-supplied session ID to construct a persisted activation filename.

Claude identified this during review of #2628, and post-review inspection confirmed that the permissions web route accepts `req.query.sessionId`, passes it through MCP-AQL policy reporting, and ultimately reaches `ActivationStore.listPersistedActivationStates(sessionId)`.

## Current behavior

`ActivationStore.listPersistedActivationStates()` Unicode-normali

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2631) · 2026-08-26 · open · 0 comments

### [BUG] Deduplicate live and persisted personas by stable policy identity

## Summary

Active personas and their persisted activation records use different identity keys during policy reporting, which can duplicate a persona and its policy entries/counts.

Codex identified this as a **P2** during review of #2628.

## Current behavior

In `src/handlers/ElementCRUDHandler.ts`, `appendActivePersonas()` adds a live gatekeeper persona without an `identity`. The same persona loaded from persisted activation state is assigned its filename as `identity`.

The policy aggregatio

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2630) · 2026-08-26 · open · 0 comments

### [BETA] Plan and coordinate v2.0.41 hotfix integration without overwriting Todd's work

## Summary

Plan, coordinate, implement, and verify the v2.0.41 active-policy hotfix on the substantially divergent `beta` line **without overwriting Todd/Dibble's hosted HTTP, web-console, integration, per-session activation, or agent-runtime work**.

This is deliberately a gated integration issue. **Do not create an integration branch, merge `main`, merge the retained hotfix branch, or begin conflict resolution until Mick and Todd have reviewed the baseline and explicitly agreed on the strateg

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2627) · 2026-08-26 · closed · 3 comments

### Expose stable element storage identity through a typed API

## Context

Follow-up from PR #2621.

Stable filename identity is now central to agent activation, deactivation, restart restore, policy aggregation, and collision handling. Loaded elements currently receive `filename` dynamically, so callers use casts such as `Agent & { filename?: unknown }` to access it.

## Scope

- Define a typed, read-only way for loaded elements or their manager to expose stable storage identity.
- Replace ad hoc filename casts in AgentManager and policy collection.
- Keep

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2624) · 2026-08-26 · open · 0 comments

### Add direct edge-case coverage for active-policy identity and scan diff merging

## Context

Follow-up test-hardening identified during review of PR #2621. Current behavior is covered indirectly and all CI is green, but several invariants deserve direct regression tests.

## Scope

Add focused tests for:

- A directly active singular element also referenced by an ensemble using a plural `element_type`, proving it is deduplicated once.
- `mergeManifestDiffResults()` category interactions, including modified then unchanged, added then removed, duplicate paths, and exclusion of

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2623) · 2026-08-26 · open · 0 comments

### Add diagnostics for skipped ensemble policy members

## Context

Follow-up from PR #2621.

Active-policy collection currently skips an ensemble member when its normalized element type has no manager, and the bounded resolver also treats member lookup failures as non-fatal. That fail-open behavior is intentional for availability, but both paths are silent and make malformed ensemble metadata or unreadable member files difficult to diagnose.

## Scope

- Emit a low-noise diagnostic when an ensemble policy member has an unsupported `element_type`.
- 

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2622) · 2026-08-26 · open · 0 comments

### Preserve remote MCP property names while stripping schema annotations

## Summary

The bounded remote MCP schema sanitizer strips annotation keys such as `description`, `title`, `default`, `example`, and `examples` without considering schema context. When one of those strings is a user-defined key inside a JSON Schema `properties` map, the property definition is removed while it may remain listed in `required`.

A schema such as `{ "properties": { "description": { "type": "string" } }, "required": ["description"] }` can therefore become internally inconsistent and 

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2620) · 2026-08-25 · open · 0 comments

### Decode percent-encoded UTF-8 before integration path control validation

## Summary

Integration path canonicalization currently rejects percent-encoded bytes in the `0x80`-`0x9f` range before decoding complete UTF-8 sequences. Those bytes may be valid continuation bytes rather than control characters.

Examples such as `/items/%E2%82%AC` can therefore be rejected even though the decoded path contains a valid euro sign. Promoted tools can encounter this naturally because path parameters are encoded with `encodeURIComponent`.

## Required behavior

- Validate percent 

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2619) · 2026-08-25 · open · 0 comments

### Test embedded integration query propagation to the upstream URL

## Context

PR #2602 added canonical integration request path handling and verifies that query-bearing requests retain their query in the approval HMAC. The remaining low-priority coverage gap is an execution-level assertion that an embedded query string reaches the pinned upstream request URL unchanged after canonical path validation.

## Required work

- Add a focused gateway or pinned-transport test using a canonical path with an embedded query.
- Assert that the upstream URL receives the exp

[Read the thread](https://github.com/DollhouseMCP/mcp-server/issues/2617) · 2026-08-25 · open · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/DollhouseMCP/mcp-server/issues).
