Skip to main content
Glama
belegante-byte

io.github.belegante-byte/aetherx-mcp

README.md
# aetherx-mcp

<!-- mcp-name: io.github.belegante-byte/aetherx-mcp -->

**MCP server for the [Aether-X Port Congestion Oracle](https://aether-x-oracle-production.up.railway.app)** — gives any MCP-compatible agent (Claude Desktop, Cursor, VS Code, custom LLM agents) predictive port congestion signals for global trade and quantitative finance.

## Install

```bash
pip install aetherx-mcp
# or run without installing (recommended for MCP clients):
uvx aetherx-mcp
```

## Configure your MCP client

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "aetherx-oracle": {
      "command": "uvx",
      "args": ["aetherx-mcp"],
      "env": { "RAPIDAPI_KEY": "SUA_RAPIDAPI_KEY" }
    }
  }
}
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "aetherx-oracle": {
      "command": "uvx",
      "args": ["aetherx-mcp"],
      "env": { "RAPIDAPI_KEY": "SUA_RAPIDAPI_KEY" }
    }
  }
}
```

## Tools

| Tool | Arguments | Returns |
|------|-----------|---------|
| `get_port_risk` | `port_id` (UN/LOCODE) | Congestion score, ETA delay, waiting vessels, freight volatility |
| `get_ports_risk` | `port_ids` (list) | Same, for a whole portfolio, fetched in parallel |
| `list_supported_ports` | — | The 15 pre-seeded ports (id, name, country) |

Every response is a typed payload:

```json
{
  "port_id": "BRSSZ",
  "port_name": "Santos",
  "country": "Brasil",
  "congestion_score": 0.78,
  "eta_delay_days": 1.6,
  "waiting_vessels": 12,
  "freight_volatility_index": 0.42,
  "updated_at": "2026-09-17 15:46:53"
}
```

## Configuration

| Variable | Default | Description |
|----------|---------|-------------|
| `RAPIDAPI_KEY` | — | When set, requests are routed through the RapidAPI gateway (metered billing) |
| `RAPIDAPI_HOST` | `aether-x-port-congestion-oracle.p.rapidapi.com` | RapidAPI host |
| `AETHERX_BASE_URL` | `https://aether-x-oracle-production.up.railway.app` | Direct API base URL |

Without `RAPIDAPI_KEY`, the server calls the public production API directly.

## Example agent prompts

- *"What's the congestion risk at Santos right now?"*
- *"Rank these ports by congestion: BRSSZ, CNSHA, NLRTM, USLAX."*
- *"Which of my Asian ports has the highest freight volatility index?"*

## License

MIT — see [LICENSE](LICENSE). The signals are provided "AS IS" and do not constitute investment advice. See the [Terms of Service](https://aether-x-oracle-production.up.railway.app/terms).

TDQS

A4.1/5.0

Scored across 3 tools

Disambiguation4/5

The two risk tools differ only in cardinality (single vs. batch), but the names and descriptions clearly indicate which to use. list_supported_ports is entirely distinct. Minor potential confusion when querying one port, but explicit pluralization disambiguates.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern: get_ for queries, list_ for enumeration. Pluralization is used appropriately (port vs. ports), making the naming predictable and readable.

Tool Count4/5

Three tools is minimal but appropriate for a read-only oracle with a fixed dataset. It covers listing, single query, and batch query without unnecessary bloat. Slightly thin, but well-scoped for the domain.

Completeness5/5

The tool set fully covers the domain: you can discover supported ports via list, query one port, or query many in parallel. There are no obvious dead ends or missing operations for the stated purpose of predictive congestion signals.

Maintenance

ActivityMaintained
ResponsivenessNo issues