Skip to main content

rigosis-smax-mcp

MCP server for OpenText SMAX, distributed as two deterministic entry points — the command you run determines the toolset permanently, with no runtime probing or switching:

  • smax-mcp-agent — work with EMS records (Incidents, Requests, Changes, People, Devices, custom types), comments, and attachments from any MCP client; fifteen generic tools including live schema discovery (describe_entity, list_entity_types) and warn-first write validation; requires the "Access OData API" role.
  • smax-mcp-user — 11 self-service (ESS) portal tools, live-verified against a real tenant; no OData role needed.

rigosis-smax-mcp is developed and licensed by Rigosis for integration with OpenText™ Service Management software, formerly known as SMAX. It is not an OpenText product.

Requirements

  • uv (provides uvx; installs its own Python)
  • A SMAX user and a Personal Access Token (Service Portal → Personal Access Tokens), or username/password. smax-mcp-agent additionally needs the "Access OData API" role; smax-mcp-user does not.

Quick setup (recommended)

uvx --refresh --from rigosis-smax-mcp smax-mcp-setup

An interactive wizard: asks for your connection details, tests them live against your tenant, writes the Claude Desktop config for you (backing up any existing file), and prints ready-to-paste snippets for every other MCP client. It installs the end-user toolset (smax-mcp-user) by default; operators run smax-mcp-setup --agent instead to wire up smax-mcp-agent. If it ends with a success confirmation, you're done — the sections below are the manual alternative.

Migrating from 0.8.x

The old single smax-mcp command and its mode-switching environment variable are gone; rerun smax-mcp-setup to regenerate your client config.

Verify your setup first

uvx --from rigosis-smax-mcp smax-mcp-verify --profile agent   # or --profile user

This checks configuration and authenticates against your tenant before you wire up any client. It reads the environment variables below (a .env file found from the working directory upward also works). --profile also checks that profile's API surface: user does one harmless ESS read; agent checks EMS Request access — a 403 there prints a warning but still exits 0 (a restricted agent account is still a valid agent login); any other failure exits 1.

Configuration

Variable Meaning
SMAX_MCP_BASE_URL e.g. https://smax.example.com (required)
SMAX_MCP_TENANT_ID numeric tenant id (required)
SMAX_MCP_USERNAME Service Portal login (required)
SMAX_MCP_PAT Personal Access Token — recommended; paired with the username that created it
SMAX_MCP_PASSWORD alternative to PAT: password auth (JWT fetched automatically)
SMAX_MCP_VERIFY_SSL default true
SMAX_MCP_CA_BUNDLE CA bundle path for private CAs
SMAX_MCP_READ_ONLY true registers only read tools (default false)
SMAX_MCP_ATTACHMENTS_DIR sandbox directory for attachment upload/download (required for attachment tools)
SMAX_MCP_MAX_ATTACHMENT_MB default 10
SMAX_MCP_SKIP_SCHEMA_CHECK true disables the warn-only pre-write schema check
SMAX_MCP_SETUP_PROFILE smax-mcp-setup only — prefill the profile (user or agent) for admin-distributed setup commands; --agent on the command line wins over it. Never used by the servers or written into the generated config
SMAX_MCP_LANG Force the assistant's response language (a base code like tr, de, fr); overrides the profile locale. Unset = auto-detect from the user's SMAX profile. Written into the config when prefilled; also the default for the wizard's display language
SMAX_MCP_SETUP_LANG smax-mcp-setup only — override the wizard's display language (en/tr); defaults to SMAX_MCP_LANG. Never written into the generated config
SMAX_MCP_SYSTEM_NAME Customer-facing name your org calls this system (default SMAX, e.g. DODESK). The assistant uses it in user-facing wording; "OpenText SMAX" stays the technical product name. Written into the generated config and returned by whoami. The setup wizard also registers the server under a slug of this name (e.g. dodesk; smax when unbranded), so end users can address the server by the name they know in any MCP client. Renaming a branded install requires removing the old key manually first

Preconfigured install. An admin can bake the whole org setup into one command by pre-setting SMAX_MCP_BASE_URL, SMAX_MCP_TENANT_ID, SMAX_MCP_SYSTEM_NAME, SMAX_MCP_SETUP_PROFILE, and SMAX_MCP_LANG; the wizard then skips every question (and, when the profile is preset, the profile-confirmation prompt) and each end user only types their username and token. SMAX_MCP_LANG sets both the wizard's display language and the assistant's runtime response language, so one variable covers a single-language org. Without SMAX_MCP_LANG, smax-mcp-user auto-detects the response language from the signed-in user's SMAX profile (person/me Locale).

Use a least-privilege SMAX integration account — every tool acts as that one configured user.

Connect an MCP client

The server speaks MCP over stdio. Pick the command for your profile — smax-mcp-agent (shown below) or smax-mcp-user. Generic client configuration:

  • command: uvx
  • args: ["--from", "rigosis-smax-mcp", "smax-mcp-agent"]
  • environment: the variables above

Claude Code:

claude mcp add smax \
  --env SMAX_MCP_BASE_URL=https://smax.example.com \
  --env SMAX_MCP_TENANT_ID=123456789 \
  --env SMAX_MCP_USERNAME=integration.user \
  --env SMAX_MCP_PAT=your-token \
  --env SMAX_MCP_ATTACHMENTS_DIR=/path/to/attachments \
  -- uvx --from rigosis-smax-mcp smax-mcp-agent

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "smax": {
      "command": "uvx",
      "args": ["--from", "rigosis-smax-mcp", "smax-mcp-agent"],
      "env": {
        "SMAX_MCP_BASE_URL": "https://smax.example.com",
        "SMAX_MCP_TENANT_ID": "123456789",
        "SMAX_MCP_USERNAME": "integration.user",
        "SMAX_MCP_PAT": "your-token",
        "SMAX_MCP_ATTACHMENTS_DIR": "C:\\smax-attachments"
      }
    }
  }
}

Windows note: SMAX_MCP_ATTACHMENTS_DIR takes a normal Windows path; create the directory before first use.

In a session, call whoami first as a connectivity smoke test.

Support

Contact your Rigosis representative. Use of this software is governed by the LICENSE file and your agreement with Rigosis Information Systems.

Release files for rigosis-smax-mcp 0.13.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rigosis-smax-mcp 0.13.1
File Size Uploaded
rigosis_smax_mcp-0.13.1.tar.gz 77.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rigosis-smax-mcp 0.13.1
File Interpreter ABI Platform
rigosis_smax_mcp-0.13.1-py3-none-any.whl Python 3 none any Details

Total release size: 154.4 kB

Release files / rigosis_smax_mcp-0.13.1.tar.gz

Download URL rigosis_smax_mcp-0.13.1.tar.gz
Size 77.5 kB
Tags Source
SHA-256 checksum
How to use checksums
107e2842693ee43d9a8a650fb838817d3d7bf35180a6a05cb1fbde91f8675d40
BLAKE2b-256 checksum
How to use checksums
51d1408e098e09d435f2579a33ca0de43e096f02fe95d82e0593b7859f0667f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release files / rigosis_smax_mcp-0.13.1-py3-none-any.whl

Download URL rigosis_smax_mcp-0.13.1-py3-none-any.whl
Size 76.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c901d4b5a78be5b958061ca54d377feb78e111c851e33dc07ac3d86a1ab5c0b5
BLAKE2b-256 checksum
How to use checksums
e69d322af155f14388c4bfe3a280b8240333b7d826851fe454cad29996431063
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

0.15.0

2 release files

This release

0.13.1 This release

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page