Atlas / MCP servers / dollhousemcp / Dollhouse

DollhouseBLOCK

mcp/dollhousemcp/dollhouse-1

A Free, Open Source MCP server for dynamic custom persona management with public a GitHub collection of personas, skills, templates, and other elements for AI models.

Verdict
BLOCK
Grade
F
Trust score
23 /100
Exposed tools
200 316r · 23w · 7d
Transport
sse · stdio · streamable-http
License
AGPL-3.0
Stars
45
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://www.npmjs.com/package/@dollhousemcp/mcp-server) [](https://www.gnu.org/licenses/agpl-3.0) [](https://modelcontextprotocol.io) [](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml) [](https://github.com/DollhouseMCP/mcp-server) [](https://github.com/DollhouseMCP/mcp-server)

[](https://sonarcloud.io/summary/newcode?id=DollhouseMCPmcp-server) [](https://sonarcloud.io/summary/newcode?id=DollhouseMCPmcp-server) [](https://sonarcloud.io/summary/newcode?id=DollhouseMCPmcp-server) [](https://sonarcloud.io/summary/newcode?id=DollhouseMCPmcp-server) [](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml) [](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml) [![Linux](https://img.shields.io/badge/Linux

Read from source at commit a76c3251661dOBSERVED · 2026-10-08
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add mcp-server -- npx -y @dollhousemcp/[email protected]
03

Exposed tools (200)

316 read · 23 write · 7 destructive. Blast radius: 7 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
...read...
AreadReviews code for quality issues
AdultreadAdult content test
Advanced-SkillreadDepends on base skill
Applereadtest
BreadHelps with data analysis
Base-SkillreadFoundation skill
BugReportreadBug report template
CreadGeneral purpose helper
Cached-SkillreadTests instance caching
CodeReviewreadReviews code for quality and security
CodeReviewerreadReviews code for quality and security issues
Conflict-Skill-1readFirst
Conflict-Skill-2readSecond
DashboardPagereadFull-page dashboard shell with styles and JS
Defaultread...
DisposablereadTesting disposal
EmptyreadNo entries
Existing-SkillreadThis one exists
First-SkillreadFirst
High-PriorityreadHigh priority skill
High-SkillreadHigh
IncompletereadShort
Lifecycle-PersonareadTests full lifecycle
Lifecycle-SkillreadTests full lifecycle
LongreadLong content test
Low-PriorityreadLow priority skill
Low-SkillreadLow
Medium-PriorityreadMedium priority skill
Merge-Skill-1writeFirst
Merge-Skill-2writeSecond
MinimalreadMinimal persona
MyAgentreadTask executor
MyPersonareadA helpful assistant
NoTypereadMissing type
OriginalreadOriginal description
ProjectContextreadArchitecture decisions and project context
RenderTemplatereadA renderable template
SecondreadA test persona for unit tests
Second-SkillreadSecond
SecurityExpertreadCybersecurity specialist
SecurityTeamreadSecurity analysis ensemble — combines analyst persona with threat modeling and pen testing skills
Skill-OnereadFirst skill
Skill-TworeadSecond skill
Support-PersonareadSupporting character
TempreadTemp
TestreadTest
Test-PriorityreadTest
Test-ZiggyreadA test version of Ziggy - the snarky AI assistant from Quantum Leap
TestPersonareadA test persona
ThemeDarkreadDark color theme — activate to style dashboard with dark palette
TriggersreadMany triggers test
TypeScript-ProreadTest persona with legacy version
Zebrareadtest
ZiggyreadQuantum Leap AI
areadTest A
activate_elementreadActivate a specific element by name
activation-strategy-validreadActivation strategy must be valid
active-personareadThe active one
adminreadAdmin template
agent-code-reviewer-contextreadExecution state and learned preferences for code-reviewer agent
agent-with-relsreadHas existing relationships
allow-personareadPersona that would auto-approve create_element
approval-count-agentreadAgent for counting approvals
architecture-decisionsreadADR records
auto-derive-additivewriteTest additive merge
auto-derive-basicreadTest auto-derivation
auto-derive-defaultsreadTest defaults
auto-derive-editwriteTest edit re-derive
auto-derive-preservereadTest preservation
autonomy-scout-demoreadSelected session details
breadTest B
backup-strategy-documentreadMemory about backup strategies
bad-activatesreadTest
bad-activates-entryreadTest
bad-autonomyreadTest
bad-backoffreadTest
bad-deniedreadTest
bad-goalreadTest
bad-paramsreadTest
bad-preservereadTest
bad-promptreadTest
bad-resiliencereadTest
bad-resilience-enumreadTest
bad-returnreadBad return template
bad-riskreadTest
bad-role-testreadTest
bad-stepsreadTest
bad-tagsreadTest
bad-toolsreadTest
binary-pointer-roundtripreadpointer preservation
both-casesreadTest
both-criteriareadTest
both-promptsreadTest
brokenreadBroken template
broken-guardianreadStill useful, but with bad policy
browse_collectionreadBrowse content from the DollhouseMCP collection by section and content type.
cached-agentreadCached active agent
check_github_authreadCheck current GitHub authentication status.
cleanreadalso clean
clear_github_authdestructiveRemove GitHub authentication and disconnect from GitHub.
clear_user_identitydestructiveClear user identity and return to anonymous mode
code-patternsreadCoding patterns
code-review-teamreadTeam for code reviews
code-reviewerreadA meticulous code reviewer that examines code for bugs, security issues, and best practices
complete_agent_goalreadSignal that the agent has completed its goal. This marks the goal as complete, updates decision outcomes, and calculates performance metrics.
completion-agentreadAgent with completion criteria
complexity-validreadComplexity must be a valid level
conditional-strategy-requires-conditionsreadConditional strategy should have conditions defined
config_setwriteSet config
configure_collection_submissionreadConfigure automatic collection submission settings. When enabled, the submit_collection_content tool will automatically create a submission issue in the DollhouseMCP collection repository after uploading to your portfolio.
configure_indicatorreadConfigure how active persona indicators are displayed
configure_oauthreadConfigure GitHub OAuth client ID for authentication.
confirm-personareadPersona that requires confirmation for create_element
conflict-resolution-validreadConflict resolution must be valid
constructor-testreadTest constructor pollution
content-requiredreadContent/instructions must be present and non-empty
context-agentdestructiveAgent with clear first line
continue_agent_executionreadContinue executing an agent from its current state. Use this to resume after interruption or start the next step in a multi-step workflow.
create_elementwriteCreate a new element of any type
criteria-agentreadAgent with success criteria
crudv-agent-delta.mdreadA CRUD verification agent
crudv-ensemble-zeta.mdreadA CRUD verification ensemble
crudv-persona-alpha.mdreadA CRUD verification persona
crudv-skill-beta.mdreadA CRUD verification skill
crudv-template-gamma.mdreadA CRUD verification template
daily-standupreadDaily standup notes
deactivate_elementreadDeactivate a specific element
deactivation-ensemblereadEnsemble for deactivation registration
debug-detectivereadFinds bugs fast
delete_elementdestructiveDelete an element and optionally its associated data files
description-requiredreadDescription field must be present and non-empty
detailed-agentreadA detailed agent
detailed-ensemblereadA detailed ensemble
detailed-memoryreadA detailed memory
detailed-personareadA detailed persona
detailed-skillreadA detailed skill
detailed-templatereadA detailed template
details-itemreadtest description
dollhouse_configreadManage DollhouseMCP configuration settings.
domains-recommendedreadSkills should have domains for better organization
drawing-room-safetyreadShared baseline restrictions
dual-field-agentreadA dual-field agent
edge-casereadEdge cases
edit_elementwriteEdit an existing element of any type
elements-structurereadElements must have valid structure
empty-agentreadAgent with no instructions
empty-contentreadEmpty
empty-personareadEmpty
encryption-with-confidentialreadConfidential memories should have encryption enabled
enhanced_index_statusreadStatus
ensemble-deactivate-personareadPersona for ensemble deactivation test
ensemble-deactivate-skillreadSkill for ensemble deactivation test
ensemble-test-personareadPersona for ensemble activation test
ensemble-test-skillreadSkill for ensemble activation test
error-templatereadError template
erucesreadTest
execute_agentwriteExecute an agent with a goal. Activates configured elements and returns context for LLM-driven agentic loop. The agent configuration defines a goal template that is filled with provided parameters.
existing-elementwriteDuplicate import attempt
explicit-type-skillreadSkill with explicit elementType
export-testreadTest export
find_similar_elementsreadFind elements that are semantically similar to a given element using NLP scoring.
firstreadFirst
first-line-agentreadtest
first-memory-regressionreadFirst memory created in the transport regression test
formatreadMissing type parameter
framework-validreadDecision framework must be valid
general-agentreadGeneral purpose
get_active_elementsreadGet information about currently active elements of a specific type
get_agent_statereadQuery the current state of an agent, including active goals, decision history, progress, and execution context.
get_build_inforeadGet comprehensive build and runtime information about the server
get_collection_cache_healthreadGet health status and statistics for the collection cache system.
get_collection_contentreadGet detailed information about content from the collection.
get_collection_submission_configreadGet current collection submission configuration settings
get_element_detailsreadGet detailed information about a specific element
get_element_relationshipsreadGet all relationships for a specific element, including semantic similarities, verb-based connections, and cross-element references.
get_indicator_configreadGet current persona indicator configuration
get_relationship_statsreadGet statistics about the Enhanced Index relationships.
get_user_identityreadGet current user identity information
git-workflowreadManages git operations following conventional commits and branch strategies
github_authreadGitHub auth
goal-agentreadtest
good-goalreadTest
good-resilience-fullreadTest
good-toolsreadTest
greetingreadA greeting template
import_personawriteImport a persona from a file path or JSON string
imported-agentreadImported from JSON
imported-ensemblereadEnsemble imported from JSON
init_portfolioreadInitialize a new GitHub portfolio repository for storing your DollhouseMCP elements.
install_collection_contentwriteInstall AI customization elements FROM the DollhouseMCP collection TO your local portfolio.
instructions-requiredreadInstructions must be present and non-empty
io-fixturereadFixture conversion
json-importedreadA persona imported from JSON
legacy-agentreadA legacy agent
list_elementsreadList all available elements of a specific type with optional pagination, filtering, and sorting
long-agentreadtest
markdown-test-memoryreadMemory for testing markdown content in addEntry
max-entries-positivereadMax entries must be positive
max-goals-rangereadMax concurrent goals must be in valid range
04

Trust audit

BLOCKgrade F · trust 23/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryFAIL
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (12 observation(s))
Network
declared (5 observation(s))
Shell
declared (10 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHHard-coded secrets · inv.env_committed · CWE-798, CWE-321
.env
.env
Why it matters. a real .env in the package
Fix. ship .env.example with placeholders only
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/config/ConfigManager.ts:313
const parsed = yaml.load(yamlContent, { schema: yaml.FAILSAFE_SCHEMA }) as Record<string, any> | null;
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/config/ConfigManager.ts:560
loadedData = yaml.load(content, {
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/converters/AnthropicToDollhouseConverter.ts:82
enrichedMetadata = yaml.load(preservedYAML, { schema: yaml.CORE_SCHEMA }) as DollhouseMCPSkillMetadata;
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/converters/AnthropicToDollhouseConverter.ts:228
const enrichedMetadata = yaml.load(preservedYAML, { schema: yaml.CORE_SCHEMA }) as DollhouseMCPSkillMetadata;
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/converters/AnthropicToDollhouseConverter.ts:370
const metadata = yaml.load(yamlMatch[1], { schema: yaml.CORE_SCHEMA }) as AnthropicSkillMetadata;
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/safety/src/TieredSafetyService.ts:108
'exec() call',
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/safety/src/TieredSafetyService.ts:109
'eval() call',
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/elements/agents/Agent.ts:513
'exec() call': /exec\s*\(/i,
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/handlers/mcp-aql/policies/ToolClassification.ts:402
'~/.ssh/', '~/.gnupg/', '~/.aws/', '~/.config/',
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/handlers/mcp-aql/policies/ToolClassification.ts:403
'~/.env', '~/.netrc', '~/.npmrc',
Why it matters. touches a credential store
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
docs/architecture/AGENT_VERIFICATION_TOOL_SPEC.md:267
│ 10. Execute agent (bypass safety checks - already verified)│
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
docs/security/architecture.md:263
- Jailbreak and guideline bypass patterns (`DAN mode`, `do anything now`, `pretend you have no guidelines` — #1782-4)
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
docs/security/memory-injection-protection.md:99
/ignore\s+(all\s+)?previous\s+instructions/gi
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
scripts/benchmark-mcp-aql-tokens.ts:1523
console.log(`  Token savings:            ${formatNumber(tokenSavings)} tokens`);
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
scripts/qa-test-runner.js:628
console.log(`   GitHub Token: ${process.env.TEST_GITHUB_TOKEN ? 'Available' : 'Not Available'}`);
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
src/cli/console-token.ts:136
console.log(result.token);
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
src/security/contentValidator.ts:127
{ pattern: /export\s+all\s+(files|data|personas|tokens|credentials|api\s+keys)/gi, severity: 'critical', description: 'Data exfiltration' },
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
src/security/contentValidator.ts:128
{ pattern: /send\s+all\s+(files|data|personas|tokens|credentials|api\s+keys)\s+to/gi, severity: 'critical', description: 'Data exfiltration' },
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/security/tests/input-validation-security.test.ts:146
const secret = 'correct-secret-value';
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/unit/security/PatternEncryptor.config.test.ts:55
secret: 'test-secret-key-for-unit-tests',
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/unit/security/PatternEncryptor.config.test.ts:71
secret: 'test-secret-key-for-unit-tests',
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/unit/security/audit/SecurityAuditor.test.ts:318
const code = `const apiKey = "sk-1234567890abcdef1234567890abcdef";`;
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/unit/security/encryption/PatternEncryptor.test.ts:301
secret: 'different-secret-for-testing',
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
tests/fixtures/testCredentials.ts:19
MOCK_GITHUB_PAT: 'ghp_FAKE1234567890TESTTOKEN1234567890TEST', // NOSONAR - Fake test token

Gates applied: instruction_override, no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha a76c3251661dfull audit observations/trust-audit/mcp-server/dollhousemcp__dollhouse-1.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-08a76c3251661dBLOCKF23first audit
06

Questions

What is the Dollhouse MCP server?

A Free, Open Source MCP server for dynamic custom persona management with public a GitHub collection of personas, skills, templates, and other elements for AI models.

What tools does Dollhouse expose?

200 in total: 316 read-only, 23 that write, and 7 that can delete or overwrite (clear_github_auth, clear_user_identity, context-agent, delete_element). Every one is listed on this page with its risk.

Is Dollhouse safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (23/100) and found 14 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 7 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does Dollhouse need?

It reads DOLLHOUSE_DANGER_ZONE_ADMIN_TOKEN, DOLLHOUSE_GITHUB_RATE_LIMIT_AUTH, DOLLHOUSE_GITHUB_RATE_LIMIT_UNAUTH, DOLLHOUSE_INDICATOR_SHOW_AUTHOR, DOLLHOUSE_OAUTH_DEBUG, DOLLHOUSE_OAUTH_HELPER, DOLLHOUSE_OAUTH_HELPER_FLOW_ID, DOLLHOUSE_OAUTH_TOKEN_URL, DOLLHOUSE_TOKEN_SECRET, GITHUB_TEST_TOKEN, GITHUB_TOKEN and GIT_AUTHOR_EMAIL from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does Dollhouse run?

It speaks sse, stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as dollhousemcp-license-email at 1.0.0.

How current is this page?

The grade is for one exact copy of the source (a76c3251661d), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement