Usage Patterns

Progressive Flow (Default)

  1. Discover operations:
uxc <host> -h
  1. Inspect operation input/output shape:
uxc <host> <operation> -h
  1. Execute with minimal valid payload:
uxc <host> <operation> field=value
  1. Parse success/failure envelope:
uxc <host> <operation> field=value | jq '.ok, .kind, .data'

Wrapper Pattern (Link-First)

For provider-specific wrapper skills, use a fixed local link command as the default interface:

command -v <provider>-mcp-cli
# If missing:
uxc link <provider>-mcp-cli <host>
<provider>-mcp-cli -h
<provider>-mcp-cli <operation> -h
<provider>-mcp-cli <operation> field=value

For OpenAPI services whose runtime URL and schema URL differ, persist the schema on the link itself:

uxc link <provider>-openapi-cli <host> --schema-url <schema_url>
<provider>-openapi-cli -h

For stdio hosts that expect credentials in child-process env vars, persist credential selection and env injection on the link:

uxc auth credential set <credential_id> --secret-env <ENV_NAME>
uxc link <provider>-mcp-cli <stdio_command> --credential <credential_id> --inject-env <ENV_NAME>={{secret}}
<provider>-mcp-cli -h

For MCP HTTP or other HTTP endpoints that require API keys in the URL query string, configure the credential with --query-param and keep the endpoint itself clean:

uxc auth credential set flipside --auth-type api_key --query-param "apiKey={{secret}}" --secret-env FLIPSIDE_API_KEY
uxc auth binding add --id flipside-mcp --host mcp.flipsidecrypto.xyz --path-prefix /mcp --scheme https --credential flipside --priority 100
uxc https://mcp.flipsidecrypto.xyz/mcp -h

For multi-part auth, keep one credential and store extra values as named fields:

uxc auth credential set exchange \
  --auth-type api_key \
  --field api_key=env:EXCHANGE_API_KEY \
  --field secret_key=env:EXCHANGE_SECRET_KEY

For signed HTTP APIs, attach the signer to the binding instead of hardcoding signing into the endpoint URL:

uxc auth binding add \
  --id exchange-signed \
  --host api.example.com \
  --path-prefix /v1 \
  --scheme https \
  --credential exchange \
  --signer-json '{"kind":"hmac_query_v1","algorithm":"hmac_sha256","signing_field":"secret_key","key_field":"api_key","key_placement":"header","key_name":"X-API-KEY","signature_param":"signature","signature_encoding":"hex","timestamp_param":"timestamp","timestamp_unit":"milliseconds","canonicalization":{"mode":"preserve_order"}}' \
  --priority 100

Examples:

notion-mcp-cli -h
# Equivalent:
uxc mcp.notion.com/mcp -h
context7-mcp-cli query-docs libraryId=/reactjs/react.dev query=useState
# Equivalent:
uxc mcp.context7.com/mcp query-docs libraryId=/reactjs/react.dev query=useState
discord-openapi-cli get:/gateway
# Equivalent if the link was created with --schema-url:
uxc https://discord.com/api/v10 --schema-url <discord_openapi_spec> get:/gateway

Conflict Handling For Wrapper Skills

Input Modes

Bare JSON positional payload

uxc <host> <operation> '{"field":"value"}'

Key-value arguments

uxc <host> <operation> field=value

Do not pass raw JSON via --args; use bare JSON positional payload instead.

Host-Level Help

uxc <host> -h

Use this when you need quick discovery context before choosing an operation.

Auth-Protected Flow

  1. Confirm mapping:
uxc auth binding match <endpoint>

For signer-backed HTTP auth, also inspect the credential and binding shape before the first live call:

uxc auth credential info <credential_id>
uxc auth binding list
  1. Run intended read call directly (use as runtime validation).

  2. If auth fails, recover in order:

uxc auth oauth info <credential_id>
uxc auth oauth refresh <credential_id>
uxc auth oauth start <credential_id> --endpoint <endpoint> --redirect-uri <callback_uri>
uxc auth oauth complete <credential_id> --session-id <session_id> --authorization-response '<callback_url_or_code>'

Use uxc auth oauth login <credential_id> --endpoint <endpoint> --flow authorization_code only when one interactive process can wait for the callback input.

  1. If multiple bindings match, verify explicit credential:
uxc --auth <credential_id> <endpoint> <operation> '{...}'

Automation Safety Rules