공개 인터페이스 기록

AI Agent를 위해 구조화된, 출처가 명확한 금융 사실.

CLI + Skill과 MCP는 주요 Agent 인터페이스이며 REST는 HTTPS와 배치 전송을 제공합니다. 모든 응답에는 상태 및 거버넌스 메타데이터가 포함되며, 반환되는 사실에는 출처 증거와 시간 의미가 연결됩니다.

주요 Agent 호출에는 CLI + Skill 또는 MCP를 사용하고 REST는 HTTPS 및 배치 전송을 제공합니다.

실행 전에 탐색합니다. 성공과 거부 모두 구조화되고 경계가 명확하며 감사할 수 있습니다.
ARGUS / SYSTEM MAP처음부터 끝까지 하나의 관리 경로

AI agent에 맞는 인터페이스 선택

세 가지 액세스 경로는 모두 동일한 CoreServiceBoundary로 진입합니다. Tenant, 권한, 라이선스, 증거, 프로비넌스 및 감사 규칙은 클라이언트에 따라 변경되지 않습니다.

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

기술 문서: 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))

기술 문서: REST

03MCPPython 3.12+ · Argus 1.1.8+ · MCP SDK · 레지스트리 우선
# 한 번만 설치: 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"현재 도구 레지스트리에서 이 도구를 사용할 수 없습니다: {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"Argus 요청 실패 (audit_id={audit_id}): {error}")
            print(json.dumps(payload, indent=2, ensure_ascii=False))


asyncio.run(main())

기술 문서: MCP

처음부터 끝까지 하나의 관리 경로

실행 전에 탐색합니다. 성공과 거부 모두 구조화되고 경계가 명확하며 감사할 수 있습니다.

  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

재사용 가능한 요청 예시

도구를 호출하기 전에 OAuth로 로그인하세요. 이 요청은 실제 GLEIF 법인을 사용합니다. 결과를 사용하기 전에 반환된 적용 범위와 증거를 확인하세요. 무인 실행에 사용하는 머신 자격 증명은 비밀 정보 전용 환경에 보관하세요.

  1. 대화형 OAuth로 AI agent를 연결하고 무인 자동화에는 machine client 또는 service account를 사용합니다.
  2. 먼저 도구 레지스트리를 읽고 범위와 목적이 ID에 맞는 도구를 선택합니다.
  3. CLI + Skill과 MCP를 주요 Agent 인터페이스로 사용하고 REST는 HTTPS 및 배치 전송에 사용하세요.
  4. 명시적인 as_of 시각으로 호출합니다.
  5. 사용 전에 증거, 품질, 라이선스, 제한 및 audit_id를 검증합니다.

상태 코드만이 아니라 패키지를 검증

전송 성공만으로 사실을 사용할 수 있는 것은 아닙니다. 자동화 전에 관리 응답 봉투와 내부 DataPackage를 검사합니다.

요청 구문만 보여 주는 예시입니다. 실제 식별자와 이전 호출에서 반환된 증거, 적용 범위가 확인된 시간 범위를 사용하세요. 이 예시는 프로덕션 비즈니스 결과가 완료되었음을 보여 주지 않습니다.

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]"
  }
}

도구

공개 도구 레지스트리는 현재 53개의 관리 도구를 정의합니다. 아래 기록은 도구 디렉터리와 동일한 권위 데이터에서 생성됩니다.

  1. 01

    company_fact_snapshot

    회사 팩트 스냅샷

    공시된 회사 팩트를 구조화된 DataPackage로 반환합니다.

    REST
    /v1/company-fact-snapshot
    MCP
    company_fact_snapshot
    반환 계약
    CliToolEnvelope JSON with nested DataPackage result
  2. 02

    point_in_time_snapshot

    특정 시점 스냅샷

    as-of-safe 회사 스냅샷을 반환합니다.

    REST
    /v1/point-in-time-snapshot
    MCP
    point_in_time_snapshot
    반환 계약
    CliToolEnvelope JSON with nested DataPackage result
  3. 03

    evidence_gap_report

    증거 격차 보고서

    증거 있음, 누락, 저품질, 충돌, 라이선스 차단 분류를 반환합니다.

    REST
    /v1/evidence-gap-report
    MCP
    evidence_gap_report
    반환 계약
    CliToolEnvelope JSON with nested DataPackage result
  4. 04

    agent_data_preflight

    에이전트 데이터 사전 점검

    권한, 라이선스, 필드, 시간 범위, 대상 도구 사전 점검 메타데이터를 반환합니다.

    REST
    /v1/agent-data-preflight
    MCP
    agent_data_preflight
    반환 계약
    CliToolEnvelope JSON with nested agent_data_preflight_result DataPackage

신뢰

Argus는 한계가 보이는 사실 인프라입니다. 거부, 제한, 최신성, 라이선스 상태 및 사람 검토 요구 사항이 결과에 유지됩니다.

[POLICY]Argus 자체는 투자 판단이나 주문을 생성하지 않지만, 클라이언트 Agent가 합법적으로 얻은 데이터로 독립적으로 추론하고 출력하는 것을 제한하지 않습니다.

신뢰

권위 있는 연결 안내서로 계속

첫 요청 가이드에서 시작하거나 모든 도구를 확인하고 AI agent가 사용하는 인터페이스 문서로 이동합니다.