{"_id":"@acordova_ai/fshc-cube-mcp","_rev":"7-75b9ae96bcf5d17461309a890e5d46f6","name":"@acordova_ai/fshc-cube-mcp","dist-tags":{"latest":"26.9.29"},"versions":{"0.1.0":{"name":"@acordova_ai/fshc-cube-mcp","version":"0.1.0","license":"UNLICENSED","_id":"@acordova_ai/fshc-cube-mcp@0.1.0","maintainers":[{"name":"acordova_ai","email":"acordova@sentineledge.ai"}],"bin":{"fshc-cube-mcp":"index.js"},"dist":{"shasum":"28e639cc762f1100834e6bbed0e9fbfe09df8f63","tarball":"https://registry.npmjs.org/@acordova_ai/fshc-cube-mcp/-/fshc-cube-mcp-0.1.0.tgz","fileCount":5,"integrity":"sha512-W35GTcld3TzziPmmTYAV5xmVQjgkKEvq9jcGwCx1uEk9EU52oV+763aEdxAv+pxUajDdd7sRvqfvOs5CuvrY3g==","signatures":[{"sig":"MEYCIQCEtF2cZiiYvDDVLct4kWhMfdZsee8z+8ZwM6Z/1Vo+QwIhAKYx0FLiFM0tvc/BzZ0V3FgizPTOO0uQpuFmUujd/3lA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":602095},"type":"module","engines":{"node":">=18"},"scripts":{"start":"node index.js","selfcheck":"node index.js selfcheck","prepublishOnly":"node index.js selfcheck"},"_npmUser":{"name":"acordova_ai","email":"acordova@sentineledge.ai"},"_npmVersion":"11.11.0","description":"FSHC-Cube MCP — bundles PCC Relay (SQL), UKG WFM and UKG HCM behind one stdio MCP. All calls relay through N8N webhooks; this server holds no API credentials, only a shared token.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fshc-cube-mcp_0.1.0_1782854317496_0.41530328296808894","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@acordova_ai/fshc-cube-mcp","version":"0.2.0","license":"UNLICENSED","_id":"@acordova_ai/fshc-cube-mcp@0.2.0","maintainers":[{"name":"acordova_ai","email":"acordova@sentineledge.ai"}],"bin":{"fshc-cube-mcp":"index.js"},"dist":{"shasum":"396601c114310e87c02c48689bba5855f1572951","tarball":"https://registry.npmjs.org/@acordova_ai/fshc-cube-mcp/-/fshc-cube-mcp-0.2.0.tgz","fileCount":6,"integrity":"sha512-hONBvWTI+At4mIJYA5iXMGzi4qM1bJlv1EjIJ0IrrhiwiPeiNECtcWqv7482a5qJLePpfvDa86G0KBKTiOtVPQ==","signatures":[{"sig":"MEYCIQCaUJk3j5h5DDWmGLtsHbbvhH7mdS2hxv6mrbUgnWZ9XQIhAIkHdYkN4lOpKQHGkEDV/1YN0sCUCuhkikJJ3q64/NNw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":617312},"type":"module","engines":{"node":">=18"},"scripts":{"start":"node index.js","selfcheck":"node index.js selfcheck","prepublishOnly":"node index.js selfcheck"},"_npmUser":{"name":"acordova_ai","email":"acordova@sentineledge.ai"},"_npmVersion":"9.2.0","description":"FSHC-Cube MCP — bundles PCC Relay (SQL), UKG WFM, UKG HCM and Telos LTC behind one stdio MCP. All calls relay through N8N webhooks; this server holds no API credentials, only a shared token.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fshc-cube-mcp_0.2.0_1784042748807_0.6673494265184203","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@acordova_ai/fshc-cube-mcp","version":"0.3.0","license":"UNLICENSED","_id":"@acordova_ai/fshc-cube-mcp@0.3.0","maintainers":[{"name":"acordova_ai","email":"acordova@sentineledge.ai"}],"bin":{"fshc-cube-mcp":"index.js"},"dist":{"shasum":"9959ecce7be2751901ed94fd16f242427a43cd7e","tarball":"https://registry.npmjs.org/@acordova_ai/fshc-cube-mcp/-/fshc-cube-mcp-0.3.0.tgz","fileCount":6,"integrity":"sha512-05mzbnys167IufNca/+znP/JLvJ1TmMizk74GXxCVduDsrauYy3zsb1XbTboOwRcf0AWNTJQBgwQ7m6ocRbuGQ==","signatures":[{"sig":"MEUCIQC2yRpCp4FPXlPOZrLsfxxY75EEIg6zbvSRmWUeXymh2QIgHdskeOXPSUnuaAEoYiCChMkSUCpy23UF0c27CdQN1hg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":625251},"type":"module","engines":{"node":">=18"},"scripts":{"start":"node index.js","selfcheck":"node index.js selfcheck","prepublishOnly":"node index.js selfcheck"},"_npmUser":{"name":"acordova_ai","email":"acordova@sentineledge.ai"},"_npmVersion":"9.2.0","description":"FSHC-Cube MCP — bundles PCC Relay (SQL), UKG WFM, UKG HCM and Telos LTC (SQL) behind one stdio MCP. All calls relay through N8N webhooks; this server holds no API credentials, only a shared token.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fshc-cube-mcp_0.3.0_1784068401515_0.5260760485352478","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@acordova_ai/fshc-cube-mcp","version":"0.3.2","license":"UNLICENSED","_id":"@acordova_ai/fshc-cube-mcp@0.3.2","maintainers":[{"name":"acordova_ai","email":"acordova@sentineledge.ai"}],"bin":{"fshc-cube-mcp":"index.js"},"dist":{"shasum":"3b48abc2a16a23fa37cca4aed55b8b9a38ea5089","tarball":"https://registry.npmjs.org/@acordova_ai/fshc-cube-mcp/-/fshc-cube-mcp-0.3.2.tgz","fileCount":6,"integrity":"sha512-RJMyTrEKm6UV/Y3TI5UHpSqT2wsAwxMt9aC64pbfpfTSwBY04yN1VUhJi1OSI/T8E3IunL/ZV5fv9rLnZwS6Nw==","signatures":[{"sig":"MEUCIQD3KqunMt54WI9TYiCWBLH0ZOg6g9VRIjNUJjw48geXrAIgHHKpdfnNLPMbFj8xjW73jJaSXmypIHCREF/yIC28fug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":628858},"type":"module","engines":{"node":">=18"},"scripts":{"start":"node index.js","selfcheck":"node index.js selfcheck","prepublishOnly":"node index.js selfcheck"},"_npmUser":{"name":"acordova_ai","email":"acordova@sentineledge.ai"},"_npmVersion":"9.2.0","description":"FSHC-Cube MCP — bundles PCC Relay (SQL), UKG WFM, UKG HCM and Telos LTC (SQL) behind one stdio MCP. All calls relay through N8N webhooks; this server holds no API credentials, only a shared token.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fshc-cube-mcp_0.3.2_1784083663369_0.6094073672224891","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@acordova_ai/fshc-cube-mcp","version":"0.3.3","license":"UNLICENSED","_id":"@acordova_ai/fshc-cube-mcp@0.3.3","maintainers":[{"name":"acordova_ai","email":"acordova@sentineledge.ai"}],"bin":{"fshc-cube-mcp":"index.js"},"dist":{"shasum":"92f5e9bfbf26fcd9849a1f6f9069d6223290a0fc","tarball":"https://registry.npmjs.org/@acordova_ai/fshc-cube-mcp/-/fshc-cube-mcp-0.3.3.tgz","fileCount":6,"integrity":"sha512-Mr9VMceblCb6cBtDwGqx88y5mCTK7xL1DfSaxpxmC6TDwqJKPcsGofsZ1R9iBWgQA+bzIUM2HHvqm+q89DC5Xw==","signatures":[{"sig":"MEYCIQD4lFsNKt7CqVZzUVaPjkhN18xaz40zUY7lgiAfkmZinAIhAOEBVm7e44Hdw8mBeH99JzsCerbqYfSfY4QIar/Q22rR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":631522},"type":"module","engines":{"node":">=18"},"scripts":{"start":"node index.js","selfcheck":"node index.js selfcheck","prepublishOnly":"node index.js selfcheck"},"_npmUser":{"name":"acordova_ai","email":"acordova@sentineledge.ai"},"_npmVersion":"9.2.0","description":"FSHC-Cube MCP — bundles PCC Relay (SQL), UKG WFM, UKG HCM and Telos LTC (SQL) behind one stdio MCP. All calls relay through N8N webhooks; this server holds no API credentials, only a shared token.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fshc-cube-mcp_0.3.3_1784168240057_0.37016806883573183","host":"s3://npm-registry-packages-npm-production"}},"26.9.4":{"name":"@acordova_ai/fshc-cube-mcp","version":"26.9.4","license":"UNLICENSED","_id":"@acordova_ai/fshc-cube-mcp@26.9.4","maintainers":[{"name":"acordova_ai","email":"acordova@sentineledge.ai"}],"bin":{"fshc-cube-mcp":"index.js"},"dist":{"shasum":"f19736f98b0bce18065c4af383847c3c0f43fd47","tarball":"https://registry.npmjs.org/@acordova_ai/fshc-cube-mcp/-/fshc-cube-mcp-26.9.4.tgz","fileCount":5,"integrity":"sha512-HNuPQPv8MWKzMj6VxDvdNclyIqLDSI8vDLrXnpwP2STZO4M6GZsgbkBCXzwP9W9hUanlL7jFOdj/FiEry2jtFw==","signatures":[{"sig":"MEUCIQCrC8MfFbetNtKtrlbf061NyUs2XwQiummITiosFIlh6gIgER7Y1b6yN7snVf+TXCipjVNx2QbFGPn5GhIhcxV7wQI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":654638},"type":"module","engines":{"node":">=18"},"scripts":{"start":"node index.js","selfcheck":"node index.js selfcheck","prepublishOnly":"node index.js selfcheck"},"_npmUser":{"name":"acordova_ai","email":"acordova@sentineledge.ai"},"_npmVersion":"11.17.0","description":"FSHC-Cube MCP — bundles PCC Relay (SQL), UKG WFM, UKG HCM, Telos LTC (SQL), NetHealth DW (SQL), Acumatica ERP (PostgreSQL), Waystar SFTP (PostgreSQL), Waystar API (live REST/SOAP) and ATTOM property recorder data (PostgreSQL) behind one stdio MCP. All cal","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fshc-cube-mcp_26.9.4_1788580506089_0.6821593683214384","host":"s3://npm-registry-packages-npm-production"}},"26.9.29":{"_id":"@acordova_ai/fshc-cube-mcp@26.9.29","bin":{"fshc-cube-mcp":"index.js"},"dist":{"shasum":"ca07996c6a04c5a1d976575dc17fb7d6ab275d4f","tarball":"https://registry.npmjs.org/@acordova_ai/fshc-cube-mcp/-/fshc-cube-mcp-26.9.29.tgz","fileCount":5,"integrity":"sha512-30eSIrQth/FiMk9SJft1iNtiEVs61m2a7NJWfdeuOEvrLmCoLgZyawsF6Oh2SEcAebyjBuU2r+fyddfBJibGUg==","signatures":[{"sig":"MEUCIBQRLUKV5sBr2x32KyGPubyXwmGPQ+iPa5WXQmc77L0RAiEAwLulHiRg8UaaTp+zCUf/H+KnRGAJh9tcq/zuHNCYgOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHCgHiR1RL5tHkxb6vC5Oc0z3EK5DE/Y0FgK6j2V6Au8AiBHxdhY020rhuKhuJGTIosa1bNsTV9UBGtgqOzH7/YWAQ=="}],"unpackedSize":694085},"name":"@acordova_ai/fshc-cube-mcp","type":"module","engines":{"node":">=18"},"gitHead":"382cee5b7bde1294d67fc5192c75c73745cb5c6a","license":"UNLICENSED","scripts":{"start":"node index.js","selfcheck":"node index.js selfcheck","prepublishOnly":"node index.js selfcheck"},"version":"26.9.29","_npmUser":{"name":"acordova_ai","email":"acordova@sentineledge.ai"},"_npmVersion":"11.19.0","description":"FSHC-Cube MCP — bundles PCC Relay (SQL), UKG WFM, UKG HCM, Telos LTC (SQL), NetHealth DW (SQL), Acumatica ERP (PostgreSQL), Waystar SFTP (PostgreSQL), Waystar API (live REST/SOAP) and ATTOM property recorder data (PostgreSQL) and Align30 pulse surveys (Po","directories":{},"maintainers":[{"name":"acordova_ai","email":"acordova@sentineledge.ai"}],"_nodeVersion":"24.21.0","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fshc-cube-mcp_26.9.29_1790744772075_0.898963681379489"}}},"time":{"created":"2026-06-30T21:18:37.320Z","modified":"2026-09-30T05:06:12.299Z","0.1.0":"2026-06-30T21:18:37.663Z","0.2.0":"2026-07-14T15:25:48.935Z","0.3.0":"2026-07-14T22:33:21.674Z","0.3.2":"2026-07-15T02:47:43.543Z","0.3.3":"2026-07-16T02:17:20.205Z","26.9.4":"2026-09-05T03:55:06.225Z","26.9.29":"2026-09-30T05:06:12.147Z"},"license":"UNLICENSED","description":"FSHC-Cube MCP — bundles PCC Relay (SQL), UKG WFM, UKG HCM, Telos LTC (SQL), NetHealth DW (SQL), Acumatica ERP (PostgreSQL), Waystar SFTP (PostgreSQL), Waystar API (live REST/SOAP) and ATTOM property recorder data (PostgreSQL) and Align30 pulse surveys (Po","maintainers":[{"name":"acordova_ai","email":"acordova@sentineledge.ai"}],"readme":"# FSHC-Cube MCP\n\nOne MCP server that bundles ten FSHC back-end systems behind a single set of **40 tools**\n(release **26.9.29**, 2026-09-29):\n\n| System            | What it exposes                                                                         | Access             |\n| ----------------- | --------------------------------------------------------------------------------------- | ------------------ |\n| **PCC Relay**     | PointClickCare ODS (SQL Server) — census, billing, clinical, etc.                       | Read-only `SELECT` |\n| **UKG WFM**       | Workforce Management — timecards, punches, accruals, leave, attendance, people          | Read-only          |\n| **UKG HCM**       | Human Capital Management — personnel, payroll, employee data                            | Read-only          |\n| **TELOS**         | Telos LTC — resident Medicaid eligibility (status, renewals, coverage, MESAV)           | Read-only `SELECT` |\n| **NetHealth DW**  | NetHealth data warehouse (SQL Server) — therapy/rehab                                   | Read-only `SELECT` |\n| **Acumatica ERP** | Acumatica financials (PostgreSQL) — AP/AR/GL activity from the daily SFTP export        | Read-only `SELECT` |\n| **Waystar SFTP**  | Claims clearinghouse batch files (PostgreSQL) — claim status (X12 277), HQ remittance   | Read-only `SELECT` |\n| **Waystar API**   | Live Waystar calls — claim history, proof-of-timely-filing PDF, EOB documents, eligibility | Read-only calls    |\n| **ATTOM**         | County deed & mortgage recorder filings (PostgreSQL) — sales, owners, lenders, amounts  | Read-only `SELECT` |\n| **Align30**       | Employee and resident-family engagement surveys (PostgreSQL) — invitations, responses   | Read-only `SELECT` |\n\nEvery call is relayed through an N8N webhook that injects the real credentials.\n**This server stores no API keys, passwords, or connection strings** — only a shared\nrelay **token** that you provide at install time. All operations are read-only.\n\nThe one exception is the **handoff** pair (`cube_send_handoff`, `cube_handoffs`): on your\nexplicit request they post a short question to a named colleague in the FSHC Teams channel\nand read the reply back. Who it comes from is taken from your token, never from the message.\n\nOnce installed, you just ask in natural language — e.g. _\"what was employee 008579's\ntimecard last month?\"_, _\"census count for June 29\"_, _\"Jeff Patel's contact info\"_ —\nand the assistant discovers the right endpoint and runs the query for you.\n\n---\n\n## Before you start\n\nYou need **one thing from your administrator**: the **FSHC-Cube relay token**.\nIt is required for every install method. Without it the server will not start.\n\n> The token authenticates you to the FSHC-Cube relay. Treat it like a password —\n> do not share it or commit it to code.\n\nPick the install path that matches your tool:\n\n- **[Option A — Desktop Extension](#option-a--desktop-extension-one-click)** — for **Claude Desktop, Cowork, and similar GUI agents** that support MCP Bundles (`.mcpb`). No technical setup. **Recommended for most users.**\n- **[Option B — npx / config](#option-b--npx--config-clients)** — for **Claude Code and any client configured with an MCP JSON file** (Cursor, Windsurf, etc.). Requires Node.js.\n\n---\n\n## Option A — Desktop Extension (one-click)\n\n**For:** Claude Desktop, Cowork, or any desktop agent that supports MCP Bundles (`.mcpb` / `.dxt`).\n**Prerequisites:** none — the bundle ships its own runtime.\n\n### 1. Download\n\nDownload **`fshc-cube-mcp.mcpb`** from the GitLab repo:\n\n> **Download:** `https://gitlab.com/<your-group>/<your-repo>/-/releases`\n> _(replace with your actual GitLab release/download URL)_\n\nSave it anywhere (e.g. your Downloads folder).\n\n### 2. Install\n\n1. Open your agent → **Settings → Extensions**.\n2. **Drag `fshc-cube-mcp.mcpb` onto the window**, or click **“Install extension”** and select the file.\n   _(On most systems you can also just double-click the `.mcpb` file to open the install dialog.)_\n3. Review the extension card and click **Install**.\n\n### 3. Enter your token\n\nWhen prompted for **“Relay Token”**, paste the token from your administrator.\nThe field is masked because it’s stored securely by the app.\n\n### 4. Turn it on\n\nToggle the **FSHC-Cube MCP** extension **on**. That’s it — the 40 tools are now available.\nStart a new chat and try: _\"list the census views in PCC\"_.\n\n### Updating\n\nWhen a new `fshc-cube-mcp.mcpb` is published to GitLab, download it and install again —\nit replaces the previous version. Your token is preserved (or re-enter it if asked).\n\n### Uninstalling\n\n**Settings → Extensions → FSHC-Cube MCP → Remove.**\n\n---\n\n## Option B — npx / config clients\n\n**For:** Claude Code, Cursor, Windsurf, or any client that uses an MCP configuration file.\n**Prerequisites:** **Node.js 18 or newer** installed and on your PATH (`node --version`).\n\nThe server is published to npm as **`@acordova_ai/fshc-cube-mcp`**. You never clone or\n`npm install` it — `npx` downloads and caches it automatically on first run.\n\n### Claude Code (one-liner)\n\n**Windows** (PowerShell or CMD):\n\n```bash\nclaude mcp add fshc-cube -s user --env FSHC_CUBE_TOKEN=YOUR_TOKEN_HERE -- cmd /c npx -y @acordova_ai/fshc-cube-mcp\n```\n\n**macOS / Linux:**\n\n```bash\nclaude mcp add fshc-cube -s user --env FSHC_CUBE_TOKEN=YOUR_TOKEN_HERE -- npx -y @acordova_ai/fshc-cube-mcp\n```\n\nVerify it registered:\n\n```bash\nclaude mcp list\n```\n\n### Generic MCP config (Cursor, Windsurf, Claude Desktop config file, etc.)\n\nAdd this to your client’s MCP config file (e.g. `claude_desktop_config.json`,\n`.cursor/mcp.json`, `.mcp.json`).\n\n**Windows** — a `cmd /c` wrapper is required (bare `npx` will not spawn on Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"fshc-cube\": {\n      \"command\": \"cmd\",\n      \"args\": [\"/c\", \"npx\", \"-y\", \"@acordova_ai/fshc-cube-mcp\"],\n      \"env\": { \"FSHC_CUBE_TOKEN\": \"YOUR_TOKEN_HERE\" }\n    }\n  }\n}\n```\n\n**macOS / Linux:**\n\n```json\n{\n  \"mcpServers\": {\n    \"fshc-cube\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@acordova_ai/fshc-cube-mcp\"],\n      \"env\": { \"FSHC_CUBE_TOKEN\": \"YOUR_TOKEN_HERE\" }\n    }\n  }\n}\n```\n\nRestart the client after editing the config.\n\n### Updating\n\n`npx` caches the package it downloaded first. To move to a new release, pin the version in\nyour config (`@acordova_ai/fshc-cube-mcp@26.9.29`) or run it once with `@latest`:\n\n```bash\nnpx -y @acordova_ai/fshc-cube-mcp@latest\n```\n\n---\n\n## Using it — tools and example prompts\n\nYou normally don’t call tools directly; you ask in plain language and the assistant\npicks the right one. The tools follow a **discover → describe → call** pattern.\n\n| System           | Tools                                                                         |\n| ---------------- | ----------------------------------------------------------------------------- |\n| **WFM**          | `wfm_list_endpoints` → `wfm_get_endpoint` → `wfm_request`                     |\n| **HCM**          | `hcm_list_endpoints` → `hcm_get_endpoint` → `hcm_request`                     |\n| **PCC**          | `pcc_list_schemas` → `pcc_get_schema` → `pcc_run_query`                       |\n| **TELOS**        | `telos_list_schemas` → `telos_get_schema` → `telos_run_query` · plus `telos_get_mesav` (live REST) |\n| **NetHealth**    | `nethealth_list_schemas` → `nethealth_get_schema` → `nethealth_run_query`     |\n| **Acumatica**    | `acumatica_list_schemas` → `acumatica_get_schema` → `acumatica_run_query`     |\n| **Waystar SFTP** | `waystar_list_schemas` → `waystar_get_schema` → `waystar_run_query`           |\n| **Waystar API**  | `waystar_api_get_claim_history` → `waystar_api_get_timely_filing_proof` · `waystar_api_get_eob` · `waystar_api_check_eligibility` · `waystar_api_check_claim_status` · … |\n| **ATTOM**        | `attom_list_schemas` → `attom_get_schema` → `attom_run_query`                 |\n| **Align30**      | `align30_list_schemas` → `align30_get_schema` → `align30_run_query`           |\n| **Handoff**      | `cube_send_handoff` · `cube_handoffs` — ask a named colleague in Teams, read the reply |\n\n- **`*_list_endpoints` / `pcc_list_schemas`** — search the catalog to find the right operation/view.\n- **`*_get_endpoint` / `pcc_get_schema` / `telos_get_schema`** — get the exact parameters / columns before building a call.\n- **`*_request` / `pcc_run_query` / `telos_run_query`** — execute the read.\n- **`telos_get_mesav`** — the one exception to the pattern: a live REST call to the TELOS\n  API for one resident's Medicaid eligibility record, rather than a read of the mirror.\n  Use it when currency matters; `telos.telos_mesav_*` holds what the nightly sync last saw.\n- **Waystar API** has its own order: `waystar_api_get_claim_history` first (XML) — it returns\n  Waystar's own ClaimID and InstanceID for each instance of the claim — then\n  `waystar_api_get_timely_filing_proof` for the proof-of-timely-filing PDF and\n  `waystar_api_get_eob` for the remittance document. `custId` is always the **facility's**\n  Waystar account, not the parent. Claim status and real-payer eligibility work as far as\n  Waystar has enabled them — see Troubleshooting.\n- **Handoff** is not a data tool: `cube_send_handoff` posts your question to one named person\n  in Teams (only when you ask), `cube_handoffs` shows what was sent and any replies.\n\nWFM is preferred for workforce questions (time, attendance, leave, employees); HCM is\nused for HR/payroll data WFM doesn’t hold; PCC for clinical/census/billing data; TELOS\nfor resident Medicaid eligibility (status, renewal/recert dates, coverage, applied\nincome, managed care — the `telos` schema, 55 relations, queried with SQL); Align30 for\nengagement surveys (daily snapshots — use the `v_*_current` views for \"today\").\n\n### Example prompts\n\n- _\"Show me employee 008579’s timecard for last month.\"_ → WFM\n- _\"How many patients were in census on June 29?\"_ → PCC\n- _\"What’s Jeff Patel’s contact info?\"_ → HCM\n- _\"List the WFM leave endpoints.\"_ → WFM discovery\n- _\"What columns does the daily census view have?\"_ → PCC schema\n- _\"Which residents have a Medicaid renewal due this quarter?\"_ → TELOS\n- _\"Is this resident's Medicaid coverage active **right now**?\"_ → TELOS `telos_get_mesav`\n  (live); the report tables answer \"as of the last sync\", which is a different question\n- _\"What did 1234 Main St last sell for, and who financed it?\"_ → ATTOM\n- _\"How many property transfers were recorded in Duval County in Q2?\"_ → ATTOM\n- _\"Has the payer acknowledged claim ABC-123, and when?\"_ → Waystar API claim history\n- _\"Get me the proof of timely filing for that claim.\"_ → Waystar API (PDF, via the claim's\n  ClaimID and InstanceID from the history)\n- _\"Show the remittance / EOB for claim ABC-123.\"_ → Waystar API EOB\n- _\"What did new hires say in last month's pulse survey?\"_ → Align30\n- _\"Ask Jeff whether the September census file is final.\"_ → Handoff (Teams)\n\n---\n\n## How it works\n\n```\nyour prompt\n  → assistant picks a tool and builds the call\n  → MCP sends POST { token, ... } to the FSHC-Cube N8N webhook (one per system)\n  → N8N validates the token, injects the real credentials, calls the system\n  → data comes back → assistant answers\n```\n\n- **WFM / HCM** send a descriptor `{ token, method, path, query, body }`. N8N\n  prepends the base URL and injects the real auth (WFM OAuth2; HCM Basic + customer key).\n- **PCC** sends `{ token, action, sql | table | domain+search }` where `action` is\n  `query`, `schema`, or `list`.\n- **TELOS** sends `{ token, action, ... }` — `query` (a read-only SQL `SELECT` against\n  `psql_source.telos`), `schema`, `list`, or `mesav` (a live call to the TELOS API for one\n  resident's Medicaid eligibility record).\n- **NetHealth / Acumatica / Waystar SFTP / ATTOM / Align30** each use their own webhook per\n  action and send `{ token, action, sql | table | domain+search }`, same as PCC. Their\n  table catalogs and column docs are served from the relay host (`/opt/<service>-schema-docs`,\n  `/opt/attom` for ATTOM and `/opt/align30` for Align30) rather than bundled, so a schema\n  change needs no MCP release.\n- **Waystar API** sends `{ token, action, ... }` to one consolidated webhook that routes\n  each Waystar product internally; the relay holds the Waystar credentials and signs each\n  request. Documents (proof of timely filing, EOB) come back as base64 PDFs with their\n  byte count — the assistant reports the size, it never prints the base64.\n- **Handoff** sends `{ token, action: send | pending | status, ... }`; who is asking comes\n  from the token, never from the message body.\n\n### Security\n\n- **No credentials in the client.** The MCP holds only the relay token; all API\n  secrets live in N8N.\n- **Read-only.** `*_request` allows only `GET` and documented `POST …/multi_read`\n  reads; every `*_run_query` allows only a single `SELECT` / `WITH` statement. Writes and\n  DDL are blocked.\n- **Least exposure.** Only the operational + reference data endpoints are bundled;\n  system-administration endpoints are excluded.\n- **Handoff is the only write-adjacent tool**, and what it writes is a chat message to a\n  colleague — only on your explicit request, never on its own.\n\n---\n\n## Troubleshooting\n\n| Symptom                                                         | Cause / fix                                                                                                                                                                             |\n| --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **“FSHC_CUBE_TOKEN is not set”** and the server won’t start     | The token wasn’t provided. Re-enter it (Option A: Extensions settings; Option B: the `env` block / `--env`).                                                                            |\n| **Nothing happens / “command not found” on Windows (Option B)** | Use the `cmd /c npx …` form shown above, not bare `npx`.                                                                                                                                |\n| **`node` not found (Option B)**                                 | Install Node.js 18+ and reopen the client. (Option A doesn’t need Node.)                                                                                                                |\n| **A WFM query returns empty for another employee**              | Client-credentials access is governed by the relay’s Function Access Profile (FAP). Ask your admin to confirm the FAP covers that employee.                                             |\n| **A PCC census/date query is slow or times out**                | The daily census mart is heavy. Prefer exact-date filters and small `TOP N`; large date-range aggregates can take 10–35s.                                                               |\n| **An ATTOM/SQL query returns “empty response from webhook”**    | Usually a token problem, not an empty result: the relay's token gate returns an empty response rather than an auth error. Re-check the token before assuming the query matched no rows. |\n| **Tools don’t appear after install**                            | Restart the client. For Option B, confirm the config file is valid JSON.                                                                                                                |\n| **A Waystar call answers “Missing required parameter(s): claimId, dos”, or rejects `responseType: XML`** | Your extension is older than 26.9.29. Download the current `.mcpb` and reinstall (Option A), or pin `@26.9.29` (Option B). |\n| **Proof of timely filing answers HTTP 401 “Invalid domain relationship”** | The ClaimID/InstanceID do not belong to that `custId`. Use the facility’s own Waystar account and the ids from that account’s claim history. |\n| **Waystar claim status times out (~55 s)**                      | Known and on Waystar’s side as of 2026-09-29; each attempt spends one of the included status inquiries. Use claim history until it is resolved. |\n| **An Align30 count looks far too high**                         | Every Align30 table is a daily snapshot — one row per record per `ingestion_date`. Filter one day, or use the `v_*_current` views. |\n\n---\n\n## Full technical reference\n\n`README.md` is the install-and-use guide. The complete engineering reference —\nevery service, webhook URL, schema, secret location, ETL runbook, gotcha and\narchitecture decision — lives in [`docs/cube-mcp/`](docs/cube-mcp/00-overview.md)\n(six documents plus the handoff contract). Start with `00-overview.md`. Not shipped in the `.mcpb`.\n\n---\n\n## Support\n\nContact your FSHC-Cube administrator for the relay token, access (FAP) questions, or\nto report an issue.\n\n_Data scope: read-only. No credentials are stored in this client._\n","readmeFilename":"README.md"}