add_plugin_to_library
ChatGPTAdd a plugin to the user's library so pipelines using it can run. Requires explicit user consent and host approval of a form showing the current effective row before any write. Community plugins are unreviewed code that may run on the user's machine. The effective row selects the publisher; approval covers this publisher's named plugin across releases and future updates until the user removes it.
create_pipeline
ChatGPTSave a proposed pipeline to the user's workspace and return a link to open it. Does not start a run. Unset required parameters are reported in the result. Steps are optional: omitting them creates an empty pipeline, exactly as the New Pipeline button does. The operationId UUID identifies one intended creation; retries with the same UUID reconcile its outcome without duplicating the pipeline.
find_compatible_actions
ChatGPTWhich installed actions can consume (or produce) a given artifact type, decided by the same semantic-type rules the canvas uses to allow a connection. Supports finding downstream consumers or upstream producers.
get_action_specs
ChatGPTExact signatures - every input, parameter and output with its type, whether it is required, and its default, for the specified installed actions.
get_adagio_context
ChatGPTWho you are acting as, which QIIME release the catalog is pinned to, which plugins are installed, what this deployment can do, and how much pipeline quota is left. With release, the release and plugins reported are that one rather than the default.
get_pipeline
ChatGPTRead an existing pipeline as steps and connections rather than raw spec JSON, with its current problems, unset required parameters, and where its latest run wrote its outputs.
list_pipelines
ChatGPTThe caller's own pipelines, newest first, as summaries rather than graphs. Includes UUIDs for resolving names to pipeline identifiers. The optional name filter matches any part of a name case-insensitively. Names are not unique, so multiple results can match. An empty result means no owned pipeline matches.
list_plugins
ChatGPTEvery visible plugin row for the effective QIIME release with its tier and whether it is in the library. More than one row can have the same plugin name; all are returned, and effective identifies the one selected for authoring. Only that effective row exposes callable action identifiers. A plugin that is visible is not necessarily runnable: community plugins are opt-in, and a pipeline using one that is not in the library is refused at run time.
register_plugin
ChatGPTCreate a private plugin entry in the user's catalog so its actions can be used in their pipelines. Takes the document adagio qapi build --plugin <name> --no-submit --output qapi.json writes, generated in an environment where the plugin is installed. The input is its three unchanged top-level fields. No QAPI submission token is needed: the entry is owned by the signed-in user and visible only to them. It describes the interface and installs nothing. A private entry takes precedence over a public plugin of the same name in that user's catalog. An existing private entry of the same name and release is never replaced unless replaceExisting is true: replacement requires user approval because pipelines using the old interface may stop validating. With dryRun, checks the payload and reports planned creations or replacements without writing.
search_actions
ChatGPTFind installed actions by keyword and return compact summaries. Every query term must appear in the searchable metadata. Zero results means no keyword match, not that the deployment lacks a scientific capability.
update_pipeline
ChatGPTEdit an existing pipeline: add steps, connect them, change parameters, remove steps. Existing steps keep their identity and their position on the canvas, so this does not rearrange the user's layout or discard cached run state. Steps are identified by their existing names.
validate_pipeline
ChatGPTCheck a whole proposed pipeline without saving anything. Returns the wiring it would produce, remaining problems, and which required parameters are still unset.