{"_id":"@alfe.ai/connectwise-screenconnect-mcp","_rev":"3-20278d36b5f08f929b8b76aa38aa71d5","name":"@alfe.ai/connectwise-screenconnect-mcp","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@alfe.ai/connectwise-screenconnect-mcp","version":"0.1.0","keywords":["alfe","mcp","screenconnect","connectwise","remote-support"],"author":{"url":"https://alfe.ai","name":"Alfe"},"license":"UNLICENSED","_id":"@alfe.ai/connectwise-screenconnect-mcp@0.1.0","maintainers":[{"name":"kevupton","email":"kevin@upton.tech"},{"name":"sam-alfe","email":"sam@alfe.ai"}],"homepage":"https://alfe.ai","bin":{"connectwise-screenconnect-mcp":"dist/bin.js"},"dist":{"shasum":"857780f9a86cb751e854347e6b4445749b3b145d","tarball":"https://registry.npmjs.org/@alfe.ai/connectwise-screenconnect-mcp/-/connectwise-screenconnect-mcp-0.1.0.tgz","fileCount":20,"integrity":"sha512-1MiBO0ahXgeyRjJRDAIHOU02izkSybEtKsb8B2Wh64AZAdCql/4dQUYols34LlLCuOOqd7T8+0iysS6fYygOYg==","signatures":[{"sig":"MEUCIEh4HiiIWjSowLT+QprgUPPczgecssu42pqBo7/ITWCGAiEA5Tk3NE+hWyMKsQx0RMg3a+Yoz8Iu7XU90tKha20Unjg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67977},"main":"./dist/server.js","type":"module","_from":"file:alfe.ai-connectwise-screenconnect-mcp-0.1.0.tgz","types":"./dist/server.d.ts","exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./client":{"types":"./dist/screenconnect-client.d.ts","import":"./dist/screenconnect-client.js","require":"./dist/screenconnect-client.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint .","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kevupton","email":"kevin@upton.tech"},"_resolved":"/tmp/4a89d1225a8e1f9556f430ddfc0064f5/alfe.ai-connectwise-screenconnect-mcp-0.1.0.tgz","_integrity":"sha512-1MiBO0ahXgeyRjJRDAIHOU02izkSybEtKsb8B2Wh64AZAdCql/4dQUYols34LlLCuOOqd7T8+0iysS6fYygOYg==","_npmVersion":"10.9.8","description":"ScreenConnect session management through the RESTful API Manager extension and Alfe connections","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-screenconnect-mcp_0.1.0_1788928264380_0.9899564885335919","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@alfe.ai/connectwise-screenconnect-mcp","version":"0.1.1","keywords":["alfe","mcp","screenconnect","connectwise","remote-support"],"author":{"url":"https://alfe.ai","name":"Alfe"},"license":"UNLICENSED","_id":"@alfe.ai/connectwise-screenconnect-mcp@0.1.1","maintainers":[{"name":"kevupton","email":"kevin@upton.tech"},{"name":"sam-alfe","email":"sam@alfe.ai"}],"homepage":"https://alfe.ai","bin":{"connectwise-screenconnect-mcp":"dist/bin.js"},"dist":{"shasum":"32849ce7761e265df5cf994a6125732c9884d029","tarball":"https://registry.npmjs.org/@alfe.ai/connectwise-screenconnect-mcp/-/connectwise-screenconnect-mcp-0.1.1.tgz","fileCount":20,"integrity":"sha512-tseUHOSxy6HPVHK9zRV3J93vy3ak7rwlNSQuuGbqT5sG36xGc7OyXhXP2AWkLYdvU4npS1sd/MTqhguhMAWtXQ==","signatures":[{"sig":"MEQCIAnZpJYbolEBqzqXgwIBntg9ZyRSMgzvxxB4NBCfxw/hAiApdZuFS4UYS3QLsD5ecipnGC6ioWF2ilKtlvKzqmca6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH8eS/E5NPEdUGzmG0/4dAkANApGCvndbd+8gzyCfuIUAiBDEUceSzQ1ivoxu7BDIjp4vBIuHpbShj97ccyKK7VF+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67977},"main":"./dist/server.js","type":"module","_from":"file:alfe.ai-connectwise-screenconnect-mcp-0.1.1.tgz","types":"./dist/server.d.ts","exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./client":{"types":"./dist/screenconnect-client.d.ts","import":"./dist/screenconnect-client.js","require":"./dist/screenconnect-client.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint .","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kevupton","email":"kevin@upton.tech"},"_resolved":"/tmp/49b3ea8ec5ccb13b5a4c8358371f8211/alfe.ai-connectwise-screenconnect-mcp-0.1.1.tgz","_integrity":"sha512-tseUHOSxy6HPVHK9zRV3J93vy3ak7rwlNSQuuGbqT5sG36xGc7OyXhXP2AWkLYdvU4npS1sd/MTqhguhMAWtXQ==","_npmVersion":"10.9.8","description":"ScreenConnect session management through the RESTful API Manager extension and Alfe connections","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-screenconnect-mcp_0.1.1_1789857451785_0.09252857301460748","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"_id":"@alfe.ai/connectwise-screenconnect-mcp@0.1.2","bin":{"connectwise-screenconnect-mcp":"dist/bin.js"},"dist":{"shasum":"421463f36286f4c4a86cc9b014fc5deb6505ffa5","tarball":"https://registry.npmjs.org/@alfe.ai/connectwise-screenconnect-mcp/-/connectwise-screenconnect-mcp-0.1.2.tgz","fileCount":20,"integrity":"sha512-1AHfrymRLPZCIw+BkhLJXmg9eGPVa4yWKHKOmOBznCcCTEnafAFgc/8glzw6PeS2COn8Wh79qPAvs+FrRnqLdA==","signatures":[{"sig":"MEUCIQDTwFgo9SYvmcHO6AOcpxdi/M1425aLsNZW5rHhIyEITgIgPxcgJS+MmNK3WW/A2veuGwEJjQSy/UIeRV8LvbnOGgQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD9teQ1uaBOKc3Xmhfh9gWcYDYJFUgiJjCQSZqotca1zAIgDoQ2/uKbCun3qRNTw5KeeTDiA+x8Tmj0d0bHP60eAoY="}],"unpackedSize":67977},"main":"./dist/server.js","name":"@alfe.ai/connectwise-screenconnect-mcp","type":"module","_from":"file:alfe.ai-connectwise-screenconnect-mcp-0.1.2.tgz","types":"./dist/server.d.ts","author":{"url":"https://alfe.ai","name":"Alfe"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./client":{"types":"./dist/screenconnect-client.d.ts","import":"./dist/screenconnect-client.js","require":"./dist/screenconnect-client.cjs"}},"license":"UNLICENSED","scripts":{"dev":"tsdown --watch","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","keywords":["alfe","mcp","screenconnect","connectwise","remote-support"],"_resolved":"/tmp/823bc7cb3fd5eafcd8e7deec99b1e4dc/alfe.ai-connectwise-screenconnect-mcp-0.1.2.tgz","_integrity":"sha512-1AHfrymRLPZCIw+BkhLJXmg9eGPVa4yWKHKOmOBznCcCTEnafAFgc/8glzw6PeS2COn8Wh79qPAvs+FrRnqLdA==","_npmVersion":"10.9.8","description":"ScreenConnect session management through the RESTful API Manager extension and Alfe connections","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-screenconnect-mcp_0.1.2_1789945591043_0.4526107172202527"}}},"time":{"created":"2026-09-09T04:31:04.086Z","modified":"2026-09-20T23:06:31.296Z","0.1.0":"2026-09-09T04:31:04.520Z","0.1.1":"2026-09-19T22:37:31.862Z","0.1.2":"2026-09-20T23:06:31.126Z"},"author":{"url":"https://alfe.ai","name":"Alfe"},"license":"UNLICENSED","homepage":"https://alfe.ai","keywords":["alfe","mcp","screenconnect","connectwise","remote-support"],"description":"ScreenConnect session management through the RESTful API Manager extension and Alfe connections","maintainers":[{"name":"kevupton","email":"kevin@upton.tech"},{"name":"sam-alfe","email":"sam@alfe.ai"}],"readme":"# ConnectWise ScreenConnect MCP\n\nRuntime-independent stdio MCP server for ScreenConnect's RESTful API Manager\nextension. Alfe Connections supplies credentials at execution time. Every\nprovider operation requires the exact `connectionId` returned by\n`screenconnect_list_connections`.\n\n## Setup\n\n1. Install the **RESTful API Manager** extension in the ScreenConnect\n   administration Extension Marketplace. This integration implements the\n   documented 1.0.8 API contract (server 22.3 or newer); notes need 1.0.6+.\n2. Set the extension's `RESTfulAuthenticationSecret` to a strong random secret\n   and configure its execution user/permissions for the operations you need.\n3. Leave `RESTfulAllowedOrigin` empty or set it to the ScreenConnect site's\n   origin, such as `https://support.example.com`. The runtime sends that origin\n   on requests.\n4. Add a **ConnectWise ScreenConnect** connection in Alfe with that site's\n   HTTPS origin and authentication secret, at a scope the agent can access.\n5. The connection-driven integration launches the server automatically.\n   For manual testing on an already configured agent:\n\n   ```sh\n   npx -y @alfe.ai/connectwise-screenconnect-mcp@0.1.0\n   ```\n\n`@alfe.ai/config` supplies the Alfe API key and API URL from the normal agent\nconfiguration. No ScreenConnect credentials are passed through command-line\narguments or integration environment variables. The binary is\n`connectwise-screenconnect-mcp`.\n\n## Tools\n\n| Tool | Purpose |\n| --- | --- |\n| `screenconnect_list_connections` | Discover connections without exposing secrets |\n| `screenconnect_check_connection` | Verify extension access with a read that matches no sessions |\n| `screenconnect_list_sessions` | Query sessions by a required session filter |\n| `screenconnect_find_sessions` | Find sessions by name |\n| `screenconnect_get_session` | Retrieve a session by its GUID |\n| `screenconnect_get_session_details` | Inspect events and connections, omitting screenshot bytes |\n| `screenconnect_create_session` | Create Support or Meeting sessions |\n| `screenconnect_rename_session` | Replace a session's display name |\n| `screenconnect_update_custom_properties` | Replace up to eight positional custom properties |\n| `screenconnect_add_note` | Append a session note |\n| `screenconnect_send_message` | Send a message attributed to a host |\n| `screenconnect_run_command` | Queue a remote command with exact target/content confirmation |\n| `screenconnect_run_toolbox_item` | Queue an existing toolbox item with exact target/item confirmation |\n\nThe API has no session pagination. The required filter controls the provider\nquery; `limit` (1–500, default 100) limits the returned tool result and reports\ntruncation. Narrow filters when the provider response exceeds 5 MiB.\n\nCreate supports `Support` and `Meeting`, and private sessions require a join\ncode. Access agent installation is a different API and is not exposed here.\nCustom-property updates replace the entire positional array, so read the\ncurrent values and preserve those you want to keep.\n\nRemote command/toolbox responses mean **accepted**, not completed. Inspect\nsession details for execution results. Requests are never automatically\nretried; check the resulting session state before retrying a mutation after a\ntimeout or transport error.\n\n## Request contract\n\nAll requests target the fixed extension prefix\n`/App_Extensions/2d558935-686a-4bd0-9991-07539f5fe749/Service.ashx/`.\nRead methods use GET and mutations use POST, with `application/json` positional\narray bodies and the `CTRLAuthHeader` authentication header. Node's HTTPS\ntransport supports the documented GET request bodies.\n\nBefore every request, all DNS answers must be public. The connection is pinned\nto those checked addresses with the original TLS hostname/certificate checks.\nRedirects are never followed. DNS, connection, and response streaming share a\n30-second deadline. Request bodies are capped at 128 KiB and responses at\n5 MiB. Errors omit provider bodies, URLs, credential bundles, and original\nnetwork exception causes.\n\n## Verification\n\n```sh\npnpm --filter @alfe.ai/connectwise-screenconnect-mcp typecheck\npnpm --filter @alfe.ai/connectwise-screenconnect-mcp lint\npnpm --filter @alfe.ai/connectwise-screenconnect-mcp test\npnpm --filter @alfe.ai/connectwise-screenconnect-mcp build\n```\n\nContract tests verify transport/authentication, pinned DNS and SSRF rejection,\nresponse bounds, no mutation retries, credential rotation/isolation, and real\nMCP client/server exchanges. These tests do not constitute live tenant\nverification. Before rollout, use an approved ScreenConnect test instance with\nthe extension configured to verify creation, updates, notes, messaging, and\ncommand/toolbox execution against a disposable session.\n\nOfficial references verified 2026-09-08:\n\n- [RESTful API Manager](https://docs.connectwise.com/ScreenConnect_Documentation/Developers/RESTful_API_Manager)\n- [Session Manager API](https://docs.connectwise.com/ScreenConnect_Documentation/Developers/Session_Manager_API_Reference)\n- [Session and session-details objects](https://docs.connectwise.com/ScreenConnect_Documentation/Developers/Session_Manager_API_Reference/Objects)\n- [Extension release notes](https://screenconnect.product.connectwise.com/communities/26/topics/4301-restful-api-manager)\n\nThe documentation site may redirect to ConnectWise University authentication.\nThe protocol contract was also available through the official page's search\nindex at implementation time.\n","readmeFilename":"README.md"}