UXC
Universal X-Protocol CLI
A stable execution surface for agents.
English | 简体中文
UXC gives agents one stable way to discover, authenticate, and call remote tools across OpenAPI, gRPC, GraphQL, MCP, and JSON-RPC.
Instead of writing separate glue for each protocol, SDK, or local MCP setup, UXC turns remote interfaces into one predictable command contract with help-first discovery, structured execution, and deterministic JSON output.
Why UXC Exists
Agent tool use usually breaks down in the same places:
- auth scattered across prompts, scripts, and local setup
- different invocation models for each protocol
- local MCP server names and config that are not portable across machines
- large tool manifests or schemas pushed into prompt context
- one-off wrappers that drift from upstream interfaces
UXC exists to make remote capabilities feel like one stable execution surface for agents and automation.
What UXC Does
- Discover operations from an endpoint on demand
- Inspect input and output shape before execution
- Execute operations with structured arguments
- Return deterministic JSON envelopes by default
- Reuse auth bindings, signer profiles, and linked shortcuts
If a target can describe itself, UXC can usually call it.
Why It Works Well With Agents and Skills
- Progressive discovery keeps context small:
<host> -h,<host> <operation_id> -h, then execute - URL-first usage avoids dependency on machine-specific MCP aliases or local wrapper names
- Auth bindings externalize credential matching instead of burying it in prompts
- Linked shortcuts (
uxc link) turn remote endpoints into stable local commands - The same command contract can be reused across many skills and workflows
Core Capabilities
- URL-first usage: call endpoints directly, no server alias required
- Multi-protocol detection and adapter routing
- Schema-driven operation discovery (
<host> -h,<host> <operation_id> -h) - Structured invocation (positional JSON, key-value args)
- Deterministic JSON envelopes for automation and agents
- Auth model with reusable credentials, bindings, and signer profiles
- App-credential bootstrap for short-lived bearer tokens (for example, Feishu/Lark and DingTalk)
- Host shortcut commands via
uxc link - Link-level default OpenAPI schema persistence via
uxc link --schema-url - Daemon-backed background subscriptions via
uxc subscribe - Provider-aware event transports for Slack Socket Mode, Discord Gateway, and Feishu long connection
- Stdio child-process auth injection via
--inject-env NAME={{secret}}
Supported protocols:
- OpenAPI / Swagger
- gRPC (server reflection)
- GraphQL (introspection)
- MCP (HTTP and stdio)
- JSON-RPC (OpenRPC-based discovery)
Architecture Snapshot
UXC keeps protocol diversity behind one execution contract:

