rigosis-smax-mcp
MCP server for OpenText SMAX. The server has two modes, auto-detected at
startup via a capability probe (forceable with SMAX_MCP_MODE): agent
mode — 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 — and end-user (ESS) mode — 11 self-service 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. Agent mode additionally needs the "Access OData API" role; end-user (ESS) mode 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. If it ends with a green checkmark, you're done — the sections below are the manual alternative.
Verify your setup first
uvx --from rigosis-smax-mcp smax-mcp-verify
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).
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_MODE |
default auto; agent/ess force a mode and skip the startup capability probe (use this if auto picks the wrong mode for your account) |
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 |
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_MODE, and SMAX_MCP_LANG; the wizard then
skips every question (and, when the mode is preset, the probe and the
mode-override 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, the server auto-detects the response language from
the signed-in user's SMAX profile (person/me Locale) in ESS mode.
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. Generic client configuration:
- command:
uvx - args:
["--from", "rigosis-smax-mcp", "smax-mcp"] - 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
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"smax": {
"command": "uvx",
"args": ["--from", "rigosis-smax-mcp", "smax-mcp"],
"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.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rigosis_smax_mcp-0.8.1.tar.gz | 47.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rigosis_smax_mcp-0.8.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 95.5 kB
Release files / rigosis_smax_mcp-0.8.1.tar.gz
| Download URL | rigosis_smax_mcp-0.8.1.tar.gz |
|---|---|
| Size | 47.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
03dec0c5cf7b0a2839ff16c671e5eb71d30e78aba41676c3d56337bb5dd1ce33
|
|
BLAKE2b-256 checksum How to use checksums |
27623fa500c82dfeabf24d0527a611fd2c21c01a233792dfaab691b25fd9ba01
|
| 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 26, 2026.
Transparency logRelease files / rigosis_smax_mcp-0.8.1-py3-none-any.whl
| Download URL | rigosis_smax_mcp-0.8.1-py3-none-any.whl |
|---|---|
| Size | 48.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e9134d7632c2c0d2ca0f4147fafa2f388f4232385ba053de17575efeee9850e4
|
|
BLAKE2b-256 checksum How to use checksums |
54f59fd16cbf14d4cef94fe7f60da7ee3f98ac27fd71a752e01c0311df629a6f
|
| 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 26, 2026.
Transparency log