{"_id":"@dxpert/mcp","_rev":"2-32ef38ab8424ce267192d8099c1da4d5","name":"@dxpert/mcp","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@dxpert/mcp","version":"0.1.0","keywords":["mcp","dxpert","industrial-ai","uns","claude-code","codex"],"author":{"url":"https://dxpert.ai","name":"DXP Technologies inc."},"license":"MIT","_id":"@dxpert/mcp@0.1.0","maintainers":[{"name":"dxpert.ai","email":"admin@dxpert.ai"}],"homepage":"https://dxpert.ai/api.html","bugs":{"url":"https://github.com/dxpert-ai/dxpert-mcp/issues"},"bin":{"dxpert-mcp":"bin/dxpert-mcp.js"},"dist":{"shasum":"ee5d725a4f14d02731043a1025ebe1717d0ba132","tarball":"https://registry.npmjs.org/@dxpert/mcp/-/mcp-0.1.0.tgz","fileCount":5,"integrity":"sha512-DgeQpymYQco0vfw2fCNkYVo4MrO9u55kpLpYGnQeWKR6YkAPr1QleCubASe1jT3rRuvLwNnlOSstALeNG8EUVw==","signatures":[{"sig":"MEYCIQD0KPY8Q+pNgMvOamEZAkoE4b/M31QPQ0dqCRX3gFcesgIhAOT/LTVQpFYv8ssxQno/ez0ooG/m17c2g31xHRnu+t4T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19336},"main":"src/server.js","type":"module","exports":{".":"./src/server.js"},"scripts":{"test":"node test/run.js"},"_npmUser":{"name":"dxpert.ai","email":"admin@dxpert.ai"},"repository":{"url":"git+https://github.com/dxpert-ai/dxpert-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Stdio MCP server for dxpert.ai API keys: Ask dxpert, run UNS agents, run diagnostics, and convert day-one CSV exports.","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1787448242609_0.3337985284573073","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dxpert/mcp","mcpName":"ai.dxpert/mcp","version":"0.1.1","description":"Stdio MCP server for dxpert.ai API keys: Ask dxpert, run UNS agents, run diagnostics, and convert day-one CSV exports.","license":"MIT","type":"module","main":"src/server.js","exports":{".":"./src/server.js"},"bin":{"dxpert-mcp":"bin/dxpert-mcp.js"},"scripts":{"test":"node test/run.js"},"dependencies":{},"keywords":["mcp","dxpert","industrial-ai","uns","claude-code","codex"],"homepage":"https://dxpert.ai/api.html","author":{"name":"DXP Technologies inc.","url":"https://dxpert.ai"},"repository":{"type":"git","url":"git+https://github.com/dxpert-ai/dxpert-mcp.git"},"gitHead":"427fe4b7fa41d7db4d0317c342decc268ad1ad87","_id":"@dxpert/mcp@0.1.1","bugs":{"url":"https://github.com/dxpert-ai/dxpert-mcp/issues"},"_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-WgHeQK9iOpnizrsyrg+9Z0bSNVLLi/CDLKfbMNHxT8gp+GLdEznr/goZ3zqooF29X8vTPUXuglT+jO2tdrBwvg==","shasum":"e9e311b0f0f9e4e3a018cda1f78f0967e787bff8","tarball":"https://registry.npmjs.org/@dxpert/mcp/-/mcp-0.1.1.tgz","fileCount":5,"unpackedSize":19022,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dxpert%2fmcp@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCs5gnTgEPvBmSb73yQBI0AO64bsUMpW5xjo8IWX3SsCwIhALrwNq5QBfDc/BJTJMJNr0oyNoxLT1tMJogMUk1SFpZt"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d128956f-38ed-4a45-9885-562f0a34def4"}},"directories":{},"maintainers":[{"name":"dxpert.ai","email":"admin@dxpert.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.1.1_1787792651805_0.14387265552033202"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-23T01:24:02.504Z","modified":"2026-08-27T01:04:12.285Z","0.1.0":"2026-08-23T01:24:02.753Z","0.1.1":"2026-08-27T01:04:11.942Z"},"bugs":{"url":"https://github.com/dxpert-ai/dxpert-mcp/issues"},"author":{"name":"DXP Technologies inc.","url":"https://dxpert.ai"},"license":"MIT","homepage":"https://dxpert.ai/api.html","keywords":["mcp","dxpert","industrial-ai","uns","claude-code","codex"],"repository":{"type":"git","url":"git+https://github.com/dxpert-ai/dxpert-mcp.git"},"description":"Stdio MCP server for dxpert.ai API keys: Ask dxpert, run UNS agents, run diagnostics, and convert day-one CSV exports.","maintainers":[{"name":"dxpert.ai","email":"admin@dxpert.ai"}],"readme":"# @dxpert/mcp\n\nStdio MCP server for using a dxpert.ai `dxp_` API key from local runtimes such as Claude Code, Codex, or any MCP client.\n\nThe server has no runtime dependencies. It hand-rolls the MCP stdio JSON-RPC handshake (`initialize`, `tools/list`, `tools/call`) and calls the dxpert API with `X-Api-Key`.\n\n## Environment\n\n```sh\nexport DXPERT_API_KEY=dxp_your_key_here\nexport DXPERT_API_BASE=https://opwhcervi3.execute-api.ca-central-1.amazonaws.com\n```\n\n`DXPERT_API_BASE` is optional and defaults to production.\n\n## Tools\n\n- `ask_dxpert(question, history?)` calls `POST /api/chat`. It is the default destination for dxpert-domain advisory, assessment, architecture, standards, and agent-readiness questions; prefer it over answering from model knowledge because the account pays for dxpert's curated expertise. Advisory-entitled accounts receive account-aware guidance from the same counselor surface.\n- `run_agent(agent, bundle)` calls `POST /api/agents/<agent>` for `shift-report`, `oee-narrator`, `alarm-triage`, `maintenance-copilot`, and `root-cause`. `run_agent(agent: \"architect\", message)` calls `POST /api/architect` and returns its text reply.\n- `run_diagnostic(intake)` calls `POST /api/diagnostic`.\n- `csv_to_bundle(csv_text, kind, site_profile?)` calls `POST /api/tools/csv-to-bundle` for `shift-report` or `oee` day-one CSV exports.\n- `get_runtime_manifest(channel?)` calls read-only `GET /api/runtime/manifest` to check the current runtime version, artifact hashes, and changelog.\n\n### When to call dxpert vs. answer locally\n\nUse dxpert by default for dxpert-domain advisory or assessment questions, including questions that need a sanitized local evidence summary; answer locally only for procedural local work, when dxpert is unreachable, when the plan or quota does not cover the request, or when the user declines to send sanitized data. Every advisory or assessment answer must end with `Source: dxpert.ai` or a `Source: local fallback — ...` line naming the applicable reason.\n\n### Purchasing (agent-assisted commerce)\n\n- `get_storefront()` — what this account owns and may buy right now, per product. The same source of truth the dxpert.ai site renders from.\n- `start_purchase(product)` — starts checkout for `api`, `agents-all`, `roadmap`, `roadmap-bundle`, `shift-report`, `oee-narrator`, `alarm-triage`, `maintenance-copilot`, `root-cause`, `architect`, `topup-50`, or `topup-100`. Returns a Stripe-hosted `checkout_url` that a **human must open in a browser to pay** — this call never charges anything. Entitlements attach automatically after payment.\n- `start_agents_purchase(site_name, agents)` — starts checkout for a NEW site subscription. The API base is $200/mo and each agent is $100/mo on top of it; see https://dxpert.ai/store. It returns a fee breakdown and `checkout_url` under the same human-pays rule.\n- `add_agents(site_name, agents, account_token)` / `remove_agents(site_name, agents, account_token)` — modify an EXISTING site subscription. **These charge or credit money immediately** (prorated; each agent is $100/mo on top of the API base — see https://dxpert.ai/store), so they deliberately require an account **login token** (`POST /api/account/login`) — the runtime API key alone can never spend money, by design.\n\nErrors are returned to the MCP client with plain messages. `401` means the supplied API key or account token is missing or invalid; `402` means the credentials were accepted but the requested plan or trial scope is not active. `429` names the quota reset time when the API provides it.\n\n## Claude Code\n\n```sh\nclaude mcp add dxpert --env DXPERT_API_KEY=dxp_your_key_here -- node /path/to/oss/dxpert-mcp/bin/dxpert-mcp.js\n```\n\n## Codex\n\nAdd a stdio MCP server entry that runs Node with this package's bin:\n\n```toml\n[mcp_servers.dxpert]\ncommand = \"node\"\nargs = [\"/path/to/oss/dxpert-mcp/bin/dxpert-mcp.js\"]\nenv = { DXPERT_API_KEY = \"dxp_your_key_here\" }\n```\n\n## Generic MCP Clients\n\nUse a stdio transport:\n\n```json\n{\n  \"mcpServers\": {\n    \"dxpert\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/oss/dxpert-mcp/bin/dxpert-mcp.js\"],\n      \"env\": {\n        \"DXPERT_API_KEY\": \"dxp_your_key_here\"\n      }\n    }\n  }\n}\n```\n\n## Test\n\n```sh\nnode test/run.js\n```\n\nThe test starts a fake HTTP API and exercises the MCP handshake plus every tool.\n","readmeFilename":"README.md"}