Aletheox SDK + MCP
Las interfaces de distribución del Core de Aletheox (motor determinista de
gobernanza para IA), extraídas del monorepo a un repo propio. Todas hablan con el
mismo Core API (api.aletheox.com) por HTTP; ninguna contiene lógica de
validación ni embebe el motor — solo transporte y serialización.
Este repo no incluye el núcleo (
core/) ni el evaluador del servidor: son secreto industrial y viven solo en el servidor. Aquí está lo que va del lado del cliente, que es seguro publicar.
Tres vías de consumo (misma fuente de verdad)
| Vía | Para quién | Cómo |
|---|---|---|
| SDK Python | Ingenieros (integración en backend) | pip install . |
| MCP Python | Devs que operan desde Claude Desktop | pip install '.[mcp]' |
MCP .mcpb (un clic) |
No-devs / clientes | doble clic al bundle, sin instalar nada |
Contenido
synthelium_sdk/ SDK Python (HTTP puro), publicado en PyPI
adapters/
contracts/ Interfaz Única — EnginePort (Protocol) + tipos + HttpEngine
mcp_server/ Servidor MCP en Python (usa el SDK por dentro)
tests/ Contrato + construcción del servidor con motor inyectado
mcp_ts/ Servidor MCP en TypeScript → bundle .mcpb de UN CLIC
La arquitectura completa (por qué el SSOT es el Core API y no un objeto en
proceso, el diagrama de inyección de dependencias, etc.) está en
adapters/README.md. Pasos de instalación en
INSTALL.md.
SDK nativo en 2 líneas
from synthelium_sdk import SyntheliumClient, Agent
client = SyntheliumClient(api_key="sk-synthelium-...")
report = client.run_evaluation(Agent(mi_llm), sector="banking")
MCP — dos formas
Un clic (no-devs) → bundle .mcpb: doble clic en Claude Desktop, pega la API
key en el formulario, listo. No requiere Python ni Node. Ver
mcp_ts/README.md.
cd mcp_ts && npm install && npm run pack # genera aletheox.mcpb (lo hacemos nosotros)
Desde código (devs) → servidor Python en un venv aparte:
python -m venv .venv-mcp && . .venv-mcp/Scripts/activate
pip install '.[mcp]'
ALETHEOX_API_KEY=sk-synthelium-... python -m adapters.mcp_server.server
# o, tras instalar: aletheox-mcp
⚠️ El SDK de MCP en Python arrastra un
starlettenuevo que puede chocar confastapien entornos que lo tengan; por eso va en su propio venv. La vía.mcpbno tiene ese problema (Node embebido, dependencias empaquetadas). Detalle enadapters/mcp_server/README.md.
Cuando hace falta una decisión humana
Si el veredicto trae requires_human: true, no ejecutes la acción y conserva el
cert_id: identifica esa decisión concreta, no la acción en general.
Cuando una persona la autorice, vuelve a evaluar la misma acción:
v = cli.gate("ses-1", "aplicar_descuento", process_id=pid, payload=datos)
if v["requires_human"]:
guardar(v["cert_id"]) # detente aquí; no ejecutes
... # una persona decide en Aletheox
v = cli.gate("ses-1", "aplicar_descuento", process_id=pid,
payload=datos, # el MISMO payload
cert_id=guardado) # la autorización que te dieron
if v["proceed"]:
hacer_el_trabajo() # ejecutar sigue siendo tuyo
Cuatro cosas que conviene tener claras:
- Sirve una sola vez. Una autorización consumida no vale para un segundo intento.
- Mismo payload. Mismos campos y mismos valores; el orden de las claves del JSON da igual, el contenido no. Conserva el original en vez de reconstruirlo.
- Si cambian los datos, es otra decisión. Vuelve sin
cert_idy se evaluará de cero. proceed: trueno dice que ocurriera. Dice que Aletheox te deja continuar. Aletheox no reanuda ni ejecuta nada por su cuenta: el efecto es tuyo.
Si la persona no autoriza, la acción no se ejecuta. Volver a intentar lo mismo no es un reintento automático: sería pedir otra decisión.
Tests
# Python (contrato + server MCP con motor inyectado)
pip install pytest && pip install '.[mcp]'
pytest adapters/tests -q
# TypeScript (cliente MCP <-> server con motor falso, sin red)
cd mcp_ts && npm install && npm test
Licencia
Propietario — Todos los derechos reservados. Aletheox.
Metadata
Release files for synthelium-sdk 2.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| synthelium_sdk-2.4.0.tar.gz | 36.0 kB | Without provenance | Details for synthelium_sdk-2.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| synthelium_sdk-2.4.0-py3-none-any.whl | Python 3 | none | any | Details for synthelium_sdk-2.4.0-py3-none-any.whl |
Total release size: 75.5 kB
Release files / synthelium_sdk-2.4.0.tar.gz
| Download URL | synthelium_sdk-2.4.0.tar.gz |
|---|---|
| Size | 36.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7837f34398d79ee3e9ebd149a4418952b4c8f33e1051a335717e70a8bfff2ba3
|
|
BLAKE2b-256 checksum How to use checksums |
a664632d938e832e0cf01f035d458e968c001dd99644f75f0384a869c3c00837
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.0
|
Release files / synthelium_sdk-2.4.0-py3-none-any.whl
| Download URL | synthelium_sdk-2.4.0-py3-none-any.whl |
|---|---|
| Size | 39.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9c540b6aa81dd9966b2124b34f49c6ffd842ad46b8e9a61556f5876e4dfb8123
|
|
BLAKE2b-256 checksum How to use checksums |
5c600e7b0a8e811a8404bbbb2429c0753cac0e9df7aab46ebad3fefa4ae672f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.0
|
Security for synthelium-sdk 2.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.