Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
ds_pingA

Liveness check. Echoes back the supplied message (or 'ok') and the running mesa-mcp version. No iRODS access required.

mesa_avu_apply_dataciteA

Validate a DataCite 4.x record and write it to an iRODS path as AVUs (canonical and/or CyVerse-template naming), mirrored to DuckLake as one snapshot.

mesa_datacite_exportB

Export DataCite AVUs as a DataCite 4.x XML (for DOI registration) or REST JSON document.

mesa_datacite_templateA

Return the DataCite 4.x field scaffold (field, required?, repeatable?, controlled vocabulary, canonical AVU key) to drive a complete, valid record.

mesa_datacite_validateA

Validate DataCite AVUs against the 4.x kernel: report missing mandatory fields, invalid controlled-vocabulary values, and whether the record is DOI-ready.

mesa_avu_apply_termA

Resolve an OLS term, build the canonical AVU triple (.<snake_label>, , ), write it to the iRODS path, and record the change in the project's DuckLake. Composite of mesa_avu_from_term + ds_add_avu, in one call.

mesa_avu_from_termA

Pure transformation: turn an OLS term + user value into the canonical AVU triple (attribute='.<snake_case_label>', value=, unit=) without writing to iRODS.

mesa_ols_generate_templateC

Generate a SCHEMAS-compatible template (prefix + top-level term fields) for an ontology. This is the function that drives the esiil-portal auto-generated AVU forms.

mesa_ols_get_ontologyA

Fetch metadata for a single OLS ontology (term count, version, homepage, preferred prefix).

mesa_ols_get_termA

Get the full record (label, CURIE, synonyms, definition, parents/children) for a single OLS term by IRI.

mesa_ols_get_term_hierarchyA

List the direct children of an OLS term. Use this to walk an ontology's class hierarchy one level at a time.

mesa_ols_list_ontologiesA

List ontologies available in the EMBL-EBI Ontology Lookup Service (OLS4), paginated. Returns 266+ ontologies (ENVO, GO, CHEBI, etc.).

mesa_policy_enableA

Enable a MESA policy on a project root collection by writing the mesa.policy.<policy_name>=true AVU. Records the change into the project's DuckLake when MESA-enabled.

mesa_policy_disableA

Disable a MESA policy on a project root collection by removing the mesa.policy.<policy_name> AVU. Records the change into the project's DuckLake when MESA-enabled.

mesa_ols_search_termsB

Search OLS terms across all ontologies or scoped to one. Optionally restrict to descendants of a parent IRI (hierarchy walk).

mesa_ducklake_init_projectA

Enroll an iRODS collection as a MESA project. Creates the <irods_path>/.mesa/ducklake/ sub-collection (or the configured ducklake.data_collection), sets the mesa.enabled=true AVU on the project root, and registers the project in the DuckLake catalog. Idempotent — safe to re-run.

ds_add_avuC

Add a new AVU (attribute-value-unit) to a file (data-object), directory (collection), resource, or user.

ds_add_avusA

Add MULTIPLE AVUs to one data-object/collection in a single call and mirror them all into DuckLake as ONE snapshot (efficient bulk tagging).

ds_copy_fileB

Copy a file (data-object) or directory (collection) to a new location.

ds_create_ticketA

Create a read or write iRODS ticket on a data object or collection. Returns the ticket string plus the restrictions that were applied. Anonymous users may not create tickets.

ds_delete_avuB

Delete an AVU (attribute-value-unit) from a file, directory, resource, or user.

ds_delete_fileC

Delete a file (data-object) or directory (collection).

ds_delete_ticketA

Revoke an existing iRODS ticket. Issuer or admin only — the server enforces this. Anonymous callers are rejected at the tool layer.

ds_directory_treeB

Get a recursive tree view of files (data-objects) and directories (collections). The specified path must be an iRODS path. The output is in JSON format. The output contains all entries in the given directory (collection) path.

ds_download_fileA

Returns how to download the full contgent of a file (data-object) with the specified path. The specified path must be an iRODS path. Returns how to download the file using WebDAV, GoCommands (gocmd), and iCommands.

ds_execute_ruleA

Run an iRODS rule. Supply either rule_name (server-installed) or rule_text (inline iRL). Output parameters are returned as a dict; iRODS stdout/stderr are returned when output_parameters includes 'ruleExecOut'. Path-typed input parameters are checked against the caller's accessible paths before the rule fires.

ds_get_file_infoC

Retrieve detailed metadata about a file or directory.

ds_get_metadataA

Fetch the full AVU metadata bundle for an iRODS path (data object or collection). Returns the resolved target type alongside the AVU list.

ds_get_policy_configA

Return the configuration of a named Policy Composition Framework policy. iRODS does not expose PCF config through PRC; this is a stub that returns config=None and a note documenting the limitation.

ds_get_rule_definitionA

Return the source of a named iRODS rule. iRODS does not expose rule sources through PRC; this is a best-effort tool whose definition field is None on most servers.

ds_get_ticket_infoA

Get information about a specific iRODS ticket, such as its ID and expiration time, in JSON format. Anonymous users are not allowed to get ticket information.

