{"_id":"@alfe.ai/connectwise-psa-mcp","_rev":"3-204640d387cce3d1b52c49fc74dc2c5e","name":"@alfe.ai/connectwise-psa-mcp","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@alfe.ai/connectwise-psa-mcp","version":"0.1.0","author":{"url":"https://alfe.ai","name":"Alfe"},"license":"UNLICENSED","_id":"@alfe.ai/connectwise-psa-mcp@0.1.0","maintainers":[{"name":"kevupton","email":"kevin@upton.tech"},{"name":"sam-alfe","email":"sam@alfe.ai"}],"homepage":"https://alfe.ai","bin":{"connectwise-psa-mcp":"dist/bin.js"},"dist":{"shasum":"61d8b05c9bccb88674c96061fc731099ef8c384c","tarball":"https://registry.npmjs.org/@alfe.ai/connectwise-psa-mcp/-/connectwise-psa-mcp-0.1.0.tgz","fileCount":12,"integrity":"sha512-R6lP7EZoD6am+E7l4ipRGphz/4fjrJ+X2VkmG7eB44/9eOvWesNvJ3uv/KJQm18Gb/r+Zd5yalVCPE6KuDWN9g==","signatures":[{"sig":"MEYCIQDxKBZzjG3tPDumoUfpOOpAr2zzbY5WY8OmyDxXftAxAwIhAOJrBlKYWoohgpvG6uYOIkJGQtqSMmnxqNkj1/YcVTWZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54149},"main":"./dist/server.js","type":"module","_from":"file:alfe.ai-connectwise-psa-mcp-0.1.0.tgz","types":"./dist/server.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kevupton","email":"kevin@upton.tech"},"_resolved":"/tmp/f141f26981369dce3a063580d98cab68/alfe.ai-connectwise-psa-mcp-0.1.0.tgz","_integrity":"sha512-R6lP7EZoD6am+E7l4ipRGphz/4fjrJ+X2VkmG7eB44/9eOvWesNvJ3uv/KJQm18Gb/r+Zd5yalVCPE6KuDWN9g==","_npmVersion":"10.9.8","description":"ConnectWise PSA MCP server with explicit Alfe connection selection","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.0.5","@alfe.ai/config":"0.4.1","@alfe.ai/agent-api-client":"0.19.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/connectwise-psa-mcp_0.1.0_1788928263871_0.7007961075190738","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@alfe.ai/connectwise-psa-mcp","version":"0.1.1","author":{"url":"https://alfe.ai","name":"Alfe"},"license":"UNLICENSED","_id":"@alfe.ai/connectwise-psa-mcp@0.1.1","maintainers":[{"name":"kevupton","email":"kevin@upton.tech"},{"name":"sam-alfe","email":"sam@alfe.ai"}],"homepage":"https://alfe.ai","bin":{"connectwise-psa-mcp":"dist/bin.js"},"dist":{"shasum":"239143b7f0cdfe1e9bed25b2d4c7138fe459909b","tarball":"https://registry.npmjs.org/@alfe.ai/connectwise-psa-mcp/-/connectwise-psa-mcp-0.1.1.tgz","fileCount":12,"integrity":"sha512-q1me6OC0lNKD3ye8sPx6isQoRXiCB2zkM5OERfGiv6wsQt6Xee2cMoBB7UmDEbnSl3fe/nphvJUY2AaOwliPVA==","signatures":[{"sig":"MEUCIELazrSW6OdaLczuzo3187q4VOiadbV0+8ylWSircKfPAiEAkzO4wFU4lnrG1Xaj2Dw1WNLbMyT2ZQnH9H+eYPBRcRU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC9yyUPg/l4BzLNLWYMANYBuP/J/2qeo7I8xQiQFGM+TAIgHCfWiVWteUSdeJ8B5Iqddh5vPRxhtTshQK6vR+D5wuk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54149},"main":"./dist/server.js","type":"module","_from":"file:alfe.ai-connectwise-psa-mcp-0.1.1.tgz","types":"./dist/server.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kevupton","email":"kevin@upton.tech"},"_resolved":"/tmp/4d4b72ab4a73d5b368eb816807a003ca/alfe.ai-connectwise-psa-mcp-0.1.1.tgz","_integrity":"sha512-q1me6OC0lNKD3ye8sPx6isQoRXiCB2zkM5OERfGiv6wsQt6Xee2cMoBB7UmDEbnSl3fe/nphvJUY2AaOwliPVA==","_npmVersion":"10.9.8","description":"ConnectWise PSA MCP server with explicit Alfe connection selection","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.0.5","@alfe.ai/config":"0.4.1","@alfe.ai/agent-api-client":"0.19.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/connectwise-psa-mcp_0.1.1_1789857350487_0.2567163052011596","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"_id":"@alfe.ai/connectwise-psa-mcp@0.1.2","bin":{"connectwise-psa-mcp":"dist/bin.js"},"dist":{"shasum":"609532a6eb82e79a85f61e84ba565285fe73dc2c","tarball":"https://registry.npmjs.org/@alfe.ai/connectwise-psa-mcp/-/connectwise-psa-mcp-0.1.2.tgz","fileCount":12,"integrity":"sha512-usXXUhbMOdS/1JO5rfL/nk5/MuZHaWD5VaINs9zwjmN95UPRDiJmG14MAbhNH++QVQzYHcprtyQ+9N1tm5lS0g==","signatures":[{"sig":"MEUCICo+NNleQvJDmlU75YWU+3kc7qBuB2Vz3MSfeAZoT7nxAiEApn6Gj8KZ6hbrIv1Pyb9VLhRL/MfAx8suKai1IDNvkIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB4OSlooz/iN0HByuWW7FotnSmqlnmhurqdw90IxNlvsAiAnPAYrJhCCzOmoa+b6FfFS7uj8ZQmKmg51F60iZKTM4A=="}],"unpackedSize":54149},"main":"./dist/server.js","name":"@alfe.ai/connectwise-psa-mcp","type":"module","_from":"file:alfe.ai-connectwise-psa-mcp-0.1.2.tgz","types":"./dist/server.d.ts","author":{"url":"https://alfe.ai","name":"Alfe"},"engines":{"node":">=22"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"}},"license":"UNLICENSED","scripts":{"lint":"eslint .","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"version":"0.1.2","_npmUser":{"name":"kevupton","email":"kevin@upton.tech"},"homepage":"https://alfe.ai","_resolved":"/tmp/9a1eb9dd338d36d76386e08476ea9078/alfe.ai-connectwise-psa-mcp-0.1.2.tgz","_integrity":"sha512-usXXUhbMOdS/1JO5rfL/nk5/MuZHaWD5VaINs9zwjmN95UPRDiJmG14MAbhNH++QVQzYHcprtyQ+9N1tm5lS0g==","_npmVersion":"10.9.8","description":"ConnectWise PSA MCP server with explicit Alfe connection selection","directories":{},"maintainers":[{"name":"kevupton","email":"kevin@upton.tech"},{"name":"sam-alfe","email":"sam@alfe.ai"}],"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.0.5","@alfe.ai/config":"0.4.1","@alfe.ai/agent-api-client":"0.19.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/connectwise-psa-mcp_0.1.2_1789945663154_0.499911686810141"}}},"time":{"created":"2026-09-09T04:31:03.655Z","modified":"2026-09-20T23:07:43.475Z","0.1.0":"2026-09-09T04:31:04.025Z","0.1.1":"2026-09-19T22:35:50.579Z","0.1.2":"2026-09-20T23:07:43.228Z"},"author":{"url":"https://alfe.ai","name":"Alfe"},"license":"UNLICENSED","homepage":"https://alfe.ai","description":"ConnectWise PSA MCP server with explicit Alfe connection selection","maintainers":[{"name":"kevupton","email":"kevin@upton.tech"},{"name":"sam-alfe","email":"sam@alfe.ai"}],"readme":"# ConnectWise PSA MCP\n\nRuntime-neutral stdio MCP server for ConnectWise PSA (formerly Manage). It runs\nunder OpenClaw, Hermes, or Claude Code through the Alfe integration manifest.\n\nLaunch the released package with `npx -y @alfe.ai/connectwise-psa-mcp@0.1.0`.\nNode 22+ and an existing `alfe login` configuration are required. There are no\nprovider-credential environment variables or separate login files.\n\nCreate a **ConnectWise PSA** connection in Alfe Connections with the final PSA\nAPI server origin, company ID, and an API member's public/private keys. The\nAlfe service supplies its registered PSA ClientID. For cloud tenants, use your\nregion's API hostname (for example `https://api-na.myconnectwise.net`), rather\nthan a browser deep link. On-premises deployments require a publicly resolvable\nHTTPS hostname and a trusted TLS certificate. The runtime appends\n`/v4_6_release/apis/3.0` and refuses redirects and non-public destinations.\n\nCall `connectwise_psa_list_connections` first. Every provider operation requires\nthe selected `connectionId`; it never silently chooses a default account.\nCredentials are resolved again on every operation, so changing keys or removing\naccess applies to the next call without restarting the server.\n\nAvailable tools:\n\n- Connection discovery\n- List companies, contacts, service boards, priorities, members, and tickets\n- Get a company, contact, or ticket\n- List a board's statuses and a ticket's direct notes\n- Create a service ticket, update selected fields, and append a note\n\nList tools return a single page (25 rows by default, maximum 100), with `page`,\n`pageSize`, `conditions`, and `orderBy`. Notes default to internal-only.\nDiscussion/resolution notes may be customer-visible; select visibility\ndeliberately. Writes are never automatically retried: after a timeout, read the\nticket or notes to check whether the write succeeded before repeating it.\nThe API member's PSA security role controls which operations are allowed.\n\n## API references and verification status\n\n- [ConnectWise Getting Started](https://developer.connectwise.com/Best_Practices/Getting_Started)\n  documents product-specific developer access and sandbox requests.\n- [PSA REST reference](https://developer.connectwise.com/Products/Manage/REST)\n  and [Developer Guide](https://developer.connectwise.com/Products/Manage/Developer_Guide)\n  are the canonical endpoint and authentication references.\n\nOn 2026-09-08 the REST reference and Developer Guide required an approved\nDeveloper Network login. The implementation uses the PSA REST 3.0 resource\ncontract, with local HTTP-contract/security/MCP-exchange tests; those tests do\nnot constitute verification against a customer PSA server. An approved PSA\nsandbox should verify company/board/status reads, create a disposable ticket,\nupdate it, and add an internal note before release. Version-specific codebase\npaths other than `/v4_6_release` are not supported by this release.\n\n## Development\n\n```sh\npnpm --filter @alfe.ai/connectwise-psa-mcp typecheck\npnpm --filter @alfe.ai/connectwise-psa-mcp lint\npnpm --filter @alfe.ai/connectwise-psa-mcp test\npnpm --filter @alfe.ai/connectwise-psa-mcp build\n```\n","readmeFilename":"README.md"}