MCP Servers¶
MESA bundles five MCP servers. Each wraps an existing CyVerse capability as a set of agent-callable tools so AI assistants can drive it through natural language.
At a glance¶
| Server | Language | Wraps | Transport | Status |
|---|---|---|---|---|
mesa-mcp |
Python | iRODS + AVU + OBO/OLS ontologies + DuckLake | stdio · SSE · Streamable-HTTP | Pre-alpha |
mesa-ducklake |
Python (library) | AVU-history Lakehouse client | — (consumed by mesa-mcp) |
Pre-alpha, functional |
irods-mcp-server |
Go | Generic iRODS access (public/anonymous + authenticated) | stdio · SSE · Streamable-HTTP | Public release |
formation-mcp |
Go | CyVerse Formation API — DE app launching, analyses, Data Store | stdio · SSE | Public release |
terrain-mcp |
Node.js | CyVerse Terrain API — apps, analyses, data, sharing | stdio | Public release |
Choosing between them¶
The five servers overlap somewhat. Here's how to pick one (or several):
- You want metadata reasoning with ontologies and time-travel —
use
mesa-mcp. It pulls inmesa-ducklakeautomatically for AVU history. - You only need plain iRODS file operations — use
irods-mcp-server. Lighter weight, ships as a Docker image. - You want to launch apps on the CyVerse Discovery Environment from an
agent — use
formation-mcpfor the higher-level Formation API, orterrain-mcpfor direct Terrain API access. - Composing several at once is supported. MCP clients accept multiple servers; the agent picks the right tool for each step.
Transport modes¶
All MESA MCP servers support stdio for local AI clients (Claude Desktop, Claude Code, Cursor, etc.). The Go and Python servers also support SSE / Streamable-HTTP for remote and multi-user deployments behind a reverse proxy.
| Mode | When to use |
|---|---|
stdio |
Local development; AI client launches the server as a subprocess |
SSE |
Remote / web clients; multi-user; Claude.ai web |
Streamable-HTTP |
Same as SSE for clients that prefer streaming HTTP |
Hosted vs local¶
The MESA-led servers (mesa-mcp, mesa-ducklake, irods-mcp-server) ship
in three deployment modes:
| Mode | Where it runs | Best for |
|---|---|---|
| Hosted service | A shared instance behind nginx + Let's Encrypt + OIDC | Early adopters who want zero setup |
| Local on a workstation | pip install into a venv; client launches it as stdio |
Power users; air-gapped data |
| Inside a CyVerse VICE app | pip install into a JupyterLab / RStudio pod on the DE |
iRODS credentials already mounted |
See each server's page for setup instructions.