Skip to content

irods-mcp-server

Go MCP server providing access to data in iRODS — the public, iRODS-related portion of the AI Verde Data Store MCP Server.

Repository github.com/cyverse/irods-mcp-server
Language Go
Distribution Docker image cyverse/irods-mcp-server
License See repository
Status Public release
MCP transports stdio · SSE · Streamable-HTTP

When to use this server

Use irods-mcp-server when you want plain iRODS file operations from an AI client without the AVU-history / ontology layer that mesa-mcp adds. It's lighter weight and ships as a single Docker image.

Execution modes

Mode Where it runs
Docker (stdio) On the MCP-client machine; the AI assistant launches it as a Docker subprocess
Dedicated server On a shared host using SSE or Streamable-HTTP for multiple client users

Quick start with Claude Desktop

Edit ~/.config/Claude/claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json) and add one of the following entries.

Allows read-only access to /iplant/home/shared.

{
  "mcpServers": {
    "irods": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "IRODS_MCP_SVR_IRODS_SHARED_DIR_NAME=shared",
        "-e", "IRODS_HOST=data.cyverse.org",
        "-e", "IRODS_PORT=1247",
        "-e", "IRODS_ZONE_NAME=iplant",
        "cyverse/irods-mcp-server"
      ]
    }
  }
}

Allows access to your iRODS home directory plus public data.

{
  "mcpServers": {
    "irods": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "IRODS_MCP_SVR_IRODS_SHARED_DIR_NAME=shared",
        "-e", "IRODS_HOST=data.cyverse.org",
        "-e", "IRODS_PORT=1247",
        "-e", "IRODS_ZONE_NAME=iplant",
        "-e", "IRODS_USER_NAME=YOUR_USER",
        "-e", "IRODS_USER_PASSWORD=YOUR_PASSWORD",
        "cyverse/irods-mcp-server"
      ]
    }
  }
}

Restart Claude Desktop for the changes to take effect.

Run as a server

For multi-user / remote access, run as a long-running service with SSE or Streamable-HTTP. See the full README for a config.yaml template and Kubernetes manifests.