Skip to content

Your First Analysis

This tutorial walks you through connecting an MCP-aware AI assistant to the MESA prototype and running an end-to-end metadata-driven discovery workflow.

Prerequisites

  • A CyVerse account with at least one iRODS collection you can read.
  • An MCP-aware AI assistant. We'll use Claude Desktop in this tutorial; the same steps work for Claude Code, Cursor, Cline, and Continue.

1. Install an MCP client

If you don't already have one:

Download from claude.ai/download and sign in. Your config file lives at:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%\Claude\claude_desktop_config.json
  • Linux~/.config/Claude/claude_desktop_config.json

Already installed if you are reading this. Configure MCP servers via:

claude mcp add mesa --transport sse https://mesa-mcp.cis240692.projects.jetstream-cloud.org/sse

Both support MCP through their respective settings panels. See the MCP clients guide.

2. Connect to the hosted mesa-mcp service

Add this entry to your client's MCP config (Claude Desktop shown):

claude_desktop_config.json
{
  "mcpServers": {
    "mesa": {
      "url": "https://mesa-mcp.cis240692.projects.jetstream-cloud.org/sse",
      "transport": "sse"
    }
  }
}

Restart your client. On first use, you will be prompted to sign in through CyVerse Keycloak; the bearer token is cached for the session.

3. Run a discovery workflow

Try the following prompt:

I'm studying soil microbial diversity. Can you list the public collections under /iplant/home/shared/iplantcollaborative/datasets that have ENVO biome annotations, then show me the AVU history for the first one?

Behind the scenes your AI assistant will:

  1. Call ds_list_directory(/iplant/home/shared/iplantcollaborative/datasets) — provided by mesa-mcp.
  2. Call ds_search_files_by_avu with the ENVO ontology biome predicate, scoped to the listing returned in step 1.
  3. Call mesa_ducklake_get_avu_history for the matching collection — provided by mesa-ducklake, which mirrors AVU changes into a time-travelable DuckLake catalog.

The assistant will then summarize results in natural language. Try follow-up prompts like:

  • "Add the ENVO:00000446 (sandy desert) biome AVU to file XYZ.csv."
  • "What did this collection's metadata look like on 2026-09-01?"
  • "Launch a Jupyter VICE app on this collection so I can run scikit-learn on it."

The last prompt invokes formation-mcp or terrain-mcp to spin up a Discovery Environment app on the data.

4. Where to go next