{
  "name": "@dollhousemcp/mcp-server",
  "version": "1.5.2",
  "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",
    "clean": "rm -rf dist",
    "rebuild": "npm run clean && npm run build",
    "setup": "npm install && npm run build",
    "prepublishOnly": "BUILD_TYPE=npm npm run build",
    "update:check": "echo 'Use check_for_updates MCP tool for interactive update checking'",
    "update:pull": "git pull origin main && npm install && npm run build",
    "update:backup": "cp -r . .backup-$(date +%s)",
    "update:restore": "echo 'Use rollback_update MCP tool for interactive rollback'",
    "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:all": "npm test && 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"
  },
  "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"
  },
  "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.*",
    "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.16.0",
    "@types/dompurify": "^3.0.5",
    "@types/uuid": "^10.0.0",
    "dompurify": "^3.2.6",
    "express": "^5.1.0",
    "gray-matter": "^4.0.3",
    "js-yaml": "^4.1.0",
    "jsdom": "^26.1.0",
    "uuid": "^11.1.0",
    "zod": "^4.0.5"
  },
  "devDependencies": {
    "@jest/globals": "^30.0.4",
    "@types/jest": "^30.0.0",
    "@types/js-yaml": "^4.0.9",
    "@types/jsdom": "^21.1.7",
    "@types/node": "^24.0.15",
    "cross-env": "^7.0.3",
    "jest": "^30.0.4",
    "ts-jest": "^29.4.0",
    "ts-jest-resolver": "^2.0.1",
    "tsx": "^4.0.0",
    "typescript": "^5.8.3"
  },
  "engines": {
    "node": ">=20.0.0",
    "npm": ">=10.0.0"
  }
}
