UNPKG

@dollhousemcp/mcp-server

Version:

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.

131 lines (130 loc) 5.1 kB
{ "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" } }