irods
iRODS MCP Server
claude mcp add --transport stdio cyverse-irods-mcp-server docker 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
How to use
This MCP server exposes access to data stored in iRODS via two interfaces when running in server mode: HTTP/SSE for streaming-style requests and a Streamable-HTTP endpoint for large, chunked transfers. When running on a client machine using Docker, you can start the server with the appropriate environment variables to connect to the iRODS instance (either anonymous/public data or a user account). The anonymous configuration maps to the public shared directory, while the authenticated configuration uses your iRODS credentials to give access to your home directory in addition to public data. After starting the container, you can connect to the server's endpoints to query, browse, or stream files through the MCP server’s API. Use http://localhost:8080/sse for HTTP/SSE and http://localhost:8080/mcp for Streamable-HTTP, depending on how you configure and deploy the server.
How to install
Prerequisites:
- Docker installed and running on the host where you will run the MCP server.
- Access to an iRODS instance (host, port, zone) as described in the README.
Install steps:
- Ensure Docker is installed and you can run docker commands without sudo if desired.
- Pick your deployment mode:
- Anonymous client access (public data only) – use the anon Docker run command.
- Authenticated access – use the authenticated Docker run command and replace irods_username/irods_password with your credentials.
- Run the container with the appropriate environment variables. For anonymous access:
docker 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 - Verify the server starts and exposes the endpoints:
- HTTP/SSE: http://localhost:8080/sse
- Streamable-HTTP: http://localhost:8080/mcp
- To use a proper server config file, you can generate a YAML/JSON config and invoke the server binary with -c config.yaml (as shown in the README) when running in server mode.
Additional notes
Tips and notes:
- The anonymous and authenticated configurations share the same image cyverse/irods-mcp-server; the difference is the environment variables supplied to Docker.
- When running in a dedicated server environment, you may prefer the server mode with a config.yaml file (remote: true, service_url, etc.) as described in the README for consistent behavior across clients.
- Ensure the iRODS host and port are reachable from the MCP server’s host, and that the zone name matches your iRODS configuration.
- If you plan to expose the MCP server publicly, consider securing the endpoints and using proper authentication on the client connections.
- Logs are written to irods-mcp-server.log when using server mode with the provided config; in Docker mode, you may need to redirect logs to a mounted volume if needed.
Related MCP Servers
trpc-agent-go
trpc-agent-go is a powerful Go framework for building intelligent agent systems using large language models (LLMs) and tools.
station
Station is our open-source runtime that lets teams deploy agents on their own infrastructure with full control.
tiger-cli
Tiger CLI is the command-line interface for Tiger Cloud. It includes an MCP server for helping coding agents write production-level Postgres code.
gopls
MCP server for golang projects development: Expand AI Code Agent ability boundary to have a semantic understanding and determinisic information for golang projects.
kubernetes
A Model Context Protocol (MCP) server for the Kubernetes API.
gcp-cost
💰 An MCP server that enables AI assistants to estimate Google Cloud costs, powered by Cloud Billing Catalog API and built with Genkit for Go