mcp-serverBLOCK
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.
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) [
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.
| Tool | Risk | Description |
|---|---|---|
... | read | ... |
A | read | Reviews code for quality issues |
Adult | read | Adult content test |
Advanced-Skill | read | Depends on base skill |
Apple | read | test |
B | read | Helps with data analysis |
Base-Skill | read | Foundation skill |
BugReport | read | Bug report template |
C | read | General purpose helper |
Cached-Skill | read | Tests instance caching |
CodeReview | read | Reviews code for quality and security |
CodeReviewer | read | Reviews code for quality and security issues |
Conflict-Skill-1 | read | First |
Conflict-Skill-2 | read | Second |
DashboardPage | read | Full-page dashboard shell with styles and JS |
Default | read | ... |
Disposable | read | Testing disposal |
Empty | read | No entries |
Existing-Skill | read | This one exists |
First-Skill | read | First |
High-Priority | read | High priority skill |
High-Skill | read | High |
Incomplete | read | Short |
Lifecycle-Persona | read | Tests full lifecycle |
Lifecycle-Skill | read | Tests full lifecycle |
Long | read | Long content test |
Low-Priority | read | Low priority skill |
Low-Skill | read | Low |
Medium-Priority | read | Medium priority skill |
Merge-Skill-1 | write | First |
Merge-Skill-2 | write | Second |
Minimal | read | Minimal persona |
MyAgent | read | Task executor |
MyPersona | read | A helpful assistant |
NoType | read | Missing type |
Original | read | Original description |
ProjectContext | read | Architecture decisions and project context |
RenderTemplate | read | A renderable template |
Second | read | A test persona for unit tests |
Second-Skill | read | Second |
SecurityExpert | read | Cybersecurity specialist |
SecurityTeam | read | Security analysis ensemble — combines analyst persona with threat modeling and pen testing skills |
Skill-One | read | First skill |
Skill-Two | read | Second skill |
Support-Persona | read | Supporting character |
Temp | read | Temp |
Test | read | Test |
Test-Priority | read | Test |
Test-Ziggy | read | A test version of Ziggy - the snarky AI assistant from Quantum Leap |
TestPersona | read | A test persona |
ThemeDark | read | Dark color theme — activate to style dashboard with dark palette |
Triggers | read | Many triggers test |
TypeScript-Pro | read | Test persona with legacy version |
Zebra | read | test |
Ziggy | read | Quantum Leap AI |
a | read | Test A |
activate_element | read | Activate a specific element by name |
activation-strategy-valid | read | Activation strategy must be valid |
active-persona | read | The active one |
admin | read | Admin template |
agent-code-reviewer-context | read | Execution state and learned preferences for code-reviewer agent |
agent-with-rels | read | Has existing relationships |
allow-persona | read | Persona that would auto-approve create_element |
approval-count-agent | read | Agent for counting approvals |
architecture-decisions | read | ADR records |
auto-derive-additive | write | Test additive merge |
auto-derive-basic | read | Test auto-derivation |
auto-derive-defaults | read | Test defaults |
auto-derive-edit | write | Test edit re-derive |
auto-derive-preserve | read | Test preservation |
autonomy-scout-demo | read | Selected session details |
b | read | Test B |
backup-strategy-document | read | Memory about backup strategies |
bad-activates | read | Test |
bad-activates-entry | read | Test |
bad-autonomy | read | Test |
bad-backoff | read | Test |
bad-denied | read | Test |
bad-goal | read | Test |
bad-params | read | Test |
bad-preserve | read | Test |
bad-prompt | read | Test |
bad-resilience | read | Test |
bad-resilience-enum | read | Test |
bad-return | read | Bad return template |
bad-risk | read | Test |
bad-role-test | read | Test |
bad-steps | read | Test |
bad-tags | read | Test |
bad-tools | read | Test |
binary-pointer-roundtrip | read | pointer preservation |
both-cases | read | Test |
both-criteria | read | Test |
both-prompts | read | Test |
broken | read | Broken template |
broken-guardian | read | Still useful, but with bad policy |
browse_collection | read | Browse content from the DollhouseMCP collection by section and content type. |
cached-agent | read | Cached active agent |
check_github_auth | read | Check current GitHub authentication status. |
clean | read | also clean |
clear_github_auth | destructive | Remove GitHub authentication and disconnect from GitHub. |
clear_user_identity | destructive | Clear user identity and return to anonymous mode |
code-patterns | read | Coding patterns |
code-review-team | read | Team for code reviews |
code-reviewer | read | A meticulous code reviewer that examines code for bugs, security issues, and best practices |
complete_agent_goal | read | Signal that the agent has completed its goal. This marks the goal as complete, updates decision outcomes, and calculates performance metrics. |
completion-agent | read | Agent with completion criteria |
complexity-valid | read | Complexity must be a valid level |
conditional-strategy-requires-conditions | read | Conditional strategy should have conditions defined |
config_set | write | Set config |
configure_collection_submission | read | Configure 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_indicator | read | Configure how active persona indicators are displayed |
configure_oauth | read | Configure GitHub OAuth client ID for authentication. |
confirm-persona | read | Persona that requires confirmation for create_element |
conflict-resolution-valid | read | Conflict resolution must be valid |
constructor-test | read | Test constructor pollution |
content-required | read | Content/instructions must be present and non-empty |
context-agent | destructive | Agent with clear first line |
continue_agent_execution | read | Continue executing an agent from its current state. Use this to resume after interruption or start the next step in a multi-step workflow. |
create_element | write | Create a new element of any type |
criteria-agent | read | Agent with success criteria |
crudv-agent-delta.md | read | A CRUD verification agent |
crudv-ensemble-zeta.md | read | A CRUD verification ensemble |
crudv-persona-alpha.md | read | A CRUD verification persona |
crudv-skill-beta.md | read | A CRUD verification skill |
crudv-template-gamma.md | read | A CRUD verification template |
daily-standup | read | Daily standup notes |
deactivate_element | read | Deactivate a specific element |
deactivation-ensemble | read | Ensemble for deactivation registration |
debug-detective | read | Finds bugs fast |
delete_element | destructive | Delete an element and optionally its associated data files |
description-required | read | Description field must be present and non-empty |
detailed-agent | read | A detailed agent |
detailed-ensemble | read | A detailed ensemble |
detailed-memory | read | A detailed memory |
detailed-persona | read | A detailed persona |
detailed-skill | read | A detailed skill |
detailed-template | read | A detailed template |
details-item | read | test description |
dollhouse_config | read | Manage DollhouseMCP configuration settings. |
domains-recommended | read | Skills should have domains for better organization |
drawing-room-safety | read | Shared baseline restrictions |
dual-field-agent | read | A dual-field agent |
edge-case | read | Edge cases |
edit_element | write | Edit an existing element of any type |
elements-structure | read | Elements must have valid structure |
empty-agent | read | Agent with no instructions |
empty-content | read | Empty |
empty-persona | read | Empty |
encryption-with-confidential | read | Confidential memories should have encryption enabled |
enhanced_index_status | read | Status |
ensemble-deactivate-persona | read | Persona for ensemble deactivation test |
ensemble-deactivate-skill | read | Skill for ensemble deactivation test |
ensemble-test-persona | read | Persona for ensemble activation test |
ensemble-test-skill | read | Skill for ensemble activation test |
error-template | read | Error template |
eruces | read | Test |
execute_agent | write | Execute 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-element | write | Duplicate import attempt |
explicit-type-skill | read | Skill with explicit elementType |
export-test | read | Test export |
find_similar_elements | read | Find elements that are semantically similar to a given element using NLP scoring. |
first | read | First |
first-line-agent | read | test |
first-memory-regression | read | First memory created in the transport regression test |
format | read | Missing type parameter |
framework-valid | read | Decision framework must be valid |
general-agent | read | General purpose |
get_active_elements | read | Get information about currently active elements of a specific type |
get_agent_state | read | Query the current state of an agent, including active goals, decision history, progress, and execution context. |
get_build_info | read | Get comprehensive build and runtime information about the server |
get_collection_cache_health | read | Get health status and statistics for the collection cache system. |
get_collection_content | read | Get detailed information about content from the collection. |
get_collection_submission_config | read | Get current collection submission configuration settings |
get_element_details | read | Get detailed information about a specific element |
get_element_relationships | read | Get all relationships for a specific element, including semantic similarities, verb-based connections, and cross-element references. |
get_indicator_config | read | Get current persona indicator configuration |
get_relationship_stats | read | Get statistics about the Enhanced Index relationships. |
get_user_identity | read | Get current user identity information |
git-workflow | read | Manages git operations following conventional commits and branch strategies |
github_auth | read | GitHub auth |
goal-agent | read | test |
good-goal | read | Test |
good-resilience-full | read | Test |
good-tools | read | Test |
greeting | read | A greeting template |
import_persona | write | Import a persona from a file path or JSON string |
imported-agent | read | Imported from JSON |
imported-ensemble | read | Ensemble imported from JSON |
init_portfolio | read | Initialize a new GitHub portfolio repository for storing your DollhouseMCP elements. |
install_collection_content | write | Install AI customization elements FROM the DollhouseMCP collection TO your local portfolio. |
instructions-required | read | Instructions must be present and non-empty |
io-fixture | read | Fixture conversion |
json-imported | read | A persona imported from JSON |
legacy-agent | read | A legacy agent |
list_elements | read | List all available elements of a specific type with optional pagination, filtering, and sorting |
long-agent | read | test |
markdown-test-memory | read | Memory for testing markdown content in addEntry |
max-entries-positive | read | Max entries must be positive |
max-goals-range | read | Max concurrent goals must be in valid range |
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.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | FAIL |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (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)
.env
const parsed = yaml.load(yamlContent, { schema: yaml.FAILSAFE_SCHEMA }) as Record<string, any> | null;loadedData = yaml.load(content, {enrichedMetadata = yaml.load(preservedYAML, { schema: yaml.CORE_SCHEMA }) as DollhouseMCPSkillMetadata;const enrichedMetadata = yaml.load(preservedYAML, { schema: yaml.CORE_SCHEMA }) as DollhouseMCPSkillMetadata;const metadata = yaml.load(yamlMatch[1], { schema: yaml.CORE_SCHEMA }) as AnthropicSkillMetadata;'exec() call',
'eval() call',
'exec() call': /exec\s*\(/i,
'~/.ssh/', '~/.gnupg/', '~/.aws/', '~/.config/',
'~/.env', '~/.netrc', '~/.npmrc',
│ 10. Execute agent (bypass safety checks - already verified)│
- Jailbreak and guideline bypass patterns (`DAN mode`, `do anything now`, `pretend you have no guidelines` — #1782-4)
/ignore\s+(all\s+)?previous\s+instructions/gi
console.log(` Token savings: ${formatNumber(tokenSavings)} tokens`);console.log(` GitHub Token: ${process.env.TEST_GITHUB_TOKEN ? 'Available' : 'Not Available'}`);console.log(result.token);
{ pattern: /export\s+all\s+(files|data|personas|tokens|credentials|api\s+keys)/gi, severity: 'critical', description: 'Data exfiltration' },{ pattern: /send\s+all\s+(files|data|personas|tokens|credentials|api\s+keys)\s+to/gi, severity: 'critical', description: 'Data exfiltration' },const secret = 'correct-secret-value';
secret: 'test-secret-key-for-unit-tests',
secret: 'test-secret-key-for-unit-tests',
const code = `const apiKey = "sk-1234567890abcdef1234567890abcdef";`;
secret: 'different-secret-for-testing',
MOCK_GITHUB_PAT: 'ghp_FAKE1234567890TESTTOKEN1234567890TEST', // NOSONAR - Fake test token
Gates applied: instruction_override, no_behavioural_pass.
a76c3251661dfull audit observations/trust-audit/mcp-server/dollhousemcp__mcp-server.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | a76c3251661d | BLOCK | F | 23 | first audit |
Questions
What is the mcp-server 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 mcp-server 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 mcp-server 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 mcp-server 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 mcp-server 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.