Metadata-Version: 2.5
Name: aditum-mcp
Version: 0.1.0
Summary: MCP server for Aditum: read your industrial data sources, pipelines, incidents and datasets from an AI assistant.
Project-URL: Homepage, https://aditumdata.com
Author: Aditum Data
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: aditum,historian,industrial,iot,mcp,modbus,model-context-protocol,mqtt,opc-ua
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Manufacturing
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# aditum-mcp

An [MCP](https://modelcontextprotocol.io) server for [Aditum](https://aditumdata.com), the industrial data
platform. Your AI assistant (Claude, GitHub Copilot, Cursor, ...) can read your Aditum workspace:

| Tool | What it answers |
|---|---|
| `list_sources` | the data sources (OPC UA, MQTT, Modbus, PI, databases, ...) you can read |
| `source_health` | one source: online, data flowing, data rate |
| `list_pipelines` | your pipelines: source, destination, records received and inserted |
| `pipeline_runs` | a pipeline's latest runs, with errors |
| `list_incidents` | data-health incidents: stale data, failed runs, schema drift, offline extractors |
| `list_datasets` | tables and measurements, with their freshness |
| `query` | a governed read of one table or measurement |

Read only: nothing can be changed through it.

## Set up

1. In Aditum, open **Settings > API tokens**, create a token and tick **Read only** (a token that can make changes is refused). It is shown once.
2. Add the server to your assistant, for example Claude Code:

```bash
claude mcp add aditum --env ADITUM_TOKEN=adp_... --env ADITUM_URL=https://app.aditumdata.com -- uvx aditum-mcp
```

or in a JSON config (Claude Desktop, VS Code, Cursor):

```json
{
  "mcpServers": {
    "aditum": {
      "command": "uvx",
      "args": ["aditum-mcp"],
      "env": { "ADITUM_TOKEN": "adp_...", "ADITUM_URL": "https://app.aditumdata.com" }
    }
  }
}
```

`ADITUM_URL` is your workspace's https:// address (a dedicated workspace has its own). The token works only there, is never sent over plain http (except to localhost) and never follows a redirect.

## What your assistant sees

The token acts as you: your workspace, your role and access rules, your plan's read limits (a `query` counts
as query units). Aditum decides what each answer holds, by your organisation's **AI data policy**: by default
(`metadata_only`) names, types, counts and column statistics, never row values; with `samples`, at most 5
rows per answer. Passwords and keys are never included. Every answer is marked as data from your systems,
so a tag or asset name can't instruct the assistant.

Python 3.9+, no dependencies. An npm package with the same behaviour: `npx aditum-mcp`.

<!-- mcp-name: com.aditumdata/mcp -->
