package.jsonโข7.35 kB
{
"name": "@dollhousemcp/mcp-server",
"version": "1.9.17",
"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.",
"type": "module",
"main": "dist/index.js",
"bin": {
"dollhousemcp": "dist/index.js",
"mcp-server": "dist/index.js"
},
"scripts": {
"prebuild": "node scripts/generate-version.js",
"build": "tsc",
"start": "node dist/index.js",
"dev": "tsx watch src/index.ts",
"inspector": "npx @modelcontextprotocol/inspector node dist/index.js",
"inspector:dev": "npx @modelcontextprotocol/inspector tsx src/index.ts",
"clean": "rm -rf dist",
"rebuild": "npm run clean && npm run build",
"setup": "npm install && npm run build",
"build:readme": "node scripts/build-readme.js",
"build:readme:npm": "node scripts/build-readme.js --target=npm",
"build:readme:github": "node scripts/build-readme.js --target=github",
"prepublishOnly": "npm run build:readme:npm && cp README.md README.md.backup 2>/dev/null || true && cp README.npm.md README.md && BUILD_TYPE=npm npm run build",
"postpublish": "if [ -f README.md.backup ]; then mv README.md.backup README.md; else echo 'No backup found, README.md unchanged'; fi",
"test": "cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config test/jest.config.cjs",
"test:watch": "cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config test/jest.config.cjs --watch",
"test:coverage": "cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config test/jest.config.cjs --coverage",
"test:ci": "cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config test/jest.config.cjs --ci --coverage --watchAll=false",
"build:test": "tsc -p test/tsconfig.test.json",
"test:compiled": "npm run build:test && cross-env NODE_OPTIONS='--experimental-vm-modules' jest --config test/jest.config.compiled.cjs",
"test:compiled:ci": "npm run build:test && cross-env NODE_OPTIONS='--experimental-vm-modules' jest --config test/jest.config.compiled.cjs --ci --watchAll=false",
"test:integration": "jest --config test/jest.integration.config.cjs",
"test:integration:watch": "jest --config test/jest.integration.config.cjs --watch",
"test:integration:coverage": "jest --config test/jest.integration.config.cjs --coverage",
"test:performance": "cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config test/jest.performance.config.cjs",
"test:all": "npm test && npm run test:performance && npm run test:integration",
"test:all:coverage": "npm run test:coverage && npm run test:integration:coverage",
"security:critical": "jest test/__tests__/security/tests --testNamePattern=\"(Command Injection|Path Traversal|YAML)\" --maxWorkers=4",
"security:rapid": "npm run security:critical -- --testTimeout=30000",
"security:all": "jest test/__tests__/security --coverage",
"security:regression": "jest test/__tests__/security/regression --maxWorkers=4",
"security:report": "node scripts/security-test-runner.js all --report",
"security:generate": "node scripts/generate-security-tests.js",
"security:audit": "tsx scripts/run-security-audit.ts",
"security:audit:json": "tsx scripts/run-security-audit.ts --json",
"security:audit:verbose": "tsx scripts/run-security-audit.ts --verbose",
"pre-commit": "npm run security:rapid && npm audit --audit-level=high",
"test:e2e": "cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config test/jest.e2e.config.cjs",
"test:e2e:watch": "cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config test/jest.e2e.config.cjs --watch",
"test:e2e:verbose": "cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config test/jest.e2e.config.cjs --verbose",
"test:roundtrip": "npm run test:e2e",
"test:roundtrip:manual": "./scripts/test-roundtrip-workflow.sh",
"test:roundtrip:cleanup": "./scripts/test-roundtrip-workflow.sh cleanup",
"qa:direct": "node scripts/qa-direct-test.js",
"test:e2e:real": "cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest test/e2e/real-github-integration.test.ts --verbose",
"test:e2e:real:mcp": "cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest test/e2e/mcp-tool-flow.test.ts --verbose",
"test:e2e:real:all": "npm run test:e2e:real && npm run test:e2e:real:mcp",
"test:e2e:cleanup": "tsx test/e2e/cleanup-test-data.ts",
"qa:inspector": "node scripts/qa-inspector-cli-test.js",
"qa:all": "npm run qa:direct && npm run qa:inspector",
"qa:simple": "node scripts/qa-simple-test.js",
"update:version": "node scripts/update-version.mjs",
"version:bump": "node scripts/update-version.mjs",
"version:check": "node scripts/update-version.mjs --dry-run",
"tools:count": "node scripts/count-tools.js",
"tools:list": "node scripts/count-tools.js --json"
},
"keywords": [
"mcp",
"model-context-protocol",
"ai",
"persona",
"prompt",
"claude",
"ai-assistant",
"roleplay",
"character",
"behavioral-profiles",
"dynamic-prompting",
"typescript",
"dollhouse",
"marketplace"
],
"author": {
"name": "Mick Darling",
"email": "mick@mickdarling.com",
"url": "https://github.com/mickdarling"
},
"contributors": [
{
"name": "Jeet Singh",
"url": "https://github.com/jeetsingh008"
}
],
"license": "AGPL-3.0",
"repository": {
"type": "git",
"url": "git+https://github.com/DollhouseMCP/mcp-server.git"
},
"bugs": {
"url": "https://github.com/DollhouseMCP/mcp-server/issues"
},
"homepage": "https://dollhousemcp.com",
"files": [
"dist/**/*.js",
"dist/**/*.d.ts",
"dist/**/*.d.ts.map",
"data/personas/**/*.md",
"data/skills/**/*.md",
"data/templates/**/*.md",
"data/agents/**/*.md",
"data/memories/**/*.md",
"data/ensembles/**/*.md",
"!dist/__tests__/**",
"!dist/**/*.test.*",
"oauth-helper.mjs",
"README.md",
"LICENSE",
"CHANGELOG.md"
],
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/mickdarling"
},
"dependencies": {
"@modelcontextprotocol/sdk": "^1.19.1",
"@types/dompurify": "^3.0.5",
"@types/uuid": "^10.0.0",
"chalk": "^5.6.2",
"dompurify": "^3.2.6",
"express": "^5.1.0",
"gray-matter": "^4.0.3",
"js-yaml": "^4.1.0",
"jsdom": "^27.0.0",
"node-fetch": "^3.3.2",
"uuid": "^11.1.0",
"zod": "^4.1.8"
},
"devDependencies": {
"@jest/globals": "^30.2.0",
"@modelcontextprotocol/inspector": "^0.16.7",
"@types/jest": "^30.0.0",
"@types/js-yaml": "^4.0.9",
"@types/jsdom": "^27.0.0",
"@types/node": "^24.7.0",
"cross-env": "^7.0.3",
"dotenv": "^17.2.3",
"jest": "^30.2.0",
"ts-jest": "^29.4.4",
"ts-jest-resolver": "^2.0.1",
"tsx": "^4.20.6",
"typescript": "^5.9.3"
},
"engines": {
"node": ">=20.0.0",
"npm": ">=10.0.0"
}
}