Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Altr MCP Server

by altrsoftwareversion 0.9.0i★ –iRuns on your computer
Registry nameio.github.altrsoftware/altr-mcp-server

Install

Overview

Description from the maker (original English)

MCP server for ALTR data security: databases, tags, policies, classification, access, audits

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Other
  • You need to fill in: ORG_ID, MAPI_KEY, MAPI_SECRET

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: ORG_ID, MAPI_KEY, MAPI_SECRET

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • PyPIPython’s uv installed (for the uvx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "altr": {
      "command": "uvx",
      "args": [
        "altr-mcp"
      ],
      "env": {
        "ORG_ID": "your-value",
        "MAPI_KEY": "your-value",
        "MAPI_SECRET": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add altr --env ORG_ID=your-value --env MAPI_KEY=your-value --env MAPI_SECRET=your-value -- uvx altr-mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "altr": {
      "command": "uvx",
      "args": [
        "altr-mcp"
      ],
      "env": {
        "ORG_ID": "your-value",
        "MAPI_KEY": "your-value",
        "MAPI_SECRET": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "altr": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "altr-mcp"
      ],
      "env": {
        "ORG_ID": "your-value",
        "MAPI_KEY": "your-value",
        "MAPI_SECRET": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • ORG_ID required env
    ALTR organization ID
  • MAPI_KEY secret required env
    ALTR management API key
  • MAPI_SECRET secret required env
    ALTR management API secret

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account altrsoftware, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Otheri

  • More stars than 0% of the other 32505 servers in this category
  • Published to the registry more recently than 89% of the other 32505 servers in this category
  • Basic checks equal to or better than 100% of the other 32505 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Altr MCP Server safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: ORG_ID, MAPI_KEY, MAPI_SECRET

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.9.0) reached the registry 4 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, topo^alpin

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

by formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Runs on your computer★ 440MITUpdated 14 months ago
Install

Remote Desktop Commander

by desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Runs in the cloud★ 211Updated yesterday
Install

topo^alpin

by topoalpin.app

Avalanche bulletins and mountain weather forecasts for any place in the Alps.

Runs in the cloudUpdated today
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

ALTR MCP Server

ALTR provides tag-based data masking, access governance, and classification for Snowflake, Databricks, and OLTP databases. This MCP server enables AI assistants (Claude, Cursor, and other MCP clients) to manage data security on the ALTR platform, covering database connections, tag masking, policies, classification, access management, audits, telemetry, and sidecar configuration.

New to ALTR? See the ALTR documentation for an overview of the platform, concepts, and supported data sources.

All tools return structured {success, data, error} responses and can run over stdio, SSE, or streamable-http transports.

Table of Contents

  • Quick Start
  • Getting Credentials
  • Configuration
  • Restricting Tools
  • Running over HTTP
  • Setup
  • Claude Desktop
  • Claude Code (CLI)
  • Cursor
  • VS Code (GitHub Copilot)
  • Windsurf
  • Running from Local Source
  • CLI
  • Tools
  • Data Source Support
  • Troubleshooting
  • Development
  • License

Quick Start

  1. Install from PyPI:
   pip install altr-mcp

Or run directly with uvx (no install required):

   uvx altr-mcp

uvx is part of the uv Python package manager. Install it with pip install uv or see the uv installation guide.

  1. Set the three required environment variables (see Getting Credentials for where to find each in the ALTR console):
   export ORG_ID=your-org-id

export MAPI_KEY=your-api-key export MAPI_SECRET=your-api-secret

  1. Wire it into your AI client — see Setup for Claude Desktop, Claude Code, Cursor, VS Code, and Windsurf. The same three env vars go into the client's env block.
  1. Verify by asking your AI assistant to run a read-only tool:
  • "List my ALTR databases" → calls get_databases
  • "Show me the tags connected to ALTR" → calls get_tags
  • "List the ALTR roles in my org" → calls get_roles

If these return data, your setup is working.

Getting Credentials

You need three values from the ALTR platform to configure this server. See Manage API keys for the full reference.

CredentialWhere to find it
ORG_IDIn the ALTR console: Settings > Preferences > Organization — copy the value from "ALTR Organization ID"
MAPI_KEYIn the ALTR console: Settings > Preferences > API > Add New — give it a description, then copy the key
MAPI_SECRETShown once when you create the API key above — copy and store it securely

Configuration

Set the following environment variables before starting the server:

VariableRequiredDescription
ORG_IDYesALTR organization ID
MAPI_KEYYesALTR management API key
MAPI_SECRETYesALTR management API secret
MCP_TRANSPORTNoTransport protocol: stdio (default), sse, or streamable-http
MCP_HOSTNoBind address for HTTP transports (default: 127.0.0.1). See Running over HTTP
MCP_PORTNoPort for HTTP transports (default: 8000)
MCP_AUTH_TOKENNoBearer token every HTTP request must carry: at least 32 characters, letters, digits and -._~+/, with = only at the end. Required when MCP_HOST is not a loopback address
MCP_ALLOW_UNAUTHENTICATEDNoSet true to listen beyond loopback without MCP_AUTH_TOKEN, when a gateway in front authenticates every request (default: false)
RESTRICTED_TOOLSNoComma-separated tool names to hide from clients
LOG_FORMATNoLog output format: console (default) or json
LOG_LEVELNoLog level (default: INFO)
MAX_RETRIESNoAttempts per API call before giving up (default: 3, minimum 1)
DISABLE_RETRYNoSet true to disable retries entirely (default: false)
REQUEST_TIMEOUTNoPer-request timeout in seconds (default: 30)
MAX_RETRY_AFTERNoCeiling in seconds on a server-sent Retry-After (default: 60)

MAX_RETRIES counts total attempts, not retries on top of the first, so 1 disables retrying without disabling the retry path. Backoff is exponential with jitter; a Retry-After response header overrides it, clamped to MAX_RETRY_AFTER so a server cannot park a call indefinitely.

What gets logged

Every tool call is logged to stderr at INFO with its arguments, which is what makes a session traceable. An argument is redacted when its value is a credential or user-supplied free text — values, text, comment, comments, attestation, justification, statement_text_contains, filters, filter_tree, content, content_base64, connection_string, connection_properties, the bare credential names (password, secret, credentials, passphrase, private_key, api_key, auth_token, access_key), and anything ending _password, _secret, _credential, _credentials, _private_key or _passphrase. Identifiers, enums and pagination cursors are logged in full.

An argument can also reach a log by travelling in a request URL, which redaction keyed on argument names cannot see. httpx's per-request line is therefore held at WARNING, so it does not appear at the default INFO.

Dictionary keys survive, so a line reads values={'ssn': ' ', 'email': ' '}: you keep which fields were sent and lose the data. Tokens are not redacted — a token exists to be handled freely, and ALTR's own Shield audit log is keyed by token.

Redaction covers the invocation line, tracebacks, and the argument-coercion error returned to the caller.

LOG_FORMAT applies to dependency output as well as this server's own — under json, every line on the stream is a JSON object, and dependency lines carry the correlation_id of the tool call they occurred inside. See Logging.

Upgrading from 0.6.0 or earlier? Arguments were not redacted before

0.7.0. Treat any credential passed as a tool argument as exposed in your

logs and rotate it — in practice database_password and

connection_string. Those logs may also hold plaintext passed to the

tokenize tools, so review who can read them and how long they are kept. Log

output also changed shape; see the 0.7.0 entry in the

CHANGELOG.

Endpoint overrides

Every ALTR service endpoint can be pointed elsewhere, which is useful against a non-production ALTR environment. All are optional — leave them unset in normal use.

The eight per-service endpoints are derived from your ORG_ID as https:// . .live.altr.com, five of them with a path appended (a version, or /v1/dam-alerting). An override replaces the whole value, so it must include that path where the default has one — see the table.

VariableDefault
ALTR_API_BASE_URLhttps://api.live.altr.com
ALTR_ALTRNET_BASE_URLhttps://altrnet.live.altr.com
ALTR_CLASSIFICATION_BASE_URLhttps:// .classification.live.altr.com
ALTR_SC_CONTROL_BASE_URLhttps:// .sc-control.live.altr.com
ALTR_SERVICE_USER_BASE_URLhttps:// .service-user.live.altr.com
ALTR_AUDIT_REPORT_BASE_URLhttps:// .audit-report.live.altr.com/v1
ALTR_VAULT_BASE_URLhttps:// .vault.live.altr.com/api/v2
ALTR_CRITICAL_BASE_URLhttps:// .critical.live.altr.com/v2
ALTR_KMA_BASE_URLhttps:// .kma.live.altr.com/v1
ALTR_DAM_ALERTING_BASE_URLhttps:// .dam-alerting.live.altr.com/v1/dam-alerting
Restricting Tools

Use RESTRICTED_TOOLS to hide specific tools from MCP clients. Restricted tools are removed from the tool list and blocked if called directly.

Names must match the registered tool name exactly. An entry that matches nothing restricts nothing, and is logged as a warning the first time a client lists tools. Note that 11 tools were renamed from delete_* to disconnect_* in 0.4.0.

For example, to give a team read-only access without any destructive operations:

RESTRICTED_TOOLS=disconnect_database,delete_policy,delete_rule,disconnect_tag,disconnect_tag_by_details,delete_classifier,delete_collection,disconnect_sc_repo,disconnect_sc_sidecar

Or in the Claude Desktop config:

{

"mcpServers": { "altr": { "command": "uvx", "args": ["altr-mcp"], "env": { "ORG_ID": "your-org-id", "MAPI_KEY": "your-api-key", "MAPI_SECRET": "your-api-secret", "RESTRICTED_TOOLS": "disconnect_database,delete_policy,delete_rule,disconnect_tag" } } } }

This is an operator-level safety net — it prevents accidental or unwanted tool usage but is not a substitute for proper API key permissions.

Running over HTTP

With the default stdio transport, your AI client starts the server as its own subprocess, so nothing else can reach it. With MCP_TRANSPORT=sse or streamable-http, the server listens on a port, and every tool call runs with your organization's API key. So:

  • The default address is loopback. MCP_HOST defaults to 127.0.0.1, so only clients on the same machine can connect, and no token is needed. Without a token, the server also rejects any request whose Host or Origin header is not a loopback name (localhost, 127.0.0.1 or [::1]), so a web page open in a local browser cannot use it. Pages served from this machine are trusted, whatever their port, so local tools such as the MCP Inspector keep working.
  • Any other address needs a token. To accept connections from other machines, set MCP_HOST (for example 0.0.0.0) and MCP_AUTH_TOKEN. The server refuses to start with a non-loopback MCP_HOST and no token. Clients send the token as Authorization: Bearer , and a request without it gets 401. The token may contain only letters, digits and -._~+/, with = only at the end. A reverse proxy on the same machine should also use a token, since it sends its own Host header.
  • Use TLS. The server speaks plain HTTP, and a bearer token sent in the clear can be read on the network. Put it behind a reverse proxy or gateway that terminates TLS.
  • Or let a gateway authenticate. If a gateway in front of the server checks every request itself, for example with your identity provider, set MCP_ALLOW_UNAUTHENTICATED=true instead of a token. This also turns off the Host and Origin check on a loopback address, so a gateway on the same machine that passes those headers through keeps working. The server logs a warning at startup, since it then accepts any request that reaches it.

Generate a token with:

python3 -c "import secrets; print(secrets.token_urlsafe(32))"

For exam

Only the beginning is shown; read the rest in the repo

Ask PopNx