# UluOps Registry MCP [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/Uluops/-uluops-registry-mcp  
**GitHub Stars:** 0  
**npm Downloads (last month):** 2908  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/uluops-registry-mcp

## Description
MCP server for the UluOps Registry API — definition management, versioning, and analytics

## Tools
Capabilities this server exposes over MCP:

- **set_default_type** — Set or clear a session-level default for the `type` parameter. When set, definition tools use this type unless explicitly overridden. Omit `type` to clear the default.
- **list_definitions** — List registry definitions with optional filters (type, status, domain, visibility, search, name, match, tags, pagination). name implies exact identifier matching; match=prefix matches a literal prefix. Keyword text uses FULLTEXT over name, display_name, description for sanitized terms of at least 3 characters; short original searches use name/display_name, and longer searches sanitized below 3 characters also use description. Tags filter independently by OR-any and are not keyword searched. Returns a compact projection per item by default; pass format:'full' for all catalog fields.
- **get_definition** — Get a single definition by type and name. Optionally include YAML content, runtime markdown, or cross-references.
- **search_definitions** — Search definitions by keyword (default), exact identifier, or literal identifier prefix. Keyword searches sanitized terms of at least 3 characters across name, display_name, description using FULLTEXT; short original searches use name/display_name, and longer searches sanitized below 3 characters also use description. Tags filter independently by OR-any and are not keyword searched. Supports page, limit, sort and order.
- **list_models** — List available AI models with optional provider, tier, and status filters.
- **resolve_alias** — Resolve a model alias (e.g. "sonnet", "haiku") to its provider and model ID. ALIAS-FLOAT CONTRACT: a bare alias means the CURRENT model in its family and is repointed each generation — every published definition using a bare alias adopts the new target on its next execution. Write a qualified model id (e.g. claude-sonnet-4-6) to pin.
- **validate_definition** — Validate a definition YAML without storing it. Returns validation errors if any.
- **render_definition** — Get the rendered runtime output for a definition version. Use target to render for a specific harness (opencode, codex, gemini). Use output_path to write on the MCP server host within OUTPUT_BASE_DIR (default: server cwd); omit it for inline output. File results retain rendering metadata and warnings.
- **create_definition** — Create a new draft definition with YAML content.
- **update_definition** — Update a draft definition version with new YAML, visibility, description, or tags.
- **publish_definition** — Publish a draft definition version, making it available for use. The response surfaces non-fatal warnings (e.g. translation failure) under a top-level `warnings` array — callers should inspect it before assuming the definition is renderable.
- **deprecate_definition** — Deprecate a definition version with a reason and optional successor.
- **archive_definition** — Archive a deprecated definition. Published definitions must be deprecated first; an invalid transition returns allowedTransitions. Archived is terminal — removed from discovery, still resolvable by ID.
- **delete_definition** — Delete a definition version. A published, deprecated or archived version with dependents or forks returns DELETE_BLOCKED and a recovery action. The response discloses blocker presence only, never hidden identities or counts.
- **update_and_publish** — Update a definition and publish it in one step. Accepts yaml or file_path. Auto-creates a new draft if the version is published or missing.
- **batch_publish** — Publish multiple definition versions in one call. Returns results for each item; continues on individual failures.
- **list_versions** — List all versions of a definition with their status and metadata.
- **diff_versions** — Compare two versions of a definition. Returns a section-level summary by default — note that for ADL agents everything nests under one "agent" section, so sectionsModified is always ["agent"]; prefer format="fields" for anything ADL. format="fields" gives a field-level structural diff with classification; its valueDiff entries use diff-match-patch opcodes: [0,"…"]=unchanged, [-1,"…"]=removed, [1,"…"]=added. format="unified" gives a git-style line diff. Select diff_contract="combined-v1" with format="unified" for an applicable patch (empty string for no changes); full=true additionally returns exact sourceYaml/targetYaml. Without the selector, full=true returns raw fromYaml/toYaml and overrides format.
- **get_dependencies** — Get the forward dependency graph for a definition version. Omit version to use the latest published version.
- **get_dependents** — Get the reverse dependency graph — what depends on this definition version. Omit version to use the latest published version.
- **get_execution_stats** — Get execution statistics for a definition. The version argument (default: the latest published version) selects the route; the counts are not limited to it. Optional window parameter in DAYS (converted to the API's minute-denominated window; the response echoes windowMinutes). Figures here are not evidence about any one version, including those shown with a version: the response does not show that the version was checked against the registry, and it may have been filled in by the server. Each may pool every version of the agent or definition it describes (some also span several definitions or orgs), even when the request named a version, or may come from a single version. Do not attribute such a figure to a version, compare it with a version's own figures, recommend a definition's current version on the basis of it, or read a change in it as evidence that an edit made a definition better or worse.
- **list_forks** — List all forks of a definition version. Omit version to list forks of the latest published version.
- **fork_definition** — Fork a definition version under a new name. The fork starts at version 1.0.0 regardless of the source version (it is a new artifact with its own history). Its default display_name derives from the new name — pass display_name to override.
- **is_forkable** — Check if a definition version can be forked. Omit version to check the latest published version.
- **get_fork_lineage** — Get the fork ancestry chain for a definition version. Omit version to trace from the latest published version.
- **record_execution** — Record a definition execution (idempotent). Admin-only: executions are recorded automatically by the UluOps runtime — user API keys do not need to call this.
- **retranslate_definition** — Retranslate a definition version using the latest translator. Use force=true to retranslate even if already current. The response carries changed:boolean — false means the work ran and produced identical artifacts (a correct no-op), distinguishing it from work that silently did not happen.
- **upgrade_definition** — Upgrade a legacy definition without storage/translation metadata to a new major version. Current-format or already translated definitions refuse; use publish or retranslate as appropriate. If response validation fails after a write, read the definition and versions before retrying.
- **get_model** — Get details for a specific AI model by provider and model ID.
- **list_providers** — List AI model providers, paginated (limit default 50, max 200; offset). The response total is the whole catalog, not the page.
- **list_aliases** — List all model aliases and their resolved provider+model mappings. ALIAS-FLOAT CONTRACT: bare aliases track the current family model and are repointed each generation (see resolve_alias); qualified model ids pin. There is deliberately no fable alias (restricted-availability model).
- **get_translator_version** — Get the current definition translator version.
- **get_user** — Get a public user profile by ID.
- **batch_users** — Batch lookup of public user profiles by IDs (max 100). Optional format=envelope returns data, foundIds and missingIds with lowercase UUIDs deduplicated in request order; default is a map.
- **list_languages** — List all definition languages (ADL, CDL, WDL, PDL) with current schema version info.
- **get_language** — Get a definition language with its JSON Schema. Returns a compact schema digest by default (sufficient to author a definition); pass format:'full' for the complete JSON Schema.
- **get_effectiveness** — Get effectiveness metrics for a definition: pass rate, scores, taxonomy distribution, health score, and composition lift. Version defaults to latest. Quality numbers (passRate/runAvgScore) are VOTER-WEIGHTED: one actor, one vote — a single account cannot dominate them with run volume. metrics.provenance reports who stands behind them: actorCount/voterCount (windowed), confidence (provisional until 3+ qualifying actors). Once qualifying executions exist it ALSO carries the independent vs selfReported split — then provenance.independent is the headline figure to quote (selfReported is the author rating their own definition); at zero executions those two fields are absent, and there is no headline figure to quote. uniqueUsers is the all-time distinct-actor count. For AGENTS, quality is participation-based (snapshot scores across every run the agent appears in, constituent or standalone) and passRate is null by design — a run-level gate result cannot be attributed to one constituent. These figures are not specific to the requested version: run-based figures pool every version of the definition run in the window (possibly across orgs), and issue-derived figures (false-positive, declined and resolution rates, taxonomy, and the parts of health built from them) may come from a single version that need not be the one requested. They cannot show whether one version differs from another. Do not compare these figures across versions, and do not report them as the requested version's.
- **get_health** — Get health grade (A-F), issue profile, and contributing factors for a definition. Health scores are provisional (weight tables pending calibration). The pass-rate factor only feeds health when 3+ qualifying actors stand behind it (voter-weighted, actor-diversity gated) — thin-actor definitions read as insufficient-data rather than confidently scored. Version defaults to latest. These figures are not specific to the requested version: run-based figures pool every version of the definition run in the window (possibly across orgs), and issue-derived figures (false-positive, declined and resolution rates, taxonomy, and the parts of health built from them) may come from a single version that need not be the one requested. They cannot show whether one version differs from another. Do not compare these figures across versions, and do not report them as the requested version's.
- **get_ecosystem_overview** — Get ecosystem-wide overview: definition counts, aggregate health scores, top performers, and definitions needing attention. Figures here are not evidence about any one version, including those shown with a version: the response does not show that the version was checked against the registry, and it may have been filled in by the server. Each may pool every version of the agent or definition it describes (some also span several definitions or orgs), even when the request named a version, or may come from a single version. Do not attribute such a figure to a version, compare it with a version's own figures, recommend a definition's current version on the basis of it, or read a change in it as evidence that an edit made a definition better or worse.
- **get_lineage** — Get the lineage graph for a definition: versions and forks as a tree with health scores per node. Cross-version figures here are observational. Some may not be per-version at all: health, failure-domain, taxonomy and execution-count figures, where present, may be computed for the definition rather than the version they are shown under (pooling its runs across versions, and possibly across orgs, or taking issue-derived parts from a single version that need not be the one shown) and are stored against a version whenever it is recomputed, so a difference between versions there can reflect when and how each was recomputed rather than the versions. Pass rates and scores, where per-version, come from each version's own runs in its own period, on its own artifacts, and are the agent's own assessments of those artifacts, so an edit that changes how lenient it is moves them without changing quality. No difference between versions here is evidence that an edit made the definition better or worse; do not rank versions or recommend one on the basis of these figures, alone or combined with other figures.
- **get_evolution** — Get version-over-version metrics timeline with trend detection (improving/declining/stable/volatile/insufficient_data — read off the slope confidence interval; volatile = the interval spans both dead-zone edges, no direction supported) and confidence level. Cross-version figures here are observational. Some may not be per-version at all: health, failure-domain, taxonomy and execution-count figures, where present, may be computed for the definition rather than the version they are shown under (pooling its runs across versions, and possibly across orgs, or taking issue-derived parts from a single version that need not be the one shown) and are stored against a version whenever it is recomputed, so a difference between versions there can reflect when and how each was recomputed rather than the versions. Pass rates and scores, where per-version, come from each version's own runs in its own period, on its own artifacts, and are the agent's own assessments of those artifacts, so an edit that changes how lenient it is moves them without changing quality. No difference between versions here is evidence that an edit made the definition better or worse; do not rank versions or recommend one on the basis of these figures, alone or combined with other figures.
- **get_translation_analytics** — Get definition versions grouped by translator version with aggregate metrics (pass rate, score, run count). Cross-version figures here are observational. Some may not be per-version at all: health, failure-domain, taxonomy and execution-count figures, where present, may be computed for the definition rather than the version they are shown under (pooling its runs across versions, and possibly across orgs, or taking issue-derived parts from a single version that need not be the one shown) and are stored against a version whenever it is recomputed, so a difference between versions there can reflect when and how each was recomputed rather than the versions. Pass rates and scores, where per-version, come from each version's own runs in its own period, on its own artifacts, and are the agent's own assessments of those artifacts, so an edit that changes how lenient it is moves them without changing quality. No difference between versions here is evidence that an edit made the definition better or worse; do not rank versions or recommend one on the basis of these figures, alone or combined with other figures.
- **compare_effectiveness** — Compare effectiveness metrics across 2-5 definition versions side-by-side: pass rate, avg score, run count, health score, and translator version. Select quality_contract=nullable-v1 for truthful absent gate rates; agent gate rates are null and scores remain a separate metric. Cross-version figures here are observational. Some may not be per-version at all: health, failure-domain, taxonomy and execution-count figures, where present, may be computed for the definition rather than the version they are shown under (pooling its runs across versions, and possibly across orgs, or taking issue-derived parts from a single version that need not be the one shown) and are stored against a version whenever it is recomputed, so a difference between versions there can reflect when and how each was recomputed rather than the versions. Pass rates and scores, where per-version, come from each version's own runs in its own period, on its own artifacts, and are the agent's own assessments of those artifacts, so an edit that changes how lenient it is moves them without changing quality. No difference between versions here is evidence that an edit made the definition better or worse; do not rank versions or recommend one on the basis of these figures, alone or combined with other figures.
- **get_diff_impact** — Get structural diff combined with metric deltas between two definition versions. Accepts from/to (matching diff_versions) or from_version/to_version. Deltas are observational, not causal — caveats are always included. Select quality_contract=nullable-v1 for null absent gate rates and deltas, with explicit denominator and fraction units. Cross-version figures here are observational. Some may not be per-version at all: health, failure-domain, taxonomy and execution-count figures, where present, may be computed for the definition rather than the version they are shown under (pooling its runs across versions, and possibly across orgs, or taking issue-derived parts from a single version that need not be the one shown) and are stored against a version whenever it is recomputed, so a difference between versions there can reflect when and how each was recomputed rather than the versions. Pass rates and scores, where per-version, come from each version's own runs in its own period, on its own artifacts, and are the agent's own assessments of those artifacts, so an edit that changes how lenient it is moves them without changing quality. No difference between versions here is evidence that an edit made the definition better or worse; do not rank versions or recommend one on the basis of these figures, alone or combined with other figures.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "uluops-registry-mcp": {
    "command": "npx",
    "args": ["-y","@uluops/registry-mcp"],
    "env": {
      "ULUOPS_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `ULUOPS_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What UluOps Registry MCP does

UluOps Registry MCP exposes the UluOps Registry API through MCP over stdio. The package is intended for AI workflow definitions such as agents, commands, workflows, and pipelines, and provides 44 tools and 4 resources according to its project description. It acts as a protocol adapter: registry-side processing, validation, storage, and rendering remain in the API.

Read operations include filtered catalog listing, keyword or pattern search, single-definition retrieval, version listing, dependency and dependent graphs, fork lineage, execution statistics, and model or provider lookup. Model tools can resolve aliases such as `sonnet` to a provider and model ID.

Write operations cover the definition lifecycle. Agents can create drafts, update them, publish them, deprecate them with a reason, archive deprecated versions, and delete versions when registry dependency and fork rules permit. A combined update-and-publish operation, batch publishing for up to 20 versions, and fork creation are also available.

## How it works

The server translates MCP JSON-RPC requests into calls to the Registry REST API. Definitions can be supplied as inline YAML or, for applicable operations, through a file path. Validation does not store the definition. Rendering returns Markdown inline or writes it to a host-side file. Version comparison supports section summaries, structural field changes with a suggested bump, and unified output; an optional combined contract can include an exact YAML patch.

Updating has smart version behavior: when the target is already published or absent and YAML is supplied, the operation can create a new draft instead. Translation tools retranslate definitions with the latest translator version, while upgrade tools convert legacy-format definitions.

## Setup and configuration

Node.js 20.3 or newer is required. Install or run the package with `npx -y @uluops/registry-mcp`, then add it as an MCP server using the `command` value `npx` and the package name as its argument. Supply an API key in the MCP environment; keys are obtained from the UluOps API-key settings and use the `ulr_` prefix.

`ULUOPS_ORG_SLUG` scopes definition writes. `ULUOPS_REGISTRY_URL` selects the API endpoint, while `ULUOPS_REGISTRY_TIMEOUT` and `ULUOPS_REGISTRY_RETRIES` control request behavior. Logging, file containment, and rendered-output locations can be configured with the logging, `WORKSPACE_DIR`, and `OUTPUT_BASE_DIR` variables. No `.env` file is required.

## Tools and capabilities

- Browse and search definitions using type, status, domain, visibility, name, tags, relevance, pagination, sorting, and match modes.
- Retrieve, validate, render, create, update, publish, deprecate, archive, delete, and batch-publish definitions.
- Compare versions, list versions, inspect dependencies, view dependents, and query execution statistics.
- Fork definitions, check fork eligibility, inspect lineage, retranslate content, and upgrade legacy definitions.
- List models and providers, retrieve model details, list aliases, and resolve aliases.

## Limitations and notes

The API key is sent to the configured registry URL on every request. By default, registry hosts are restricted to `*.uluops.ai` and loopback addresses. `ULUOPS_ALLOW_ANY_REGISTRY_HOST=1` enables other hosts, and private-network or cloud-metadata addresses additionally require `ULUOPS_ALLOW_PRIVATE_REGISTRY=1`.

File inputs and rendered outputs are constrained to configured base directories to reduce path traversal risk. `output_path` writes on the MCP server host, so remote clients should request inline Markdown instead. Existing output files require explicit overwrite permission, and unsafe traversal or symlink paths are refused.

Organization context applies to definition writes, while reads remain broadly accessible according to registry membership and visibility. Deletion can be blocked when dependents or forks prevent removal; the API returns a recovery action for such cases.

_Full upstream README: https://allmcps.com/mcp/uluops-registry-mcp/readme_

