{"_id":"@ema.co/mcp-toolkit","_rev":"171-2021655c6ed3bcfed4ea8626b9169e60","name":"@ema.co/mcp-toolkit","dist-tags":{"latest":"2026.4.9-3"},"versions":{"2026.3.23-3":{"name":"@ema.co/mcp-toolkit","version":"2026.3.23-3","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.23-3","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"e9e823a2fc6e1a15dac99231980ec7e6e8ff7d72","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.23-3.tgz","fileCount":322,"integrity":"sha512-SjCGd4iQBsxfpq7H7CGQzlZK0JDZpPxYofSLVIT5AlHnrOGsrwaKY72rFRb01FtJhbaaIJUmmxh63eKM6whFiw==","signatures":[{"sig":"MEYCIQDLdnU+gs4agbZowHtNEqNh6PCfFljjpITW9v4W3peaBQIhAPi7t1jrEegZqm68XzO/mh+D5cRAhEKfiqh1toDmwiPX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4020105},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"cf85310211d42c593ef7b5eb7fc1451c18e4e67f","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.23-3_1774263541164_0.024434161900055207","host":"s3://npm-registry-packages-npm-production"}},"2026.3.24":{"name":"@ema.co/mcp-toolkit","version":"2026.3.24","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.24","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"2bb1cd80d9a5db606d229483179088fe8ac1358e","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.24.tgz","fileCount":321,"integrity":"sha512-vfebbjCsyg3rc4rFiUDH6kNBNRmDQNMcX43Gi6wSFk+AavSqQlNDyiZmQsTeRMjxWKdkHPd6v8TyyJF4aInD5w==","signatures":[{"sig":"MEUCIC9ZNTT5wp1ioil/HiU5dfy+xumMHjrrHjrBu6u6JZ4RAiEAq7jzFHp1ZLuyddh4SvWoIYJERWuSIP7UAgMOihMvL7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4014992},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"87d70d092dfc2c5c93b0592ff34da0751461507e","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.24_1774341882597_0.49789712209805503","host":"s3://npm-registry-packages-npm-production"}},"2026.3.24-1":{"name":"@ema.co/mcp-toolkit","version":"2026.3.24-1","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.24-1","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"f8461083fab0f2409cee48c68786821df2ded326","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.24-1.tgz","fileCount":321,"integrity":"sha512-xSEckNyJfdhgOGVryivZ7a6EGtyhtyVkndZUjAXGG/fxYjoEk4tk+9sy3UQFqeJZPjaD5IFk1QDPAr0XIjQoeQ==","signatures":[{"sig":"MEUCIQD8wAxRQBS3qDL6/Ariv6z80bjbpnWcuM6yVEPkHSQSFgIgA0SIyTBdS6cHB0PC76rktRyUe7zDUVadZ7x7oegQRss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4015463},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"95114ecf1dff58c7214afabdd6ee25f4c4dcc119","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.24-1_1774345204178_0.4376175360930401","host":"s3://npm-registry-packages-npm-production"}},"2026.3.24-2":{"name":"@ema.co/mcp-toolkit","version":"2026.3.24-2","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.24-2","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"5b849a02d6346bd2571c59ef1c1eba1b6dbc220c","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.24-2.tgz","fileCount":321,"integrity":"sha512-PDVXRKUtAQ88k9bzlZNeabuCk3AWvP4HUDEBHp30paaATvGDyZ9t6SJr+qy2mFC8tWI4qgQEHKJxMF6601LS7g==","signatures":[{"sig":"MEYCIQCMjcA/27M4B5Zv17dmmqCrPOx+BPSxAUJpENaRkhPobAIhAJ4dgyQVoph1rDGRN4y55TXLoklE9vJr9IaXGyWFmFU3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4016411},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"071f04e3f86faa41e9b80f6935f20ad46dd550f9","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.24-2_1774389480523_0.01841642333964888","host":"s3://npm-registry-packages-npm-production"}},"2026.3.24-3":{"name":"@ema.co/mcp-toolkit","version":"2026.3.24-3","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.24-3","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"75b35a6d94fdd5589748ea1f009369d6b69f94c6","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.24-3.tgz","fileCount":321,"integrity":"sha512-qqKZm9AwLRlaHQuFS7yv/eAb16Myh9YeaivZhtHl4ExpguowiSKkAOfWIRZxosVoPD5Av6LEixXkjor2P5+ENw==","signatures":[{"sig":"MEUCIDzS3jW/k1Qpb1yL1U4PXl/up9KQCr8/ZuEBIekp0W/WAiEA8iv4wjWo2pCfPSNk6U8QnjrHftGsGY0NVDlP7gsiyDg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4016411},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"071f04e3f86faa41e9b80f6935f20ad46dd550f9","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.24-3_1774390138000_0.17137777577250635","host":"s3://npm-registry-packages-npm-production"}},"2026.3.24-4":{"name":"@ema.co/mcp-toolkit","version":"2026.3.24-4","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.24-4","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"21e2756a86a540cd18841d911e0470f08719c391","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.24-4.tgz","fileCount":321,"integrity":"sha512-llt25820SImqrY4cYxDjW9k7jGop9oMxKoFagKNXsKXSffRjLqsCj6myI3fA8QmvG051mCcs0/oCbm7mX7PZCg==","signatures":[{"sig":"MEUCIQDv45pc5jWg5aLujrUZEPvGIc0wDwtmyN4SSAbsrsEHogIgHyb6kgyBtzpZOlRS+Ho4BPirIirKyNrZQBgmWi75ieE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4016411},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"071f04e3f86faa41e9b80f6935f20ad46dd550f9","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.24-4_1774390245661_0.7384146134290732","host":"s3://npm-registry-packages-npm-production"}},"2026.3.24-5":{"name":"@ema.co/mcp-toolkit","version":"2026.3.24-5","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.24-5","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"11909aa18edda8fa074a6251a968e7fcdb021c1f","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.24-5.tgz","fileCount":321,"integrity":"sha512-SJCpxwkRTHLTuHOPiEwajmln8uG7Rh7yZQW7t+jDYQCN585OWFaPyAKLyaQP0Xg5cH458BhIUYzS8TKw1keM2A==","signatures":[{"sig":"MEYCIQDYxSBv+JjZxpbYvBgjy2QnBndIO3+1iGa9+Cs6oAk8nQIhAL4LFHUgpNAOM6QPy9bDINsJMFrfRy0AJxO7Iapp5kVZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4016411},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"071f04e3f86faa41e9b80f6935f20ad46dd550f9","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.24-5_1774393181865_0.11704466326210006","host":"s3://npm-registry-packages-npm-production"}},"2026.3.24-6":{"name":"@ema.co/mcp-toolkit","version":"2026.3.24-6","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.24-6","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"3f4c5971a088b9c788d62aba954b10ccf4c49f84","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.24-6.tgz","fileCount":321,"integrity":"sha512-glBaamtWxLWEK4lDHOy+NEPetH8uHQsUHYrkkMuU6+siYCQS9EUW5uR+2st22r8ek/mt26bNC24wqOAEaM16Tw==","signatures":[{"sig":"MEQCIHa1IFXk3owfeXXOeqdHRCmR2X1w2rs4/GAs2qQvFZQWAiAz/oB69beRIJNolzuFC4cZYU2DJ76IeXH6NTjQebUznQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4016411},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"071f04e3f86faa41e9b80f6935f20ad46dd550f9","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.24-6_1774394871817_0.30551514464873275","host":"s3://npm-registry-packages-npm-production"}},"2026.3.24-7":{"name":"@ema.co/mcp-toolkit","version":"2026.3.24-7","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.24-7","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"7119bb0fa0bc00ba784f7bff7aea5db5e1eed19e","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.24-7.tgz","fileCount":321,"integrity":"sha512-prxwTQgUbJwbhX6QvAh0g2eKD7dkZy4mPmQRFvDUolm7qxnqU5LWYgeW7gXkClJGymLYN03Iwr8xfe4ZSUm4lw==","signatures":[{"sig":"MEUCIDxh0+kR/7ltjdsfHTt0ajxzs1vDAnMwHZkAfh13qZxWAiEA/0Qdlb4JMdDCwqnYM1CzEusbsWPzYU0x4s75zx3xWhc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4016411},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"071f04e3f86faa41e9b80f6935f20ad46dd550f9","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.24-7_1774396699977_0.8390579381093035","host":"s3://npm-registry-packages-npm-production"}},"2026.3.24-8":{"name":"@ema.co/mcp-toolkit","version":"2026.3.24-8","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.24-8","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"70fd3812ff3d14b9f2afebff0d067d5983d390c1","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.24-8.tgz","fileCount":321,"integrity":"sha512-K7g82w+kRujExURehwYgMhsnUMxUZTkeBef7WF5qzfR8O1vW5IWUnNnRk5EG/CqWdFQswGkMMy3gRceBfQMoIw==","signatures":[{"sig":"MEYCIQC+d7Uto+GCLuQGVZZUvPvRN/I79BCPsaCNs6SxUa0HngIhAO4O9W9OH+RlG1C0TvCkdzKtwdJPuZIG4cLN2GYOuVFM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4016411},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"071f04e3f86faa41e9b80f6935f20ad46dd550f9","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.24-8_1774398920091_0.39587392790281206","host":"s3://npm-registry-packages-npm-production"}},"2026.3.24-9":{"name":"@ema.co/mcp-toolkit","version":"2026.3.24-9","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.24-9","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"3887c3005adae50475c614d268380fcf2bb79048","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.24-9.tgz","fileCount":321,"integrity":"sha512-SpS+x0PokfyY2mM3RnkjaxcUZG62dnKSiOVUbxF/txv4vEL0npXD1ZdLfKfHCjgQriG18i6l59aEHEjfwJ23BQ==","signatures":[{"sig":"MEUCIQCAfTWxze3GIfZIoOukMAqn37/IwqrQ2xaMMlSr/XUnOAIgH5ffmyYHw74StfeR/j211YHYmNtO5txU4NB+cg2C6ws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4016411},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"071f04e3f86faa41e9b80f6935f20ad46dd550f9","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.24-9_1774402477104_0.34314249063668045","host":"s3://npm-registry-packages-npm-production"}},"2026.3.25-1":{"name":"@ema.co/mcp-toolkit","version":"2026.3.25-1","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.25-1","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"81fda5b65815b03d058c3f6b49b44593af377497","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.25-1.tgz","fileCount":321,"integrity":"sha512-EyhZrbPMZnZ/AoLgdZam4bVBD3n4LtYyJhNzAlcEQ1VGWYjkRCpRDndec0a4OWpP7/yxmmRJXS4DD3oePWt+8g==","signatures":[{"sig":"MEQCIAG7SstkActhDuUr8ZpDANXi0ZYiZpYB/tAZNZe78n8YAiBqONyaZ0YUnzUMekKaD2TI1JM7INgrESgQPUZtpd+fIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4023343},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"42403768ff13479b5bae6f3cb4e2fdfac30b8e8a","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.25-1_1774424139559_0.015905528141292313","host":"s3://npm-registry-packages-npm-production"}},"2026.3.25-2":{"name":"@ema.co/mcp-toolkit","version":"2026.3.25-2","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.25-2","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"c2250621658fc0c49a95903a24f52273a78b1c30","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.25-2.tgz","fileCount":325,"integrity":"sha512-FfSprPcP9o+9b3q32FpQt3IITEeLbTG8UaQCDauRyQ33vmZH35fF327grMbuYLqaNma6wT6WKH35LXkdO17ubA==","signatures":[{"sig":"MEUCIDJsw8P1sGZISGNnRQWQ5IUGJmcF+Q9Ycn6BoEriZP22AiEAvZRhvhIfAHzSh974Py4+yGVTcSQWKYlLYatwvTe8u5s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4075585},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"1442a0927bbe2314a484647134f016e7c615912f","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.25-2_1774425216041_0.4702751351364576","host":"s3://npm-registry-packages-npm-production"}},"2026.3.25-3":{"name":"@ema.co/mcp-toolkit","version":"2026.3.25-3","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.25-3","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"153a51c931afb019a0513902c32466df0f21c340","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.25-3.tgz","fileCount":325,"integrity":"sha512-gn/v5qmh0EquagzARXk6/e7iUb0AmYQwuUuHTp808cWSBUPK1caep1M1kKTRZgXYJ6CEPJtImYNPte0oZlVAPA==","signatures":[{"sig":"MEQCICcfHy/uACgxpdJ0WxA0Xyvh6pw/mRtw1CdyjKVqhJq0AiA2MuXuqrbxBD6538aRqYJxtNeJKsBFa5lvGzhxWXChKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4075585},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"bb984e2b8ebb43da8f620d118b39f388ad1b5dbc","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.25-3_1774425748969_0.955435541627595","host":"s3://npm-registry-packages-npm-production"}},"2026.3.25-4":{"name":"@ema.co/mcp-toolkit","version":"2026.3.25-4","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.25-4","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"8062e6299efe4d28a34aca27aef37ca9e1c13fba","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.25-4.tgz","fileCount":325,"integrity":"sha512-2HjxOEOo9nZ1K4p1XhGQe0jFEoIR/z2HmI4QPDcB3Nn9p7xnMJUVqZWWkzzfEFZzrV6ivPNV2aAgUdaGzHTYKA==","signatures":[{"sig":"MEUCICbAOb6IZUr+8OGV7MHb9AU87vzMz9o2ztoQvRidbvOrAiEA/JjHjr8wLzQBD57sm6DfZ3bnWDoojMPLBes0VnLGOck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4098626},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"91b477a07769603c430a5425fb8c8bd6d8d93d47","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.25-4_1774492629297_0.4948696596536377","host":"s3://npm-registry-packages-npm-production"}},"2026.3.29-1":{"name":"@ema.co/mcp-toolkit","version":"2026.3.29-1","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.3.29-1","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"c7466484452e20c4133b738ee2f6d94fecd209ca","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.3.29-1.tgz","fileCount":327,"integrity":"sha512-m8PbH53Zdfb918XNoTlVuOYwe7VGkf8n/H4usp7ivxDcGjYkd9a0ZyCZSeLz8ZYntjEaNcuJFp5+6wNQsnfW5Q==","signatures":[{"sig":"MEUCIQCdLmAQDP//kDXf71HQ1aBB/BL92EnJD0sdk1GLaudohAIgPK9Ooqd1SUhqkZchRxNSQqLPXJHa9tKxgiOVn9O8qx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4119145},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"1170f13b4e76ae75bdceaa7add75f501940080c4","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.3.29-1_1774763586364_0.521409815020438","host":"s3://npm-registry-packages-npm-production"}},"2026.4.9":{"name":"@ema.co/mcp-toolkit","version":"2026.4.9","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.4.9","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"4d78391092c1139b4925d3aab5fa69c9f3fc1317","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.4.9.tgz","fileCount":332,"integrity":"sha512-MCrFGGPwE0dvnPftH8PR/gDySGq9seKkWcmSSGFmPBziXfmwVYQbjBEDvccCYPV3t0o8ZYeH7myR4LijiwdLLw==","signatures":[{"sig":"MEUCIQDV5CJRn3ej93nM/7SfAVjqGAGd+8uyB4uWXiZ7E367BgIgNosLf7VOCY268q6Z7hJJngrdnW2PmOYmrV2w7IiDEH4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4294870},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"6789531f9ef09cef64ff4d097cb75f469d485f09","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.11.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.4.9_1775713591405_0.9681191224389958","host":"s3://npm-registry-packages-npm-production"}},"2026.4.9-1":{"name":"@ema.co/mcp-toolkit","version":"2026.4.9-1","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.4.9-1","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"717183e6bdc0495cbe0cb6c0e6de196615ad5687","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.4.9-1.tgz","fileCount":332,"integrity":"sha512-pxKKwjcCdcx0xRIEjsbS6j2LUQP5/niQGGKuK70OytbcWcIbEaHKOtgC/znjj+MxTrJwuV9GXTxc6fdEjlaurA==","signatures":[{"sig":"MEUCIAhdvfX69+31E1D1Rh9UCy8TigC8EhGkHgjrlmaH1faHAiEAtt76lD+nblvLZURI5rsdSDX4NXMWCZJuTV7aKs8y9hU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4304937},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"b62e14d3494096ab1b149044e0eb117673b56627","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.11.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.4.9-1_1775733547402_0.6388111096027469","host":"s3://npm-registry-packages-npm-production"}},"2026.4.9-2":{"name":"@ema.co/mcp-toolkit","version":"2026.4.9-2","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","_id":"@ema.co/mcp-toolkit@2026.4.9-2","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"bin":{"ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","mcp-toolkit":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"dist":{"shasum":"4390cb6d4e12c6cf015248e6cab61deb4852e1de","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.4.9-2.tgz","fileCount":332,"integrity":"sha512-el6Lit9+dAWpPEgmyDp71gC7iCKzqBqkQPkHuT3QZFRdujn0Cuk3n3t58+MBu8BnlFTiFhRE/4UiOLqkn3ORUA==","signatures":[{"sig":"MEQCICEqFCYpkKlG1h36eqtB85dgT0byGIX4srGZGm/d0tduAiAd9/5uIFOSwo90JRT00wEv5SGBSIANFj0QzK3AIRnMAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4308510},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"},"./sdk":{"types":"./dist/sdk/index.d.ts","import":"./dist/sdk/index.js"}},"gitHead":"cb0524562f83c50da751d9afbf902e0eddfbdecb","scripts":{"cli":"tsx src/cli/index.ts","dev":"tsx src/index.ts","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","test":"vitest run --exclude 'test/integration/**'","build":"tsc && npm run build:verify","start":"node dist/index.js","prepare":"husky","restart":"npm run stop && npm run dev","test:all":"npm run test && npm run test:smoke && npm run test:integration","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","precommit":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:smoke":"vitest run test/smoke/","test:watch":"vitest --exclude 'test/integration/**'","lint:unused":"knip","restart:mcp":"npm run stop && npm run mcp","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","check:publish":"tsx scripts/check-publish-content.ts","release:check":"tsx scripts/check-release-need.ts","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","generate:skill":"tsx scripts/generate-skill.ts","generate:types":"tsx scripts/generate-types.ts","knowledge:sync":"tsx scripts/sync-knowledge.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","check:contracts":"tsx scripts/check-api-contracts.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","generate:templates":"tsx scripts/generate-templates.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"repository":{"url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git","type":"git"},"_npmVersion":"11.11.0","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.1","yaml":"^2.8.2","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","better-sqlite3":"^11.7.0","@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","glob":"^13.0.6","knip":"^5.81.0","husky":"^9.1.7","vitest":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.10.2","@bufbuild/buf":"^1.34.0","@types/js-yaml":"^4.0.9","@types/node-cron":"^3.0.11","@anthropic-ai/sdk":"^0.78.0","openapi-typescript":"^7.0.0","@hey-api/openapi-ts":"^0.90.4","@vitest/coverage-v8":"^4.0.17","@types/better-sqlite3":"^7.6.11","@bufbuild/protoc-gen-es":"^2.2.0"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/mcp-toolkit_2026.4.9-2_1775773016822_0.7551064270486152","host":"s3://npm-registry-packages-npm-production"}},"2026.4.9-3":{"name":"@ema.co/mcp-toolkit","version":"2026.4.9-3","description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"mcp-toolkit":"dist/mcp/server.js","ema":"dist/cli/index.js","ema-mcp":"dist/mcp/server.js","ema-mcp-toolkit":"dist/mcp/server.js"},"exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./sdk":{"import":"./dist/sdk/index.js","types":"./dist/sdk/index.d.ts"},"./mcp":{"import":"./dist/mcp/index.js","types":"./dist/mcp/index.d.ts"}},"scripts":{"build":"tsc && npm run build:verify","build:verify":"node dist/cli/index.js help > /dev/null && node dist/mcp/server.js --help 2>/dev/null || true","dev":"tsx src/index.ts","start":"node dist/index.js","mcp":"tsx src/mcp/server.ts","stop":"lsof -ti:8080 | xargs kill -9 2>/dev/null; pkill -f 'tsx.*src/(index|mcp)' || pkill -f 'node.*dist/(index|mcp)' || true","restart":"npm run stop && npm run dev","restart:mcp":"npm run stop && npm run mcp","cli":"tsx src/cli/index.ts","test":"vitest run --exclude 'test/integration/**'","test:watch":"vitest --exclude 'test/integration/**'","test:coverage":"vitest run --coverage --exclude 'test/integration/**'","test:smoke":"vitest run test/smoke/","test:integration":"EMA_TEST_INTEGRATION=true vitest run --config vitest.integration.config.ts","test:all":"npm run test && npm run test:smoke && npm run test:integration","typecheck":"tsc --noEmit","lint:unused":"knip","precommit":"npm run typecheck && npm run test","prepare":"husky","check:publish":"tsx scripts/check-publish-content.ts","prepublishOnly":"npm run build && npm run test && npm run check:publish","generate:types":"tsx scripts/generate-types.ts","generate:api-client":"npx @hey-api/openapi-ts -i src/sdk/generated/openapi.json -o src/sdk/generated/api-client -c @hey-api/client-fetch && tsx scripts/fix-generated-esm-imports.ts","generate:protos":"buf generate ../ema-repos/protos --template buf.gen.yaml","generate:proto-fields":"tsx scripts/generate-proto-fields.ts","generate:agent-catalog":"tsx scripts/generate-agent-catalog.ts","generate:agent-catalog:extract":"tsx scripts/generate-agent-catalog.ts --extract-overlay","generate:deprecated-actions":"tsx scripts/generate-deprecated-actions.ts","generate:skill":"tsx scripts/generate-skill.ts","generate:skill:check":"tsx scripts/generate-skill.ts --check","generate:templates":"tsx scripts/generate-templates.ts","generate:templates:check":"tsx scripts/generate-templates.ts --check","generate:type-compatibility":"tsx scripts/generate-type-compatibility.ts","generate:stage-snapshot":"tsx scripts/generate-stage-snapshot.ts","generate:stage-snapshot:check":"tsx scripts/generate-stage-snapshot.ts --check","generate:all":"npm run generate:protos && npm run generate:api-client && npm run generate:agent-catalog && npm run generate:templates && npm run generate:skill && npm run generate:type-compatibility && npm run generate:stage-snapshot","knowledge:extract":"tsx scripts/extract-knowledge.ts","knowledge:publish":"tsx scripts/extract-knowledge.ts --push","knowledge:dry-run":"tsx scripts/extract-knowledge.ts --dry-run","knowledge:sync":"tsx scripts/sync-knowledge.ts","check:contracts":"tsx scripts/check-api-contracts.ts","check:schema-sync":"tsx scripts/check-schema-handler-sync.ts","check:prompt-refs":"tsx scripts/check-prompt-refs.ts","check:action-aliases":"tsx scripts/check-action-aliases.ts","check:all":"npm run check:contracts && npm run check:schema-sync && npm run check:prompt-refs && npm run check:action-aliases && npm run generate:skill:check","release:check":"tsx scripts/check-release-need.ts"},"repository":{"type":"git","url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git"},"keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","publishConfig":{"access":"public"},"engines":{"node":">=18.0.0"},"dependencies":{"@bufbuild/protobuf":"^2.2.0","@connectrpc/connect":"^2.1.1","@connectrpc/connect-node":"^2.1.1","@modelcontextprotocol/sdk":"^1.25.2","better-sqlite3":"^11.7.0","fastify":"^5.2.0","js-yaml":"^4.1.0","node-cron":"^3.0.3","yaml":"^2.8.2","zod":"^3.24.1"},"devDependencies":{"@anthropic-ai/sdk":"^0.78.0","@bufbuild/buf":"^1.34.0","@bufbuild/protoc-gen-es":"^2.2.0","@hey-api/openapi-ts":"^0.90.4","@types/better-sqlite3":"^7.6.11","@types/js-yaml":"^4.0.9","@types/node":"^22.10.2","@types/node-cron":"^3.0.11","@vitest/coverage-v8":"^4.0.17","glob":"^13.0.6","husky":"^9.1.7","knip":"^5.81.0","openapi-typescript":"^7.0.0","tsx":"^4.19.2","typescript":"^5.7.2","vitest":"^4.0.16"},"optionalDependencies":{"playwright-chromium":"^1.58.2"},"gitHead":"9fa003596d3cdca26b8d40d54e4d3dda69cf594e","_id":"@ema.co/mcp-toolkit@2026.4.9-3","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-b498UdycNYXvDkT9QEzbjZDDXJLc7Hq3SBkYcnh55zWxZXw2ufqXvQXeuO/paE/a/Dr5ECN39J0sxnXgDo02dw==","shasum":"6dc426edcc886f3bb48512d5502632134d4ff524","tarball":"https://registry.npmjs.org/@ema.co/mcp-toolkit/-/mcp-toolkit-2026.4.9-3.tgz","fileCount":333,"unpackedSize":4312836,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHMeB9+Gc+e+CXZaGFkxgi521PO6veVWL4bKXPfY8kurAiBYM5T24aFeSBnyI8O5aNFnBr99NygqJJ4UZksFnG1QAw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2be8eae4-1b80-4e56-855b-987b292c2e33"}},"directories":{},"maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-toolkit_2026.4.9-3_1775775920101_0.7879518835848265"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-11T20:13:14.170Z","modified":"2026-04-09T23:05:20.459Z","0.2.0":"2026-01-11T20:13:14.450Z","0.2.1":"2026-01-11T20:41:56.571Z","0.2.2":"2026-01-11T20:51:42.908Z","0.2.3":"2026-01-11T21:27:48.688Z","0.3.0":"2026-01-12T00:21:27.768Z","1.4.0":"2026-01-12T21:37:43.929Z","1.4.2":"2026-01-13T02:37:09.806Z","1.4.3":"2026-01-13T15:33:15.399Z","1.5.0":"2026-01-14T23:48:06.211Z","1.5.1":"2026-01-15T01:29:23.574Z","1.5.2":"2026-01-15T08:45:49.580Z","1.6.0":"2026-01-16T14:02:21.459Z","1.7.0":"2026-01-17T14:34:19.174Z","1.7.1":"2026-01-17T23:23:40.631Z","2026.1.17":"2026-01-17T23:42:31.651Z","2026.1.21":"2026-01-21T21:01:58.326Z","2026.1.24":"2026-01-24T04:34:26.343Z","2026.1.25":"2026-01-24T23:56:20.616Z","2026.1.26":"2026-01-26T04:07:55.253Z","2026.1.26-3":"2026-01-26T14:04:26.161Z","2026.1.26-4":"2026-01-26T22:22:16.834Z","2026.1.27":"2026-01-27T06:38:47.022Z","2026.1.27-1":"2026-01-27T07:12:54.088Z","2026.1.27-2":"2026-01-27T07:20:12.384Z","2026.1.27-3":"2026-01-27T07:39:40.433Z","2026.1.27-4":"2026-01-27T08:03:34.081Z","2026.1.27-5":"2026-01-27T08:30:43.900Z","2026.1.27-6":"2026-01-27T08:40:22.991Z","2026.1.27-7":"2026-01-27T08:47:56.980Z","2026.1.27-8":"2026-01-27T08:56:48.856Z","2026.1.27-9":"2026-01-27T09:00:32.331Z","2026.1.27-10":"2026-01-27T09:18:25.038Z","2026.1.28-2":"2026-01-28T03:03:43.918Z","2026.1.28-3":"2026-01-28T03:14:32.740Z","2026.1.29-2":"2026-01-29T03:59:02.317Z","2026.1.29-3":"2026-01-29T04:24:39.613Z","2026.1.29-4":"2026-01-29T05:46:14.920Z","2026.1.29-5":"2026-01-29T05:54:05.447Z","2026.1.29-6":"2026-01-29T06:01:57.809Z","2026.1.29-7":"2026-01-29T06:16:15.652Z","2026.1.29-8":"2026-01-29T06:21:12.858Z","2026.1.29-9":"2026-01-29T06:29:48.412Z","2026.1.29-10":"2026-01-29T07:13:38.043Z","2026.1.29-11":"2026-01-29T07:23:06.049Z","2026.1.29-12":"2026-01-29T11:47:19.812Z","2026.1.30-1":"2026-01-31T00:16:56.223Z","2026.2.5":"2026-02-05T17:02:35.065Z","2026.2.13":"2026-02-13T22:02:52.103Z","2026.2.19":"2026-02-20T00:54:36.502Z","2026.2.23":"2026-02-23T10:13:28.431Z","2026.2.23-1":"2026-02-23T15:27:23.636Z","2026.2.23-2":"2026-02-23T17:55:06.440Z","2026.2.24":"2026-02-25T03:57:16.718Z","2026.2.27":"2026-02-26T21:17:41.761Z","2026.2.27-1":"2026-02-27T01:39:39.971Z","2026.2.27-2":"2026-02-27T10:39:14.431Z","2026.2.28":"2026-02-28T16:29:07.128Z","2026.2.28-1":"2026-02-28T22:28:14.662Z","2026.3.9":"2026-03-09T22:05:05.880Z","2026.3.11-1":"2026-03-11T06:35:23.403Z","2026.3.12":"2026-03-12T20:52:56.393Z","2026.3.12-1":"2026-03-13T00:06:07.164Z","2026.3.14-1":"2026-03-14T11:47:46.283Z","2026.3.15-prelease":"2026-03-16T08:48:35.062Z","2026.3.16":"2026-03-16T09:58:06.665Z","2026.3.16-1":"2026-03-16T16:26:09.936Z","2026.3.16-2":"2026-03-16T17:46:35.877Z","2026.3.16-3":"2026-03-16T20:25:59.244Z","2026.3.19":"2026-03-19T16:08:12.404Z","2026.3.19-1":"2026-03-19T22:35:53.454Z","2026.3.19-2":"2026-03-20T02:14:14.383Z","2026.3.20":"2026-03-20T08:42:11.666Z","2026.3.20-1":"2026-03-20T20:07:52.262Z","2026.3.20-2":"2026-03-20T21:28:02.694Z","2026.3.23-2":"2026-03-23T10:47:40.397Z","2026.3.23-3":"2026-03-23T10:59:01.358Z","2026.3.24":"2026-03-24T08:44:42.761Z","2026.3.24-1":"2026-03-24T09:40:04.390Z","2026.3.24-2":"2026-03-24T21:58:00.735Z","2026.3.24-3":"2026-03-24T22:08:58.228Z","2026.3.24-4":"2026-03-24T22:10:45.898Z","2026.3.24-5":"2026-03-24T22:59:42.122Z","2026.3.24-6":"2026-03-24T23:27:52.042Z","2026.3.24-7":"2026-03-24T23:58:20.144Z","2026.3.24-8":"2026-03-25T00:35:20.282Z","2026.3.24-9":"2026-03-25T01:34:37.360Z","2026.3.25-1":"2026-03-25T07:35:39.759Z","2026.3.25-2":"2026-03-25T07:53:36.268Z","2026.3.25-3":"2026-03-25T08:02:29.153Z","2026.3.25-4":"2026-03-26T02:37:09.541Z","2026.3.29-1":"2026-03-29T05:53:06.572Z","2026.4.9":"2026-04-09T05:46:31.605Z","2026.4.9-1":"2026-04-09T11:19:07.641Z","2026.4.9-2":"2026-04-09T22:16:57.108Z","2026.4.9-3":"2026-04-09T23:05:20.313Z"},"bugs":{"url":"https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues"},"author":{"name":"Ema Inc."},"license":"AGPL-3.0-only","homepage":"https://github.com/Ema-Unlimited/ema-mcp-toolkit#readme","keywords":["ema","mcp","model-context-protocol","ai-assistant","cursor","claude","workflow","ai-employee"],"repository":{"type":"git","url":"git+https://github.com/Ema-Unlimited/ema-mcp-toolkit.git"},"description":"Ema AI Employee toolkit - MCP server, CLI, and SDK for managing AI Employees across environments","maintainers":[{"name":"steven.poitras","email":"steven.poitras@gmail.com"}],"readme":"# @ema.co/mcp-toolkit\n\nMCP (Model Context Protocol) server for managing Ema AI Employees. Works with Cursor, Claude Desktop, Claude Code, VS Code, Windsurf, and other MCP clients.\n\nOnce set up, you can talk to your AI assistant in plain English:\n\n- _\"List all my AI Employees\"_\n- _\"Create a new chat bot called IT Support\"_\n- _\"Show me the workflow for the Sales Assistant\"_\n- _\"What went wrong in the last conversation with the HR Bot?\"_\n\nThe toolkit connects tools like **Cursor**, **Claude Desktop**, **Claude Code**, **Windsurf**, and **VS Code Copilot** directly to your Ema account.\n\n**No coding experience required. Estimated setup time: 5 minutes.**\n\n---\n\n## Prerequisites\n\nBefore you begin, make sure you have:\n\n- [ ] **Node.js 18+** installed ([download here](https://nodejs.org/) — choose **LTS**)\n- [ ] **An Ema account** with access to at least one environment (demo, dev, staging, or prod)\n- [ ] **One of the supported AI tools** installed (Cursor, Claude Desktop, Claude Code, VS Code, Windsurf)\n- [ ] **gcloud CLI** (optional) — required for `knowledge` search. Install: [cloud.google.com/sdk/docs/install](https://cloud.google.com/sdk/docs/install), then run `gcloud auth login` with your @ema.co account\n\nTo check if Node.js is installed, open your terminal and run:\n\n```bash\nnode --version\n# Should show v18.x.x or higher\n```\n\n---\n\n## Quick Start\n\n### Step 1: Configure Your AI Tool\n\nPick your platform and add the MCP server config. No environment variables needed -- authentication happens automatically in the next step.\n\n---\n\n#### Cursor\n\n**1a.** Open MCP settings:\n\n1. Press `Cmd+Shift+P` (Mac) or `Ctrl+Shift+P` (Windows)\n2. Type **\"MCP\"** -> select **\"MCP: Open User Configuration\"**\n   - This opens `~/.cursor/mcp.json`\n\n**1b.** Paste this configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"ema\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ema.co/mcp-toolkit@latest\"]\n    }\n  }\n}\n```\n\n**1c.** Restart the MCP server:\n\n1. Press `Cmd+Shift+P` -> **\"MCP: Restart Server\"** -> select **\"ema\"**\n2. A green dot next to \"ema\" in the MCP panel means it's running\n\n---\n\n#### Claude Desktop\n\nConfig file location:\n\n| OS      | Path                                                              |\n| ------- | ----------------------------------------------------------------- |\n| Mac     | `~/Library/Application Support/Claude/claude_desktop_config.json` |\n| Windows | `%APPDATA%\\Claude\\claude_desktop_config.json`                     |\n\nQuick way to open on Mac:\n\n```bash\nmkdir -p ~/Library/Application\\ Support/Claude\nopen -e ~/Library/Application\\ Support/Claude/claude_desktop_config.json\n```\n\nPaste this configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"ema\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ema.co/mcp-toolkit@latest\"]\n    }\n  }\n}\n```\n\nFully quit Claude Desktop (`Cmd+Q`) and reopen it. Look for the **hammer icon** (tools) at the bottom of the chat input.\n\n---\n\n#### Claude Code (CLI)\n\n```bash\nclaude mcp add ema -- npx -y @ema.co/mcp-toolkit@latest\n```\n\nThat's it. Authentication happens via browser login (see Step 2).\n\n> **Tip:** Add `--global` to make it available across all projects: `claude mcp add --global ema -- npx -y @ema.co/mcp-toolkit@latest`\n\n---\n\n#### VS Code (GitHub Copilot)\n\nRequires a GitHub Copilot subscription with MCP support enabled.\n\n1. Open Settings (`Cmd+,`) -> search **\"mcp\"** -> enable **\"Chat > Agent > MCP: Enabled\"**\n2. Create `.vscode/mcp.json` in your workspace:\n\n```json\n{\n  \"servers\": {\n    \"ema\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ema.co/mcp-toolkit@latest\"]\n    }\n  }\n}\n```\n\n> **Note:** VS Code uses `\"servers\"` (not `\"mcpServers\"` like Cursor).\n\n3. `Cmd+Shift+P` -> **\"MCP: List Servers\"** -> verify \"ema\" is listed and running\n4. Open Copilot Chat -> switch to **Agent** mode\n\n---\n\n#### Windsurf\n\n1. Press `Cmd+Shift+P` -> **\"Open MCP Configuration\"**\n2. Add to `~/.codeium/windsurf/mcp_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"ema\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ema.co/mcp-toolkit@latest\"]\n    }\n  }\n}\n```\n\n3. Restart Windsurf, open Cascade (AI chat)\n\n---\n\n### Step 2: Log In\n\nIn your AI tool's chat, type:\n\n```\nLogin to Ema\n```\n\nThe assistant calls `config(method=\"login\")` and a browser window opens. Log in with your organization's SSO (Okta, Google, etc.) -- the token is captured automatically and stored as a profile. No manual token copying needed.\n\n> **First time?** If Playwright is not installed, the toolkit opens your system browser and guides you through a one-time paste-token fallback. For fully automatic login, install Playwright: `npm install -g playwright && npx playwright install chromium`\n\nTo log in to a specific environment (e.g., staging):\n\n```\nLogin to Ema staging\n```\n\n### Step 3: Verify It Works\n\nAsk your AI assistant:\n\n```\nList all my AI Employees\n```\n\nYou should see your personas listed. Then try:\n\n```\nShow me the workflow for <persona name>\n```\n\n---\n\n## Using the Toolkit\n\nEverything works through natural language. Describe what you want and the assistant handles the details using the MCP tools behind the scenes.\n\n### Explore Your Environment\n\nStart by seeing what's available:\n\n```\nList all my AI Employees\n```\n\n```\nShow me the templates available for creating new personas\n```\n\n```\nWhat's my current profile?\n```\n\nThe assistant calls `persona(method=\"list\")`, `template(method=\"list\")`, and `config()` under the hood. You don't need to know the tool names -- just ask.\n\n### Create an AI Employee\n\nDescribe what you need in plain English:\n\n```\nI need a voice AI employee that:\n- Answers IT support questions\n- Can look up information in our knowledge base\n- Escalates to a human if it can't help\n```\n\nThe assistant will:\n\n1. Search for the right template\n2. Ask you clarifying questions (knowledge sources, escalation rules, hours)\n3. Create the persona with the right workflow\n4. **Preview** the configuration before deploying\n5. Deploy only after you confirm\n\nYou can also create simpler personas directly:\n\n```\nCreate a new chat persona called \"Customer FAQ Bot\" that answers\nquestions from a knowledge base\n```\n\n### Upload Knowledge\n\nGive your AI Employees data to work with:\n\n```\nUpload the file /path/to/faq.pdf to the IT Support persona's knowledge base\n```\n\nThen verify it was indexed:\n\n```\nHow many documents does the IT Support bot have in its knowledge base?\n```\n\nThe toolkit supports PDF, DOCX, TXT, CSV, and other common formats. You can upload individual files or entire directories.\n\n### Inspect and Modify Workflows\n\nEvery AI Employee has a workflow that defines how it processes requests. The modification pattern is always three steps: **get, modify, deploy**.\n\n**View a workflow:**\n\n```\nShow me the workflow for the Sales Assistant\n```\n\n**Add a step:**\n\n```\nAdd an approval step before the Sales Bot sends any emails\n```\n\nThe assistant will:\n\n1. Get the current workflow (`workflow(mode=\"get\")`)\n2. Show you what it plans to change\n3. Preview the change without deploying\n4. Deploy only after you confirm\n\n**More examples:**\n\n```\nRemove the web search step from the HR Bot's workflow\n```\n\n```\nChange the IT Support bot to escalate when confidence is below 70%\n```\n\n### Debug Issues\n\nWhen something goes wrong with an AI Employee, trace the problem step by step:\n\n**Start with recent conversations:**\n\n```\nShow me recent conversations for the HR Assistant\n```\n\n**Drill into a specific run:**\n\n```\nDebug the last workflow run for the Sales Bot — what went wrong?\n```\n\n**Get detailed traces:**\n\n```\nShow me the action-level details for workflow run abc-123\n```\n\nThe debug flow follows a natural path: **conversations** -> pick a workflow run -> **show work** (all actions) -> **action detail** (inputs, outputs, LLM calls).\n\n### Search Platform Knowledge\n\nThe `knowledge` tool searches across actions, patterns, rules, and platform concepts:\n\n```\nSearch for email-related actions in Ema\n```\n\n```\nWhat workflow patterns are available for voice bots?\n```\n\n```\nHow do I wire search results to an LLM?\n```\n\n### Generate Documents\n\nFor document-type AI Employees, generate content end-to-end:\n\n```\nGenerate a proposal about Q3 marketing strategy using the Content Writer persona\n```\n\nThe assistant handles the full pipeline: create project, generate outline, generate sections, and poll until complete. You can refine sections afterward:\n\n```\nMake the executive summary more concise\n```\n\n### Knowledge Search (requires gcloud)\n\nThe `knowledge` tool searches Ema's Discovery Engine for actions, patterns, rules, and platform concepts. It requires Google Cloud authentication:\n\n```bash\n# One-time setup\ngcloud auth login  # Use your @ema.co Google account\n```\n\nThen in your AI tool:\n\n```\nSearch for email-related actions in Ema\n```\n\n```\nHow do I wire search results to an LLM?\n```\n\nIf gcloud is not installed or authenticated, knowledge search falls back to a keyword-only mode with limited results. For the best experience, install gcloud and authenticate.\n\n> **Tip:** On Mac, install via `brew install google-cloud-sdk`. On other platforms, see [cloud.google.com/sdk/docs/install](https://cloud.google.com/sdk/docs/install).\n\n### Tips\n\n- **Ask in plain English** -- the assistant understands intent, not just commands\n- **The assistant previews before deploying** -- you always get to review changes\n- **Use `knowledge()` to learn** -- search for actions, patterns, and best practices when you're unsure how something works\n- **Switch profiles** -- ask _\"switch to my staging profile\"_ or use `config(method=\"use\", profile=\"acme-corp-staging\")`\n- **Multiple tenants** -- if you have access to multiple Ema tenants, `config(method=\"login\")` lets you pick which one\n\n---\n\n## Reference\n\n### MCP Tools\n\n| Tool           | Purpose                                                                     |\n| -------------- | --------------------------------------------------------------------------- |\n| `persona`      | AI Employee management (list/get/create/update/delete, data, sync, version) |\n| `workflow`     | Workflow get/deploy/validate/optimize (LLM-driven modification)             |\n| `knowledge`    | Platform search, publish, and source management (requires gcloud auth)      |\n| `debug`        | Audit conversations and workflow execution traces                           |\n| `conversation` | Chat conversation management and HITL continuations                         |\n| `document`     | Document generation from document-type AI Employees                         |\n| `template`     | Persona template CRUD (create/list/get/update/delete)                       |\n| `config`       | Profile management, auth, environment switching                             |\n| `feedback`     | Agent feedback collection (quality, corrections, probes)                    |\n\n**Internal aliases** (backwards compat): `action`, `catalog`, `reference`, `data`, `sync`, `demo`\n\n### Tool Call Examples\n\n**Create a new AI Employee:**\n\n```\npersona(method=\"create\", name=\"IT Support\", type=\"chat\", input=\"IT helpdesk with KB search\")\n```\n\n**Workflow modification (3-step pattern):**\n\n```\nworkflow(mode=\"get\", persona_id=\"abc-123\")\n// LLM modifies the workflow_def JSON\nworkflow(mode=\"deploy\", persona_id=\"abc-123\", base_fingerprint=\"<fingerprint>\", workflow_def={...})\n```\n\n**Search platform knowledge:**\n\n```\nknowledge(\"how to wire search results to LLM\")\nknowledge(\"send_email\")\n```\n\n### Authentication\n\nAuthentication is handled automatically via browser-based OAuth. On first use, the agent opens a browser window for you to log in via your organization's SSO (Okta, Google, etc.). The token is captured and stored locally.\n\nYour credentials are stored in `~/.ema-mcp/credentials.json` as profiles. Each profile represents a tenant + environment combination (e.g., \"acme-corp-prod\"). Use `config(method=\"profiles\")` to list them.\n\n**Key commands:**\n\n| Command                                        | What it does                   |\n| ---------------------------------------------- | ------------------------------ |\n| `config()`                                     | Show current profile and auth status |\n| `config(method=\"login\")`                       | Login via browser (default: prod)    |\n| `config(method=\"login\", env=\"demo\")`           | Login to a specific environment      |\n| `config(method=\"profiles\")`                    | List all profiles                    |\n| `config(method=\"use\", profile=\"acme-staging\")` | Switch active profile                |\n| `config(method=\"logout\")`                      | Remove current profile credential    |\n\n**Tokens expire after ~24 hours.** When your token expires, the toolkit will prompt you to re-authenticate. Just say _\"login to Ema\"_ again.\n\n### Profiles\n\nA **profile** = tenant + environment + auth credentials. Example: `acme-corp-prod` = Acme Corp on production.\n\n- Profiles are created automatically when you log in\n- The active profile determines which tenant and environment all tools target\n- Switch profiles to work across multiple tenants or environments\n- Profile data is stored in `~/.ema-mcp/config.json`\n\n### Ema Environments\n\n| Environment | App URL                                      | API URL                                          |\n| ----------- | -------------------------------------------- | ------------------------------------------------ |\n| Production  | [app.ema.co](https://app.ema.co)             | [api.ema.co](https://api.ema.co)                 |\n| Demo        | [demo.ema.co](https://demo.ema.co)           | [api.demo.ema.co](https://api.demo.ema.co)       |\n| Staging     | [staging.ema.co](https://staging.ema.co)     | [api.staging.ema.co](https://api.staging.ema.co) |\n| Dev         | [dev.ema.co](https://dev.ema.co)             | [api.dev.ema.co](https://api.dev.ema.co)         |\n\n### Configuration\n\nThe primary configuration method is **profile-based**. When you run `config(method=\"login\")`, the toolkit stores your credentials and tenant information in `~/.ema-mcp/config.json`. All tools automatically use the active profile.\n\n**Config file** (advanced) -- for custom setups, create `ema.config.yaml`:\n\n```yaml\nenvironments:\n  - name: prod\n    baseUrl: https://api.ema.co\n    bearerTokenEnv: EMA_PROD_BEARER_TOKEN\n    isMaster: true\n\n  - name: custom\n    baseUrl: https://api.custom.ema.co\n    bearerTokenEnv: EMA_CUSTOM_BEARER_TOKEN\n```\n\n### Dynamic Resources\n\n| Resource                                   | Purpose                                    |\n| ------------------------------------------ | ------------------------------------------ |\n| `ema://docs/usage-guide`                   | Complete usage guide (auto-generated)      |\n| `ema://docs/knowledge-publish`             | Knowledge publish guide (metadata, scopes) |\n| `ema://docs/feedback-confidence-pipeline`  | Feedback -> confidence scoring data flow   |\n| `ema://docs/vertex-ai-search-integrations` | Discovery Engine integrations reference    |\n| `ema://catalog/agents-summary`             | Action catalog summary                     |\n| `ema://catalog/patterns`                   | Workflow wiring patterns                   |\n| `ema://rules/anti-patterns`                | Common workflow mistakes                   |\n| `ema://rules/extraction-column-format`     | Dashboard extraction column wiring         |\n| `ema://guidance/rules`                     | Structured rules as JSON                   |\n| `ema://guidance/cursor-rule`               | Export as Cursor .mdc rule                 |\n| `ema://guidance/server-instructions`       | Server instructions text                   |\n\n### Environment Variables (Legacy)\n\nEnvironment variables still work for authentication but are no longer the primary method. Use `config(method=\"login\")` instead for a better experience with tenant-aware profiles.\n\n| Variable                 | Description                                               |\n| ------------------------ | --------------------------------------------------------- |\n| `EMA_BEARER_TOKEN`       | Default bearer token                                      |\n| `EMA_<ENV>_BEARER_TOKEN` | Token for specific environment (PROD, DEMO, DEV, STAGING) |\n| `EMA_API_KEY`            | API key (auto-exchanges for JWT)                          |\n| `EMA_<ENV>_API_KEY`      | API key for specific environment                          |\n| `EMA_ENV_NAME`           | Default environment name                                  |\n| `EMA_AGENT_SYNC_CONFIG`  | Path to config file                                       |\n\n### Config File Locations\n\n| Platform                 | Config File                                                       |\n| ------------------------ | ----------------------------------------------------------------- |\n| Cursor                   | `~/.cursor/mcp.json`                                              |\n| Claude Desktop (Mac)     | `~/Library/Application Support/Claude/claude_desktop_config.json` |\n| Claude Desktop (Windows) | `%APPDATA%\\Claude\\claude_desktop_config.json`                     |\n| Claude Code              | Managed via `claude mcp add` command                              |\n| VS Code                  | `.vscode/mcp.json` (workspace) or user settings                   |\n| Windsurf                 | `~/.codeium/windsurf/mcp_config.json`                             |\n\n### CLI\n\n```bash\nema personas list                            # List personas\nema sync persona \"My Bot\" --target dev --dry-run  # Sync a persona\nema sync status                              # Check sync status\n```\n\n### SDK\n\n```typescript\nimport { EmaClient } from \"@ema.co/mcp-toolkit/sdk\";\n\nconst client = new EmaClient({\n  name: \"prod\",\n  baseUrl: \"https://api.ema.co\",\n  bearerToken: process.env.EMA_PROD_BEARER_TOKEN!,\n});\n\nconst personas = await client.getPersonasForTenant();\nconst persona = await client.getPersonaById(\"uuid\");\nconst templates = await client.getPersonaTemplates();\nconst actions = await client.listActions();\n```\n\n### Installation (Alternative Methods)\n\nMost users should use the `npx` command in their AI tool config (see Quick Start). These are for developers and advanced use cases.\n\n**Global install:** `npm install -g @ema.co/mcp-toolkit` then run `ema-mcp`\n\n**Clone & build:**\n\n```bash\ngit clone https://github.com/Ema-Unlimited/ema-mcp-toolkit.git\ncd ema-mcp-toolkit && npm install && npm run build\n```\n\n---\n\n## Troubleshooting\n\n### \"No active profile\" or \"auth: missing\"\n\n**Problem:** You haven't logged in yet, or your session expired.\n\n**Fix:** Tell your AI assistant: _\"Login to Ema\"_. A browser window opens for you to authenticate via SSO.\n\n### \"Browser automation not available\"\n\n**Problem:** Playwright is not installed, so the automatic browser login can't run.\n\n**Fix:**\n\n1. Install Playwright: `npm install -g playwright && npx playwright install chromium`\n2. Or use the paste-token fallback -- the toolkit will guide you through it when Playwright isn't available\n\n### \"OAuth credential expired or missing\"\n\n**Problem:** Your authentication token has expired (tokens last ~24 hours).\n\n**Fix:** Say _\"Login to Ema\"_ again. The browser opens, you authenticate, and a fresh token is stored.\n\n### Server not starting\n\n**Problem:** The MCP server failed to launch.\n\n**Fix:**\n\n1. Verify Node.js: `node --version` (need 18+)\n2. Test manually: `npx -y @ema.co/mcp-toolkit@latest --help`\n3. Check for JSON syntax errors in your config file (missing commas, brackets)\n4. Restart: `Cmd+Shift+P` -> \"MCP: Restart Server\" -> \"ema\"\n\n### \"Cannot find module\" or npm errors\n\n**Problem:** npx cache might be stale.\n\n**Fix:**\n\n```bash\nnpx clear-npx-cache\nnpx -y @ema.co/mcp-toolkit@latest --help\n```\n\n### Knowledge search not working\n\n**Problem:** `knowledge()` returns no results or falls back to keyword-only mode.\n\n**Fix:**\n\n1. Install gcloud CLI: `brew install google-cloud-sdk` (Mac) or see [cloud.google.com/sdk/docs/install](https://cloud.google.com/sdk/docs/install)\n2. Authenticate: `gcloud auth login` (use your @ema.co Google account)\n3. Verify: `gcloud auth print-access-token` should return a token\n4. If using MCP in a sandboxed environment where `gcloud` can't exec, set `EMA_GCP_ACCESS_TOKEN` manually:\n   ```bash\n   export EMA_GCP_ACCESS_TOKEN=$(gcloud auth print-access-token)\n   ```\n\n> **Note:** GCP tokens expire after ~1 hour. The toolkit attempts to refresh automatically via `gcloud`, but sandboxed environments may need the env var approach.\n\n### Multiple profiles not showing\n\n**Problem:** You've logged into multiple environments but only see one.\n\n**Fix:** Ask _\"show my profiles\"_ or call `config(method=\"profiles\")` to list all profiles. Use `config(method=\"use\", profile=\"name\")` to switch.\n\n---\n\n## Legacy Authentication\n\nIf you prefer not to use browser-based login, you can still authenticate using environment variables. This method requires manually extracting a bearer token from the Ema web app.\n\n### Get Your Bearer Token\n\n**1.** Log in to your Ema environment:\n\n| Environment | URL                                      |\n| ----------- | ---------------------------------------- |\n| Production  | [app.ema.co](https://app.ema.co)         |\n| Demo        | [demo.ema.co](https://demo.ema.co)       |\n| Dev         | [dev.ema.co](https://dev.ema.co)         |\n| Staging     | [staging.ema.co](https://staging.ema.co) |\n\n**2.** Open browser DevTools:\n\n| OS            | Shortcut                    |\n| ------------- | --------------------------- |\n| Mac           | `Cmd + Option + I`          |\n| Windows/Linux | `F12` or `Ctrl + Shift + I` |\n\n**3.** Copy the bearer token:\n\n1. Click the **Network** tab in DevTools\n2. Refresh the page (so new requests appear)\n3. Click on **any** request in the list\n4. Look for the **Authorization** header in the \"Headers\" panel\n5. Copy the value -- keep **only the part after \"Bearer \"**\n\n```\n                       +-- Copy everything AFTER \"Bearer \"\n                       |\nAuthorization: Bearer your-token-goes-here\n```\n\n> **Note:** Tokens expire after ~24 hours. When you get authentication errors, repeat this step for a fresh token.\n\n### Save Your Token\n\nAdd the token to your shell profile so it persists across sessions.\n\n**Mac/Linux** -- edit `~/.zshrc` (or `~/.bashrc`):\n\n```bash\n# Open the file in a text editor\nnano ~/.zshrc\n```\n\nAdd these lines at the bottom (replace with your actual tokens):\n\n```bash\n# Ema MCP Toolkit tokens\nexport EMA_DEMO_BEARER_TOKEN=\"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...\"\nexport EMA_PROD_BEARER_TOKEN=\"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...\"\n```\n\nSave the file (`Ctrl+O`, then `Ctrl+X` in nano), then reload:\n\n```bash\nsource ~/.zshrc\n```\n\n**Windows** -- use PowerShell:\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"EMA_DEMO_BEARER_TOKEN\", \"eyJ...\", \"User\")\n[Environment]::SetEnvironmentVariable(\"EMA_PROD_BEARER_TOKEN\", \"eyJ...\", \"User\")\n```\n\n> **Tip:** You only need tokens for environments you actually use. One token is enough to get started.\n\n### Configure with Environment Variables\n\nWhen using legacy auth, add an `\"env\"` block to your MCP server config:\n\n```json\n{\n  \"mcpServers\": {\n    \"ema\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ema.co/mcp-toolkit@latest\"],\n      \"env\": {\n        \"EMA_DEMO_BEARER_TOKEN\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...\"\n      }\n    }\n  }\n}\n```\n\nThe toolkit auto-detects environments from `EMA_<ENV>_BEARER_TOKEN` environment variable patterns.\n\n---\n\n## Need Help?\n\n- **In your AI tool:** Just ask! The toolkit includes built-in guidance. Try: _\"How do I create a voice persona?\"_\n- **GitHub Issues:** [github.com/Ema-Unlimited/ema-mcp-toolkit/issues](https://github.com/Ema-Unlimited/ema-mcp-toolkit/issues)\n- **Ema Support:** Contact your Ema account team\n\n---\n\n## License\n\nThis project is dual-licensed:\n\n- **AGPLv3** for open-source use\n- **Commercial license** for proprietary, hosted, or closed-source use\n\nIf you intend to run this software in production, expose it over a\nnetwork, or integrate it into a proprietary system, you must either\ncomply with AGPLv3 or obtain a commercial license.\n\nSee `LICENSE` and `LICENSE-COMMERCIAL.md` for details.\n","readmeFilename":"README.md"}