{"bin":{"mcp-server":"dist/index.js","dollhousemcp":"dist/index.js","dollhouse-console-token":"dist/cli/console-token.js"},"bugs":{"url":"https://github.com/DollhouseMCP/mcp-server/issues"},"dist":{"shasum":"28477078ed8d05a7da0895622c9337e75f9f4802","tarball":"https://registry.npmjs.org/@dollhousemcp/mcp-server/-/mcp-server-2.0.43.tgz","fileCount":1305,"integrity":"sha512-v7S2QxVuvxtLaGkBKXO9gtjWuzMSdRHBJzl4d8DtVNXMD0DaaXBicuLDfhcODIoZEzh5pawjSllI8GMkqbTncw==","signatures":[{"sig":"MEUCID7z1H2H1YLPqPoXxsk+6Eab5gEcTjhIqh1EdHQNwJ+oAiEApt1BcqlWU/VoxiJuuO7Brreppz8Kic6bgpy084wYf8U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHrFu+Fk98h/OFY31HrSkjjP2mZ9WqOB1gNwykx7zKy9AiBnezqsYy27XcKfGiRnjou8WKL3/cebBdwImf96AdeUNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dollhousemcp%2fmcp-server@2.0.43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19562600},"main":"dist/index.js","name":"@dollhousemcp/mcp-server","type":"module","types":"./dist/index.d.ts","author":{"url":"https://github.com/mickdarling","name":"Mick Darling","email":"mick@dollhousemcp.com"},"engines":{"npm":">=10.0.0","node":">=18.0.0"},"funding":{"url":"https://github.com/sponsors/mickdarling","type":"github"},"gitHead":"b2b93accf670c8c3dfa884e9f6c379bf93768001","license":"AGPL-3.0-or-later","mcpName":"io.github.DollhouseMCP/mcp-server","scripts":{"dev":"tsx watch src/index.ts","web":"node dist/index.js --web","lint":"eslint --max-warnings=0 --ext .ts src tests scripts","test":"cross-env \"NODE_OPTIONS=$NODE_OPTIONS --experimental-vm-modules --no-warnings\" jest --config tests/jest.config.cjs","build":"tsc","clean":"rm -rf dist","setup":"npm ci --ignore-scripts && npm run build","start":"node dist/index.js","qa:all":"npm run qa:direct && npm run qa:inspector","rebuild":"npm run clean && npm run build","test:ci":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.config.cjs --ci --coverage --watchAll=false","lint:fix":"eslint --ext .ts src tests scripts --fix","prebuild":"npm run build:safety && node scripts/generate-version.js && node scripts/generate-hashes.mjs","test:all":"npm test && npm run test:performance && npm run test:integration","test:e2e":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.e2e.config.cjs","inspector":"mcp-inspector node dist/index.js","postbuild":"node -e \"const fs=require('fs'),p=require('path');function rm(d){if(fs.existsSync(d)){for(const e of fs.readdirSync(d)){const f=p.join(d,e);fs.statSync(f).isDirectory()?rm(f):fs.unlinkSync(f)}fs.rmdirSync(d)}}function cpR(s,d){fs.mkdirSync(d,{recursive:true});for(const e of fs.readdirSync(s)){const sp=p.join(s,e),dp=p.join(d,e);fs.statSync(sp).isDirectory()?cpR(sp,dp):fs.copyFileSync(sp,dp)}}cpR('src/seed-elements','dist/seed-elements');rm('dist/web/public');cpR('src/web/public','dist/web/public')\"","qa:direct":"node scripts/qa-direct-test.js","qa:simple":"node scripts/qa-simple-test.js","test:crud":"npm run test:integration:crud","build:test":"tsc -p tests/tsconfig.test.json","lint:shell":"shellcheck -x scripts/pretooluse-dollhouse.sh scripts/pretooluse-codex.sh scripts/pretooluse-cursor.sh scripts/pretooluse-gemini.sh scripts/pretooluse-vscode.sh scripts/pretooluse-windsurf.sh scripts/permission-port-discovery.sh scripts/permission-hook-config.sh","pre-commit":"npm run security:rapid && npm run typecheck:scripts && npm audit --audit-level=high","test:watch":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.config.cjs --watch","tools:list":"node scripts/count-tools.js --json","postpublish":"if [ -f README.md.backup ]; then mv README.md.backup README.md; else echo 'No backup found, README.md unchanged'; fi","tools:count":"node scripts/count-tools.js","build:safety":"cd packages/safety && npm ci --ignore-scripts --workspaces=false && npm run build","qa:inspector":"node scripts/qa-inspector-cli-test.js","security:all":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.config.cjs tests/security --coverage","test:crud:ci":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.config.cjs tests/integration/crud/ --no-coverage --ci --watchAll=false","version:bump":"node scripts/update-version.mjs","inspector:dev":"mcp-inspector tsx src/index.ts","test:compiled":"npm run build:test && cross-env NODE_OPTIONS='--experimental-vm-modules' jest --config tests/jest.config.compiled.cjs","test:coverage":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.config.cjs --coverage","test:e2e:real":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest test/e2e/real-github-integration.test.ts --verbose","version:check":"node scripts/update-version.mjs --dry-run","prepublishOnly":"cp README.md README.md.backup 2>/dev/null || true && cp README.npm.md README.md && BUILD_TYPE=npm npm run build","security:audit":"tsx scripts/run-security-audit.ts","security:rapid":"npm run security:critical -- --testTimeout=30000","test:e2e:watch":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.e2e.config.cjs --watch","test:roundtrip":"npm run test:e2e","update:version":"node scripts/update-version.mjs","security:report":"node scripts/security-test-runner.js all --report","test:crud:watch":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.config.cjs tests/integration/crud/ --no-coverage --watch","test:playwright":"playwright test","test:compiled:ci":"npm run build:test && cross-env NODE_OPTIONS='--experimental-vm-modules' jest --config tests/jest.config.compiled.cjs --ci --watchAll=false","test:e2e:cleanup":"tsx test/e2e/cleanup-test-data.ts","test:e2e:verbose":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.e2e.config.cjs --verbose","test:integration":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.integration.config.cjs","test:performance":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.performance.config.cjs","test:totp:manual":"tsx scripts/totp-manual-test.ts","calibration:build":"./scripts/run-calibration.sh build","calibration:clean":"./scripts/run-calibration.sh clean","calibration:local":"tsx tests/calibration/run-local.ts","security:critical":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.config.cjs tests/security/tests --testNamePattern=\"(Command Injection|Path Traversal|YAML)\" --maxWorkers=4","security:generate":"node scripts/generate-security-tests.js","test:all:coverage":"npm run test:coverage && npm run test:integration:coverage","test:e2e:real:all":"npm run test:e2e:real && npm run test:e2e:real:mcp","test:e2e:real:mcp":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest test/e2e/mcp-tool-flow.test.ts --verbose","typecheck:scripts":"tsc --noEmit --project tsconfig.scripts.json","calibration:docker":"./scripts/run-calibration.sh docker","test:playwright:ui":"playwright test --ui","calibration:compare":"tsx tests/calibration/compare-results.ts","security:audit:json":"tsx scripts/run-security-audit.ts --json","security:regression":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.config.cjs tests/security/regression --maxWorkers=4","test:cross-platform":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.config.cjs tests/unit/cross-platform","test:integration:crud":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.config.cjs tests/integration/crud/ --no-coverage","test:roundtrip:manual":"./scripts/test-roundtrip-workflow.sh","verify:package-assets":"node scripts/verify-npm-package-assets.mjs","security:audit:verbose":"tsx scripts/run-security-audit.ts --verbose","test:integration:watch":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.integration.config.cjs --watch","test:playwright:headed":"playwright test --headed","test:roundtrip:cleanup":"./scripts/test-roundtrip-workflow.sh cleanup","memory:cleanup:duplicates":"tsx src/utils/cleanup-duplicate-memories.ts","test:integration:coverage":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.integration.config.cjs --coverage","test:integration:hooks:docker":"cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.integration.config.cjs tests/integration/hooks/permission-hook-docker.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"cd4bfd7a-9109-4f6e-b9cd-d0e77468a3cf"}},"homepage":"https://dollhousemcp.com","keywords":["mcp","mcp-server","model-context-protocol","personas","skills","agents","memory","templates","ensembles","prompt","claude","cursor","vscode","codex","windsurf","ai","ai-assistant","llm","ai-tools","typescript","dollhousemcp"],"overrides":{"qs":"6.15.2","ws":"8.21.0","hono":"4.12.27","giget":{"tar":"7.5.22"},"lodash":"4.18.1","express":{"path-to-regexp":"8.4.2"},"fast-uri":"3.1.2","form-data":"4.0.6","ip-address":"10.1.1","proxy-addr":"2.0.8","gray-matter":{"js-yaml":"3.14.2"},"shell-quote":"1.11.0","picomatch@<2.3.2":"2.3.2","@hono/node-server":"1.19.13","brace-expansion@<1.1.13":"1.1.13","picomatch@>=4.0.0 <4.0.4":"4.0.4","@istanbuljs/load-nyc-config":{"js-yaml":"3.14.2"},"brace-expansion@>=2.0.0 <2.0.3":"2.0.3"},"repository":{"url":"git+https://github.com/DollhouseMCP/mcp-server.git","type":"git"},"workspaces":["packages/safety"],"_npmVersion":"11.19.0","description":"DollhouseMCP - A Model Context Protocol (MCP) server that enables dynamic AI persona management from markdown files, allowing Claude and other compatible AI assistants to activate and switch between different behavioral personas.","directories":{},"maintainers":[{"name":"mickdarling","email":"mick@mickdarling.com"}],"_nodeVersion":"24.21.0","contributors":[{"url":"https://github.com/insomnolence","name":"Todd Dibble"},{"url":"https://github.com/jeetsingh008","name":"Jeet Singh"}],"dependencies":{"zod":"^4.3.6","uuid":"^11.1.1","chalk":"^5.6.2","jsdom":"^24.1.3","dotenv":"^17.2.3","qrcode":"^1.5.4","express":"^5.2.1","graphql":"^16.12.0","js-yaml":"4.3.2","otpauth":"^9.5.0","dompurify":"^3.4.11","smol-toml":"^1.6.1","node-fetch":"^3.3.2","extract-zip":"^2.0.1","graphql-tag":"^2.12.6","gray-matter":"^4.0.3","install-mcp":"^1.10.2","posthog-node":"^5.24.17","@dollhousemcp/safety":"^1.0.4","@modelcontextprotocol/sdk":"^1.25.1"},"licenseNotice":"SUBJECT TO ADDITIONAL TERMS - See LICENSE file for complete terms including dual licensing, platform stability commitments, and creator protections. All terms are binding under AGPL Section 7.","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jest":"^30.2.0","eslint":"^9.38.0","globals":"^17.4.0","ts-jest":"^29.4.9","archiver":"^7.0.1","cross-env":"^10.1.0","supertest":"^7.2.2","@eslint/js":"^9.38.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.0","@types/uuid":"^10.0.0","@types/jsdom":"^21.1.7","@jest/globals":"^30.3.0","@types/qrcode":"^1.5.6","@types/semver":"^7.7.1","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@types/archiver":"^7.0.0","@playwright/test":"^1.59.1","@types/dompurify":"^3.2.0","@types/supertest":"^7.2.0","ts-jest-resolver":"^2.0.1","@typescript-eslint/parser":"^8.48.1","@modelcontextprotocol/inspector":"^0.21.1","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_2.0.43_1791560227765_0.00885192670446422","host":"s3://npm-registry-packages-npm-production"},"_id":"@dollhousemcp/mcp-server@2.0.43","version":"2.0.43"}