This design keeps discovery, auth, and execution stable while allowing protocol-specific internals.
Target Use Cases
- AI agents and skills that need deterministic remote tool execution
- CI/CD and automation jobs that need schema-driven calls without SDK setup
- Cross-protocol integration testing with one command contract
- Controlled runtime environments where JSON envelopes and predictable errors matter
Non-Goals
UXC is not:
- a code generator
- an SDK framework
- an API gateway or reverse proxy
UXC is a stable execution surface for remote capabilities that can describe themselves.
Install
Homebrew (macOS/Linux)
Install Script (macOS/Linux)
|
Review before running:
Install a specific version:
|
Windows note: native Windows is no longer supported; run UXC through WSL.
Cargo
From Source
Quickstart (3 Minutes)
Most HTTP examples omit the scheme for brevity.
For public hosts, UXC infers https:// when omitted.
- Discover operations:
- Inspect operation schema:
- Execute with structured input:
Use only these endpoint forms:
uxc <host> -huxc <host> <operation_id> -huxc <host> <operation_id> key=valueoruxc <host> <operation_id> '{...}'
For nested object or array inputs, key-value mode also supports dotted and indexed paths:
Protocol Examples (One Each)
Operation ID conventions:
- OpenAPI:
method:/path(example:get:/users/{id}) - gRPC:
Service/Method - GraphQL:
query/viewer,mutation/createUser - MCP: tool name (example:
ask_question) - JSON-RPC: method name (example:
eth_getBalance)
OpenAPI
For schema-separated services, you can override schema source:
gRPC
Note: gRPC unary runtime invocation requires grpcurl on PATH.
GraphQL
# Prefer positional JSON for non-string object arguments
# Optional: control GraphQL return fields via reserved _select argument
MCP
MCP (stdio)
UXC can also invoke MCP servers started as local processes over stdio. For stdio endpoints, the "URL" is a quoted command line.
Playwright MCP (stdio) example:
# One-off discovery
# Create a stable command name for repeated use (recommended)
# Inspect an operation before calling it
# Call operations with key=value args
JSON-RPC
Skills
UXC provides one canonical skill plus scenario-specific official wrappers.
Use uxc skill as the shared execution layer, and add wrappers when they fit your workflow.
Start Here
uxc: canonical schema discovery and multi-protocol execution layerplaywright-mcp-skill: browser automation over MCP stdio throughuxccontext7-mcp-skill: current library documentation and examples over MCP
See docs/skills.md for publish history, validation notes, and ClawHub maintenance details.
uxc: canonical schema discovery and multi-protocol execution layeruxc-skill-creator: templates and workflow guidance for building new UXC-based skills
playwright-mcp-skill: run@playwright/mcpover MCP stdio throughuxcchrome-devtools-mcp-skill: drive Chrome DevTools MCP throughuxccontext7-mcp-skill: query up-to-date library documentation and examplesdeepwiki-mcp-skill: query repository documentation and ask codebase questions
notion-mcp-skill: operate Notion MCP workflows with OAuth-aware guidancelinear-graphql-skill: operate Linear issues, projects, and teams through GraphQLslack-openapi-skill: operate Slack Web API and receive inbound Socket Mode events throughuxc subscribediscord-openapi-skill: operate Discord REST API and receive Gateway events throughuxc subscribefeishu-openapi-skill: operate Feishu/Lark IM APIs with bootstrap-managed auth and long-connection event intaketelegram-openapi-skill: operate Telegram Bot API and receive updates through polling-baseduxc subscribematrix-openapi-skill: operate Matrix Client-Server API and follow room timelines through/syncpollingdingtalk-openapi-skill: operate DingTalk OpenAPI workflows with app bootstrap auth guidanceline-openapi-skill: operate LINE Messaging API request/response workflowswhatsapp-openapi-skill: operate WhatsApp Cloud API request/response workflows
alchemy-openapi-skill: query Alchemy prices and market endpoints through OpenAPIbinance-spot-openapi-skill: operate Binance Spot public market data and signed account/order flows through OpenAPIbinance-spot-websocket-skill: subscribe to Binance Spot public trade, ticker, depth, and book-ticker streams via raw WebSocketbinance-web3-openapi-skill: query Binance Web3 token discovery, rankings, smart money, audits, and address positions through OpenAPIbirdeye-mcp-skill: use Birdeye MCP for token discovery and market readsbitget-openapi-skill: operate Bitget exchange APIs through OpenAPIbitquery-graphql-skill: query Bitquery GraphQL for trades, transfers, holders, balances, and realtime subscription flowsblockscout-openapi-skill: read Blockscout explorer data through OpenAPIbybit-openapi-skill: operate Bybit exchange APIs through OpenAPIchainbase-openapi-skill: query Chainbase Web3 data APIs through OpenAPIcoinapi-openapi-skill: read CoinAPI market data through OpenAPIcoinbase-openapi-skill: operate Coinbase Advanced Trade APIs through OpenAPIcoingecko-openapi-skill: read CoinGecko public market data through OpenAPIcoinmarketcap-mcp-skill: use CoinMarketCap MCP for quotes, market overview, and narrativescrypto-com-mcp-skill: use Crypto.com MCP for exchange market datadefillama-openapi-skill: use DefiLlama public APIs through OpenAPIdefillama-prices-openapi-skill: query DefiLlama prices APIs through OpenAPIdefillama-pro-openapi-skill: use DefiLlama Pro APIs through OpenAPIdefillama-yields-openapi-skill: query DefiLlama yields APIs through OpenAPIdune-mcp-skill: discover blockchain tables, run SQL, fetch results, and build charts via Dune MCPethereum-jsonrpc-skill: use Ethereum JSON-RPC via curated OpenRPC metadataetherscan-mcp-skill: investigate addresses, token holders, and contracts via Etherscan MCPgate-mcp-skill: use Gate MCP for exchange market data and discovery workflowsgoldrush-mcp-skill: use GoldRush MCP for wallet, market, and token workflowskraken-openapi-skill: operate Kraken exchange APIs through OpenAPIkucoin-openapi-skill: operate KuCoin exchange APIs through OpenAPIlifi-mcp-skill: use LI.FI MCP for cross-chain route discovery and execution planningmexc-openapi-skill: operate MEXC exchange APIs through OpenAPImoralis-openapi-skill: query Moralis Web3 Data APIs through OpenAPIokx-exchange-websocket-skill: subscribe to OKX public exchange ticker, trade, book, and candle channels via raw WebSocketokx-mcp-skill: query OKX MCP for token, market, wallet, and swap workflowssui-jsonrpc-skill: use Sui JSON-RPC via curated OpenRPC metadatathegraph-mcp-skill: discover subgraphs, inspect schemas, and execute GraphQL via The Graph Subgraph MCP bridgethegraph-token-mcp-skill: query token, wallet, transfer, holder, and market data via The Graph Token API MCPupbit-openapi-skill: operate Upbit exchange APIs through OpenAPI
Install Skills
Use the skill folder name as the skill id for both npx skills and ClawHub.
Install from this repository using npx skills:
# Install the shared execution layer only
# Install any selected bundle of skills from this repo
Install published skills from ClawHub:
# Install the shared execution layer only
# Install any selected published skill by its folder/slug name
See docs/skills.md for the complete publish log and maintenance rules.
Output and Help Conventions
UXC is JSON-first by default.
Use --text (or --format text) when you want human-readable CLI output.
Examples:
Note: In endpoint routing, help is treated as a literal operation name, not a help alias.
Success envelope shape:
For MCP tools/call, data may include content, optional structuredContent, and optional isError.
Failure envelope shape:
Auth (Credentials + Bindings)
UXC authentication has two resources:
- Credentials: secret material and auth type
- Bindings: endpoint matching rules that select a credential
For non-OAuth credentials, use two auth tracks:
- simple auth: keep using
--secret,--secret-env, or--secret-op - complex auth: use repeatable
--field <name>=<source>plus optional binding-level--signer-json
Example:
# api_key supports configurable header names and templates
# multi-field auth for signed APIs
For --secret-op, secret resolution happens at request runtime through daemon execution.
Ensure daemon has usable 1Password auth context (for example OP_SERVICE_ACCOUNT_TOKEN), and restart daemon after env changes.
OAuth for MCP HTTP is supported (device code, client credentials, authorization code + PKCE).
See docs/oauth-mcp-http.md for full workflows.
Docs Map
- Extended quickstart and protocol walkthroughs:
docs/quickstart.md - Public no-key endpoints for protocol checks:
docs/public-endpoints.md - Logging and troubleshooting with
RUST_LOG:docs/logging.md - Auth credential secret sources (
literal/env/op):docs/auth-secret-sources.md - Run daemon with service managers (
systemd/launchd):docs/daemon-service.md - OpenAPI schema mapping and
--schema-url:docs/schema-mapping.md - Skills overview and install/maintenance guidance:
docs/skills.md - Release process:
docs/release.md
Contributing
Contributions are welcome.
- Development workflow and quality bar:
CONTRIBUTING.md - CI and release flows: GitHub Actions
License
MIT License - see LICENSE.