Matrix Client-Server API Skill
SkillCommunicationOperate Matrix Client-Server API through UXC with a curated OpenAPI schema, bearer-token auth, and homeserver-aware messaging guardrails.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Matrix Client-Server API Skill skill
What this skill tells your AI
The instructions your AI receives, as published by holon-run/uxc in skills/matrix-openapi-skill/SKILL.md and read by ahel’s review.
Use this skill to run Matrix Client-Server operations through uxc + OpenAPI.
Reuse the uxc skill for shared execution, auth, and error-handling guidance.
Prerequisites
uxcis installed and available inPATH.- Network access to your Matrix homeserver's client-server base URL, usually
https://<homeserver>/_matrix/client/v3. - Access to the curated OpenAPI schema URL:
https://raw.githubusercontent.com/holon-run/uxc/main/skills/matrix-openapi-skill/references/matrix-client-server.openapi.json
- A Matrix access token for the target homeserver.
Scope
This skill covers a practical request/response Matrix surface:
- token owner lookup
- joined room discovery
- room state lookup
/syncpolling reads, including daemon-backed poll subscribe- user profile and presence lookup
- room message sends
This skill does not cover:
- login, SSO, device registration, or generic token acquisition flows
- appservice, federation, or bot framework abstractions
- webhook or long-running event receiver runtime
- full Matrix spec coverage
Homeserver Base URL
Matrix is homeserver-specific. The endpoint you link must include the Matrix client-server base path:
- typical form:
https://<homeserver>/_matrix/client/v3 - example form:
https://matrix.org/_matrix/client/v3
Do not link only the homeserver origin without /_matrix/client/v3.
Authentication
Matrix Client-Server API uses Authorization: Bearer <access_token>.
Preferred path for OAuth-aware homeservers:
uxc auth oauth start matrix-oauth \
--endpoint https://matrix.org/_matrix/client/v3 \
--redirect-uri http://127.0.0.1:8788/callback \
--client-id <client_id>
uxc auth oauth complete matrix-oauth \
--session-id <session_id> \
--authorization-response 'http://127.0.0.1:8788/callback?code=...'
uxc auth binding add \
--id matrix-oauth \
--host matrix.org \
--path-prefix /_matrix/client/v3 \
--scheme https \
--credential matrix-oauth \
--priority 100
Fallback path when you already have an access token:
uxc auth credential set matrix-access \
--auth-type bearer \
--secret-env MATRIX_ACCESS_TOKEN
uxc auth binding add \
--id matrix-access \
--host matrix.org \
--path-prefix /_matrix/client/v3 \
--scheme https \
--credential matrix-access \
--priority 100
If your homeserver is not matrix.org, replace the host while keeping the same path prefix. Validate the active mapping when auth looks wrong:
uxc auth binding match https://matrix.org/_matrix/client/v3
Notes:
uxc auth oauthworks only for homeservers that expose Matrix OAuth metadata.- Prefer a loopback redirect URI on an uncommon high port, such as
http://127.0.0.1:8788/callback, to avoid conflicts with local services on common ports. - Legacy Matrix login and SSO fallback flows are not covered by this skill yet.
Core Workflow
-
Use the fixed link command by default:
command -v matrix-openapi-cli- If missing, create it:
uxc link matrix-openapi-cli https://matrix.org/_matrix/client/v3 --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/matrix-openapi-skill/references/matrix-client-server.openapi.json matrix-openapi-cli -h
-
Inspect operation schema first:
matrix-openapi-cli get:/account/whoami -hmatrix-openapi-cli get:/sync -hmatrix-openapi-cli put:/rooms/{roomId}/send/{eventType}/{txnId} -h
-
Prefer read validation before writes:
matrix-openapi-cli get:/account/whoamimatrix-openapi-cli get:/joined_roomsmatrix-openapi-cli get:/rooms/{roomId}/state roomId=!abc123:example.org
-
Execute with key/value or positional JSON:
- key/value:
matrix-openapi-cli get:/sync timeout=30000 filter={"room":{"timeline":{"limit":10}}} - positional JSON:
matrix-openapi-cli put:/rooms/{roomId}/send/{eventType}/{txnId} '{"roomId":"!abc123:example.org","eventType":"m.room.message","txnId":"uxc-001","msgtype":"m.text","body":"Hello from UXC"}'
- key/value:
-
For background
/syncpolling, calluxc subscribe startdirectly against the homeserver base URL:uxc subscribe start https://matrix.org/_matrix/client/v3 get:/sync --auth matrix-oauth --mode poll --poll-config '{"interval_secs":2,"extract_items_pointer":"/rooms/join/!abc123:example.org/timeline/events","missing_extract_items_pointer_as_empty":true,"request_cursor_arg":"since","response_cursor_pointer":"/next_batch","checkpoint_strategy":{"type":"cursor_only"}}' --sink file:$HOME/.uxc/subscriptions/matrix-sync.ndjson timeout=1000 'filter={"room":{"rooms":["!abc123:example.org"],"timeline":{"limit":5}}}'
Operation Groups
Session / Discovery
get:/account/whoamiget:/joined_roomsget:/sync
Room Reads
get:/rooms/{roomId}/stateget:/rooms/{roomId}/state/{eventType}/{stateKey}
User Reads
get:/profile/{userId}get:/presence/{userId}/status
Messaging
put:/rooms/{roomId}/send/{eventType}/{txnId}
Guardrails
- Keep automation on the JSON output envelope; do not use
--text. - Parse stable fields first:
ok,kind,protocol,data,error. get:/syncworks both as a normal polling/read call and as a validated daemon-backed poll subscription when invoked throughuxc subscribe start.- For room-scoped
/syncsubscriptions, setmissing_extract_items_pointer_as_empty=trueso sparse responses without new room timeline events are treated as an empty batch instead of a fatal error. put:/rooms/{roomId}/send/{eventType}/{txnId}is high-risk and should default tom.room.messagetext sends unless the user explicitly asks for another event type.- Reuse a unique
txnIdper send attempt to avoid accidental duplicates. - Many homeservers restrict presence visibility and room state/event access based on membership and server policy; auth success does not imply every room or profile read will succeed.
matrix-openapi-cli <operation> ...is equivalent touxc <homeserver_client_base> --schema-url <matrix_openapi_schema> <operation> ....
References
- Usage patterns:
references/usage-patterns.md - Curated OpenAPI schema:
references/matrix-client-server.openapi.json - Matrix Client-Server API: https://spec.matrix.org/latest/client-server-api/
- Matrix spec source: https://github.com/matrix-org/matrix-spec/tree/main/data/api/client-server
Signals
- GitHub stars
- 113
- Forks
- 7
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
matrix-openapi-skill- Source
- github.com/holon-run/uxc