Skip to main content
Glama
davidesg

ART MCP Server

by davidesg
README.md
# ART — A Real-Time Time-Series Analysis toolkit + MCP server

`art-tseries` (ART) builds univariate time series models following the
**Box-Jenkins-Treadway** methodology: an iterative, decision-driven process that
uses graphical tools and formal tests to identify, estimate, diagnose and refine
a model until it is adequate and parsimonious.

ART is the orchestration layer of a four-part suite:

| Package | Role |
|---------|------|
| **[fue](https://pypi.org/project/fue/)** | Exact maximum-likelihood estimation (ARMAX + transfer functions) and **FUF** forecasting. C engine with a pure-Python fallback. |
| **pyfug** | High-definition graphics for time series analysis. |
| **ART** (`art-tseries`) | Identification, model building, diagnosis, formal tests, versioning — and an **MCP server** that exposes all of this to an LLM. |

The Box-Jenkins-Treadway loop needs *judgement* at each decision node. ART
supplies the evidence (graphs, tests, numbers); a human analyst and/or Claude
supply the criterion. Two modes:

- **Guided** — analyst + Claude: Claude proposes with arguments, the analyst decides.
- **Autonomous** — Claude/heuristic decides every step and presents a final model.

## Install

```bash
pip install art-tseries          # pulls fue + pyfug automatically
```

This installs the `art-mcp` command (the MCP server).

## Use as an MCP server (Claude Code, etc.)

```bash
claude mcp add art -- art-mcp
```

Then ask Claude to analyse a series. ART will ask whether you want a **guided**
or **autonomous** analysis and drive the workflow from there.

## Use as a library

```python
import fue
from art.describe import describe_boxcox, describe_identification, model_equation

ts, _ = fue.inp.load("series.inp")
print(describe_boxcox(ts).summary)
```

## Methodology

The model-building process is iterative and sequential: each estimation starts
from the previous likelihood optimum (the `.pre` of the previous model), and
every step produces a `.pre` (estimated parameters as initial values) and a
`.out` (results), mirroring `fue`. Decisions and changes are recorded in a
`guion.json` audit trail. See [`docs/ARCHITECTURE.md`](https://github.com/davidesg/art-python/blob/master/docs/ARCHITECTURE.md) for the full design and the
evidence-vs-criterion philosophy.

## Documentation

PyPI renders this page only, so everything below is linked absolutely and also
**ships inside the source distribution** — `pip download art-tseries --no-binary
:all:` — so it reads without network.

| | |
|---|---|
| [Quickstart](https://github.com/davidesg/art-python/blob/master/docs/QUICKSTART.md) | install, first analysis, EN / ES |
| [MCP tool reference](https://github.com/davidesg/art-python/blob/master/docs/TOOLS.md) | every `art-mcp` tool, generated from the docstrings |
| [Architecture](https://github.com/davidesg/art-python/blob/master/docs/ARCHITECTURE.md) | how ART, FUE, FUG and FUF fit together |
| [Rescaling](https://github.com/davidesg/art-python/blob/master/docs/RESCALING_ARCHITECTURE.md) | why the scale factor exists and where it acts |
| [Changelog](https://github.com/davidesg/art-python/blob/master/CHANGELOG.md) | what changed, version by version |

The suite as a whole installs with `pip install atsw`.

## License

GPL-2.0-or-later. © David E. Guerrero.

TDQS

A3.6/5.0

Scored across 35 tools

Disambiguation3/5

Many tools share overlapping purposes (e.g., confirm_and_estimate, estimate_and_diagnose, build_model, guided_identification all involve estimation/diagnosis; preliminary_outlier_scan and intervention_analysis both address outliers). Detailed descriptions help distinguish them, but an agent could easily select the wrong tool without careful reading.

Naming Consistency2/5

Names follow no consistent pattern: some are verb_noun (create_inp, load_data, generate_forecast), some are noun_phrase (series_info, model_equation_display), and others are compound descriptions (overparameterization_analysis, test_seasonal_simplification). The mixed styles and lack of a uniform verb/noun convention make the set feel chaotic.

Tool Count2/5

35 tools is high for a time-series modeling server, even a complex one. Many are narrow diagnostic/support tools that could be consolidated (e.g., multiple analysis tools, several test functions). The count exceeds the 25+ threshold for 'too many' and adds cognitive overhead.

Completeness4/5

The tool surface covers the full modeling lifecycle: data intake, transformation analysis, identification, estimation, diagnosis, formal testing, intervention handling, forecasting, reporting, and versioning. Minor gaps exist (e.g., no explicit data export, no tool for removing interventions), but the workflow is essentially complete.

Maintenance

ActivityActive
ResponsivenessNo issues