ds_list_allowed_directoriesB

Get a list of directories (collections) that this server is allowed to access. The output also contains API names that can be requested to each directory (collection).

ds_list_avusB

List AVUs (attribute-value-unit) from a file (data-object), directory (collection), resource, or user.

ds_list_directoryB

Get a list of files (data-objects) and directories (collections) in a specified path. The specified path must be an iRODS path. The output is in JSON format. The output contains entries in the given directory (collection) path. Use offset and limit parameters to paginate through large directories.

ds_list_directory_detailsA

Get a list of files (data-objects) and directories (collections) in a specified path with full detailed info. The specified path must be an iRODS path. The output is in JSON format. The output contains entries in the given directory (collection) path, and users or groups who can access the files (data-ojects). Files (data-objects) will also have replica information. Use offset and limit parameters to paginate through large directories.

ds_list_policiesA

List policies in effect for the Data Store. With project_path, returns the MESA policy AVUs (mesa.policy.*) set on that project root — the policies mesa-mcp itself honours. Always includes the server-side Policy Composition Framework envelope; iRODS does not expose PCF state through PRC, so that part is a documented stub.

ds_list_rulesA

List iRODS rules visible to the caller. Returns a best-effort list of delayed rules; the static rule base is not exposed by PRC and the note field documents that limitation.

ds_list_ticketsA

Get a list of iRODS tickets. Return information about the tickets, such as their IDs and expiration times, in JSON format. Anonymous users are not allowed to list tickets.

ds_make_directoryC

Make a new directory (collection).

ds_modify_accessC

Modify data access of a user or group to a file (data-object) or directory (collection).

ds_modify_access_inheritanceC

Modify data access inheritance flag of a file or directory.

ds_modify_ticketA

Modify restrictions on an existing iRODS ticket. Cannot change the ticket's mode — that is set at issuance time. Returns the applied restrictions. Anonymous users are not allowed to modify tickets.

ds_move_fileC

Move a file (data-object) or directory (collection) to a new location.

ds_read_fileB

Read the partial content of a file (data-object) with the specified path and offset. The specified path must be an iRODS path. If the file is too large to be displayed inline, use the WebDAV URI to access it.

ds_search_filesA

Recursively search for files (data-objects) and directories (collections) matching a pattern. The specified search root path must be an iRODS path. Use unix wildcards, such as '?' and '*', for the search pattern. The matching entries are returned in JSON format.

ds_search_files_by_avuC

Search for files (data-objects) and directories (collections) matching iRODS AVU (attribute-value-units) using specified attribute and value. The matching entries are returned in JSON format.

ds_search_metadataA

Search iRODS by AVU attribute/value/unit. More permissive than ds_search_files_by_avu: any combination of attribute, value, and unit can be supplied and you can restrict the result type to data objects, collections, or both.

ds_upload_fileB

Returns how to upload the full contgent of a file (data-object) to the specified path. The specified path must be an iRODS path. Returns how to upload the file using WebDAV, GoCommands (gocmd), and iCommands.

ds_use_ticketA

Supply an iRODS ticket to the caller's iRODS session. Subsequent operations by the same caller run with the ticket applied, and their AVU writes record the ticket id in DuckLake's via_ticket column. Other callers' sessions are unaffected.

ds_write_fileC

Write the partial content to a file (data-object) with the specified path and offset. The specified path must be an iRODS path. If the file is too large to be displayed inline, use the WebDAV URI to access it.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 50 tools

Disambiguation3/5

Most tools have distinct resource+action targets, but several pairs overlap: ds_list_directory vs ds_list_directory_details, ds_search_files_by_avu vs ds_search_metadata (both AVU search), ds_list_avus vs ds_get_metadata, and ds_add_avu vs ds_add_avus. The detailed descriptions do help an agent choose, and the mesa_* vs ds_* split separates higher-level workflows from raw iRODS ops, but the boundaries are not crisp.

Naming Consistency4/5

A consistent verb_noun snake_case pattern (ds_add_avu, ds_delete_file, ds_make_directory, ds_list_rules) holds across the dominant ds_ family, with namespace prefixes (mesa_ols_, mesa_avu_, mesa_datacite_, mesa_policy_) grouping related tools predictably. Minor deviations exist, e.g. singular/plural drift (ds_add_avu vs ds_add_avus, ds_list_avus) and redundant qualifiers (ds_search_files_by_avu vs ds_search_metadata).

Tool Count2/5

50 tools is very heavy and near the extreme end of the scale. While the surface genuinely spans multiple subsystems (iRODS CRUD, AVUs, tickets, policies, OLS ontologies, DataCite, DuckLake), the count suggests feature bloat and several entries are documented stubs (ds_get_policy_config, ds_get_rule_definition, ds_list_rules) that dilute the set.

Completeness4/5

Coverage is broad and near-complete: file/directory CRUD, AVU CRUD and search, ticket lifecycle, access and inheritance management, ontology lookup/hierarchy, DataCite validation/export, and project enrollment all exist. Gaps are minor (some PCF/rule inspection is a documented stub), and agents have viable workarounds via rules and search tools.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive