Python SDK for Matrix Hub — catalog search, entity detail, install, and remote management for agents, tools, and MCP servers.
Project description
Matrix Python SDK
matrix-python-sdk is the official Python SDK for the Matrix Hub — the open catalog and installer for agents, tools, and MCP servers.
Built for teams that need fast discovery, reproducible installs, and safe runtime operations at scale.
What’s new in 0.1.2
- Search helpers (
matrix_sdk.search): on-top of/catalog/searchwith filter normalization, tiny retries, and automatic mode fallbacks (semantic → hybrid → keyword). - Client search parity:
MatrixClient.searchsupportswith_rag(fit reasons) andrerank(none|llm). - Quality & docs updates across installer/runtime/bulk.
Why teams choose this SDK
- One interface for a messy ecosystem — consistent search/install across agents, tools, and MCP servers.
- Reproducible installs — Hub-backed plans, adapters, and lockfiles you can ship to CI and prod.
- Production guardrails — safe archive extraction, Git host allow-lists, ETag-aware caching, typed models.
- Performance at scale — lean client, server-side indexing/scoring, normalized params to maximize cache hits.
Install
pip install matrix-python-sdk
Python 3.11+ supported.
Quickstart
1) Search
from matrix_sdk.client import MatrixClient
hub = MatrixClient("https://api.matrixhub.io")
res = hub.search(
q="extract pdf tables",
type="any",
mode="hybrid", # "keyword" | "semantic" | "hybrid"
limit=5,
with_snippets=True,
with_rag=False,
include_pending=False,
rerank="none",
)
for it in res.get("items", []):
print(it.get("id"), "→", it.get("manifest_url"))
Prefer the high-level helper for resilience and typed results:
from matrix_sdk.search import search, SearchOptions
res = search(hub, "chat with PDFs", type="agent",
options=SearchOptions(as_model=True, max_attempts=3))
print(res.total, [i.id for i in res.items])
2) Install
from matrix_sdk.client import MatrixClient
hub = MatrixClient("https://api.matrixhub.io")
hub.install(
id="mcp_server:hello-sse-server@0.1.0",
target="./.matrix/runners/demo",
# alias="hello-sse", # optional
# options={"force": True}, # optional
)
3) Run locally (no daemon)
from matrix_sdk.client import MatrixClient
from matrix_sdk.installer import LocalInstaller
from matrix_sdk import runtime
hub = MatrixClient("https://api.matrixhub.io")
result = LocalInstaller(hub).build("mcp_server:hello-sse-server@0.1.0", alias="hello-sse")
lock = runtime.start(result.target, alias="hello-sse")
print("PID:", lock.pid, "PORT:", lock.port)
runtime.stop("hello-sse")
4) Bulk register (optional)
Register servers (ZIP/dir/Git) into an MCP Gateway with concurrency, idempotency keys, and capability probing.
import os, asyncio
from matrix_sdk.bulk.bulk_registrar import BulkRegistrar
sources = [{"kind":"git","url":"https://github.com/ruslanmv/hello-mcp","ref":"main","probe":True}]
registrar = BulkRegistrar(
gateway_url=os.getenv("GATEWAY_URL", "http://127.0.0.1:4444"),
token=os.getenv("ADMIN_TOKEN"),
concurrency=50,
probe=True,
)
results = asyncio.run(registrar.register_servers(sources))
print(results)
API surface (snapshot)
matrix_sdk.client.MatrixClient:search,entity,install,list_remotes,add_remote,delete_remote,trigger_ingestmatrix_sdk.search:search,search_try_modes,SearchOptionsmatrix_sdk.installer.LocalInstaller:plan,materialize,prepare_env,buildmatrix_sdk.runtime:start,stop,status,tail_logs,doctor,log_pathmatrix_sdk.bulk.*(optional): discovery, gateway client, registrar
Pydantic models (v1/v2 compatible) in matrix_sdk.schemas: SearchItem, SearchResponse, EntityDetail, InstallOutcome, etc.
Reliability, Security, Performance
- Reliability: strict error types, small safe retries, idempotent bulk writes, optional ETag cache.
- Security: safe ZIP/TAR extraction, Git host allow-lists, deny-by-default where sensible.
- Performance: minimal client overhead, normalized search params, server-side scoring and indexing.
Links
- Docs: see
docs/(MkDocs) — Usage, API Reference, Bulk - Source: https://github.com/agent-matrix/matrix-python-sdk
- Matrix Hub: https://github.com/agent-matrix/matrix-hub
- License: Apache 2.0
Contributing
We welcome issues and PRs. Please read CONTRIBUTING.md before submitting changes. Join us in shaping a fast, safe, and open ecosystem for AI agents, tools, and MCP servers.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file matrix_python_sdk-0.1.5.tar.gz.
File metadata
- Download URL: matrix_python_sdk-0.1.5.tar.gz
- Upload date:
- Size: 44.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e6053e0f159c5b1e60e3881a0607e0593fbfe537e67f3cb319fb1906be6404d
|
|
| MD5 |
8c51cd1721c853ed5eefd0e8462faf1b
|
|
| BLAKE2b-256 |
faecc34683607444b35fa15b20d992347362a6f08542d815c3320045fc4d64e4
|
Provenance
The following attestation bundles were made for matrix_python_sdk-0.1.5.tar.gz:
Publisher:
release.yml on agent-matrix/matrix-python-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
matrix_python_sdk-0.1.5.tar.gz -
Subject digest:
7e6053e0f159c5b1e60e3881a0607e0593fbfe537e67f3cb319fb1906be6404d - Sigstore transparency entry: 429742724
- Sigstore integration time:
-
Permalink:
agent-matrix/matrix-python-sdk@d95c2ab9c753cfc9763ee0883d452f249961e389 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/agent-matrix
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d95c2ab9c753cfc9763ee0883d452f249961e389 -
Trigger Event:
release
-
Statement type:
File details
Details for the file matrix_python_sdk-0.1.5-py3-none-any.whl.
File metadata
- Download URL: matrix_python_sdk-0.1.5-py3-none-any.whl
- Upload date:
- Size: 48.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87d2f83a9d0d8c0b408fae417f694d741ab4fd8c4c5d783e62748a6f37fb73d5
|
|
| MD5 |
e5e969967128e5927e545958649ccc09
|
|
| BLAKE2b-256 |
1748c4a8d05d053494ac9fdc797a30695f50734a9e9df181cc0d1894be6dfaa8
|
Provenance
The following attestation bundles were made for matrix_python_sdk-0.1.5-py3-none-any.whl:
Publisher:
release.yml on agent-matrix/matrix-python-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
matrix_python_sdk-0.1.5-py3-none-any.whl -
Subject digest:
87d2f83a9d0d8c0b408fae417f694d741ab4fd8c4c5d783e62748a6f37fb73d5 - Sigstore transparency entry: 429742748
- Sigstore integration time:
-
Permalink:
agent-matrix/matrix-python-sdk@d95c2ab9c753cfc9763ee0883d452f249961e389 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/agent-matrix
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d95c2ab9c753cfc9763ee0883d452f249961e389 -
Trigger Event:
release
-
Statement type: