Expediente público de interfaces

Hechos financieros citados, estructurados para agentes de IA.

CLI + Skill y MCP son las interfaces principales para agentes; REST proporciona transporte HTTPS y por lotes. Cada respuesta incluye metadatos de estado y gobernanza; los hechos devueltos están vinculados a evidencia de origen y semántica temporal.

Las llamadas principales de los agentes usan CLI + Skill o MCP; REST proporciona transporte HTTPS y por lotes.

La detección precede a la ejecución. Toda llamada, aceptada o rechazada, sigue siendo estructurada, limitada y auditable.
ARGUS / SYSTEM MAPUna ruta gobernada de principio a fin

Elija la interfaz adecuada para su AI agent

Las tres rutas de acceso entran en la misma CoreServiceBoundary. Las reglas de Tenant, permisos, licencias, evidencias, procedencia y auditoría no cambian según el cliente.

01CLIOAuth · browser sign-in · JSON stdout
argus auth login
argus --base-url https://api.argusfa.com entity-resolve \
  --identifier-type lei \
  --identifier-value HWUPKR0MPOU8FGXBT394

Documentación técnica: CLI

02RESTOAuth Bearer · HTTPS · JSON · OpenAPI
# First run: argus auth login
import json
from urllib.request import Request, HTTPRedirectHandler, build_opener
from argus.cli.oauth import CliOAuthProfile

profile = CliOAuthProfile()
token = profile.client().access_token()
if token is None:
    raise RuntimeError("Run argus auth login first")

class NoRedirect(HTTPRedirectHandler):
    def redirect_request(self, *args, **kwargs):
        return None

request = Request(
    profile.api_base_url + "/v1/entity-resolve",
    data=json.dumps(json.loads(r'''{"identifier_type":"lei","identifier_value":"HWUPKR0MPOU8FGXBT394","purpose":"factual_lookup","requires_redistribution":false}''')).encode(),
    headers={"Authorization": f"Bearer {token}",
             "Content-Type": "application/json", "User-Agent": "Argus REST client"},
    method="POST",
)
with build_opener(NoRedirect()).open(request, timeout=30) as response:
    envelope = json.load(response)
    print(json.dumps(envelope, indent=2))

Documentación técnica: REST

03MCPPython 3.12+ · Argus 1.1.8+ · MCP SDK · Registro primero
# Instalar una sola vez: use the official Argus installer.
# argus auth login --interface mcp
import asyncio
import json
from datetime import timedelta

from argus.cli.oauth import CliOAuthProfile
from mcp import ClientSession
from mcp.client.streamable_http import streamable_http_client
from mcp.shared._httpx_utils import create_mcp_http_client


def decode_tool_result(response):
    if response.isError:
        raise RuntimeError(response.content)
    if response.structuredContent is not None:
        return response.structuredContent
    text = next(block.text for block in response.content if block.type == "text")
    return json.loads(text)


async def main() -> None:
    tool_name = "entity_resolve"
    arguments = json.loads(r'''{"identifier_type":"lei","identifier_value":"HWUPKR0MPOU8FGXBT394","purpose":"factual_lookup","requires_redistribution":false}''')
    profile = CliOAuthProfile.from_environment().for_interface("mcp")
    token = profile.client().access_token()
    if token is None:
        raise RuntimeError("Run argus auth login --interface mcp first")

    async with (
        create_mcp_http_client(headers={"Authorization": f"Bearer {token}"}) as http,
        streamable_http_client(profile.audience, http_client=http) as (read, write, _),
    ):
        async with ClientSession(
            read,
            write,
            read_timeout_seconds=timedelta(seconds=30),
        ) as session:
            await session.initialize()
            listed_tools = {tool.name for tool in (await session.list_tools()).tools}
            registry = decode_tool_result(
                await session.call_tool("agent_tool_registry")
            )
            registry_tools = {tool["tool_name"] for tool in registry["tools"]}
            if tool_name not in listed_tools or tool_name not in registry_tools:
                raise RuntimeError(f"La herramienta no está disponible en el registro actual: {tool_name}")

            response = await session.call_tool(
                tool_name,
                arguments=arguments,
            )
            payload = decode_tool_result(response)
            if payload.get("success") is not True:
                error = payload.get("error")
                audit_id = payload.get("audit_id")
                if audit_id is None and isinstance(error, dict):
                    audit_id = error.get("audit_id")
                raise RuntimeError(f"La solicitud de Argus falló (audit_id={audit_id}): {error}")
            print(json.dumps(payload, indent=2, ensure_ascii=False))


asyncio.run(main())

Documentación técnica: MCP

Una ruta gobernada de principio a fin

La detección precede a la ejecución. Toda llamada, aceptada o rechazada, sigue siendo estructurada, limitada y auditable.

  1. 01identityOAuth subject · scopes · purpose · as_of
  2. 02registryagent_tool_registry · scopes · allowed_purposes
  3. 03boundarytenant · permission · license · provenance · audit
  4. 04DataPackagefacts · source_evidence · known_time · quality · audit_id

Solicitudes de referencia reutilizables

Inicia sesión con OAuth antes de llamar a una herramienta. Estas solicitudes utilizan una entidad jurídica real de GLEIF; comprueba la cobertura y las pruebas devueltas antes de usar el resultado. Guarda las credenciales de las máquinas desatendidas en tu entorno de secretos.

  1. Conecte un AI agent con OAuth interactivo; para automatización desatendida use un machine client o service account.
  2. Lea primero el registro y elija una herramienta cuyos ámbitos y finalidad coincidan con la identidad.
  3. Use CLI + Skill o MCP como interfaces principales para agentes; use REST para transporte HTTPS y por lotes.
  4. Llame a la herramienta con una hora as_of explícita.
  5. Valide evidencia, calidad, licencia, restricciones y audit_id antes de usar los hechos.

Valide el paquete, no solo el código de estado

Un transporte correcto no prueba que un hecho sea utilizable. Revise la envoltura gobernada y el DataPackage antes de automatizar.

Aquí solo se muestra la sintaxis de la solicitud. Usa identificadores reales, pruebas devueltas por llamadas anteriores y un intervalo de tiempo cuya cobertura esté confirmada. Este ejemplo no demuestra un resultado empresarial de producción completado.

DataPackage · company_fact_snapshot

{
  "success": true,
  "tool_name": "company_fact_snapshot",
  "output_format": "json",
  "audit_id": "audit_01JYEXAMPLE0000000000000000",
  "data_package_version": "company-fact-snapshot-cli-v1",
  "source_evidence": [
    {
      "evidence_id": "evidence:filing:1",
      "source_type": "regulatory_filing",
      "source_file_id": "filing:example-inc:2025-10k",
      "document_url": "https://regulator.example.test/filings/example-inc-2025-10k",
      "fragment_position": "char:1024-1080",
      "page_number": 42,
      "paragraph_position": null,
      "field_path": "filing.financials.revenue",
      "filing_time": "2026-06-15T09:00:00Z",
      "retrieved_at": "2026-06-16T09:30:00Z",
      "parser_version": "filing-parser-v1",
      "evidence_confidence": 0.99,
      "credibility_level": "regulatory_original",
      "pointer_type": "source_fragment",
      "content_trust": "untrusted_source_text",
      "mime_type": "text/plain",
      "source_object_sha256": null,
      "excerpt_boundary": "external_source_data",
      "is_conflicting": false,
      "conflict_group_id": null
    }
  ],
  "permission_result": {
    "allowed": true,
    "checked_at": "2026-06-16T10:00:00Z",
    "missing_permissions": [],
    "reason": "permission_allowed",
    "safe_alternative_tools": [
      "company_fact_snapshot",
      "filing_search",
      "source_evidence_lookup"
    ]
  },
  "license_status": "authorized",
  "output_restrictions": [
    "machine_readable_json",
    "cite_source_evidence"
  ],
  "result": {
    "package_type": "company_fact_snapshot",
    "package_version": "company-fact-snapshot-cli-v1",
    "generated_at": "2026-06-16T10:00:00Z",
    "request_subject": "company:example-inc",
    "caller_id": "service:customer-agent",
    "institution_id": "institution:customer",
    "request_purpose": "factual_lookup",
    "facts": [
      {
        "fact_id": "fact:revenue",
        "fact_type": "financial_metric",
        "field_name": "revenue",
        "value": 125000000,
        "evidence_ids": [
          "evidence:filing:1"
        ],
        "credibility_level": "regulatory_original",
        "extraction_method": "structured_source",
        "confidence": 0.99,
        "review_status": null
      }
    ],
    "sections": [],
    "source_evidence": [
      {
        "evidence_id": "evidence:filing:1",
        "source_type": "regulatory_filing",
        "source_file_id": "filing:example-inc:2025-10k",
        "document_url": "https://regulator.example.test/filings/example-inc-2025-10k",
        "fragment_position": "char:1024-1080",
        "page_number": 42,
        "paragraph_position": null,
        "field_path": "filing.financials.revenue",
        "filing_time": "2026-06-15T09:00:00Z",
        "retrieved_at": "2026-06-16T09:30:00Z",
        "parser_version": "filing-parser-v1",
        "evidence_confidence": 0.99,
        "credibility_level": "regulatory_original",
        "pointer_type": "source_fragment",
        "content_trust": "untrusted_source_text",
        "mime_type": "text/plain",
        "source_object_sha256": null,
        "excerpt_boundary": "external_source_data",
        "is_conflicting": false,
        "conflict_group_id": null
      }
    ],
    "data_period": {
      "start": "2025-01-01T00:00:00Z",
      "end": "2025-12-31T23:59:59Z"
    },
    "filing_time": "2026-06-15T09:00:00Z",
    "known_time": "2026-06-16T09:30:00Z",
    "revision_time": null,
    "invocation_time": "2026-06-16T10:00:00Z",
    "data_quality": {
      "quality_level": "high",
      "issues": [],
      "requires_human_review": false
    },
    "credibility_level": "regulatory_original",
    "data_license": {
      "license_id": "public-disclosure-v1",
      "source": "regulatory_filing",
      "status": "authorized",
      "allowed_uses": [
        "factual_lookup",
        "audit_reproduction"
      ],
      "prohibited_uses": [
        "restricted_redistribution"
      ],
      "redistribution": "restricted",
      "authorized_institutions": [
        "institution:customer"
      ],
      "restricted_fields": []
    },
    "allowed_uses": [
      "factual_lookup",
      "audit_reproduction"
    ],
    "prohibited_uses": [
      "restricted_redistribution"
    ],
    "output_restrictions": [
      "machine_readable_json",
      "cite_source_evidence"
    ],
    "structured_output_flags": {},
    "audit_id": "audit_01JYEXAMPLE0000000000000000",
    "output_policy_version": "[email protected]"
  }
}

Herramientas

El registro público de herramientas define actualmente 53 herramientas gobernadas. Estos registros se generan con los mismos datos autoritativos del directorio de herramientas.

  1. 01

    company_fact_snapshot

    Snapshot de Hechos de Empresa

    Devuelve hechos de empresa divulgados como un DataPackage estructurado.

    REST
    /v1/company-fact-snapshot
    MCP
    company_fact_snapshot
    Contrato de retorno
    CliToolEnvelope JSON with nested DataPackage result
  2. 02

    point_in_time_snapshot

    Snapshot Puntual

    Devuelve un snapshot de empresa as-of-safe.

    REST
    /v1/point-in-time-snapshot
    MCP
    point_in_time_snapshot
    Contrato de retorno
    CliToolEnvelope JSON with nested DataPackage result
  3. 03

    evidence_gap_report

    Reporte de Brechas de Evidencia

    Devuelve clasificaciones de evidenciado, faltante, baja calidad, en conflicto y bloqueado por licencia.

    REST
    /v1/evidence-gap-report
    MCP
    evidence_gap_report
    Contrato de retorno
    CliToolEnvelope JSON with nested DataPackage result
  4. 04

    agent_data_preflight

    Preflight de Datos de Agente

    Devuelve metadatos de preflight de permiso, licencia, campos, rango de tiempo y herramienta objetivo.

    REST
    /v1/agent-data-preflight
    MCP
    agent_data_preflight
    Contrato de retorno
    CliToolEnvelope JSON with nested agent_data_preflight_result DataPackage

Confianza

Argus ofrece infraestructura factual con límites visibles. Rechazos, restricciones, actualidad, licencia y revisión humana permanecen en el resultado.

[POLICY]Argus no genera decisiones de inversión ni órdenes, pero no limita el análisis y la salida independientes del agente cliente con datos obtenidos legalmente.

Confianza

Continúe con una guía autoritativa

Empiece por la guía de primera solicitud, consulte todas las herramientas o abra la documentación de la interfaz de su AI agent.