mcpField
C
cafci

cafci

github.com/gauss314データ・データベース252268 回インストール19 週間前に更新
リポジトリ

cafci について

cafciは、CAFCIの4つの公開データソースからアルゼンチンの投資信託情報を取得するコマンドラインスキルです。ファンド一覧、日次データ、リターン、ポートフォリオ構成をまとめ、日次キャッシュを使った検索にも対応します。

主な機能

  1. 01ファンドとクラスの一覧取得
  2. 02日次価格と資産データの取得
  3. 03期間別リターンと保有銘柄の確認
  4. 04ファンドのローカル検索とID解決
  5. 05一覧と日次データの日次キャッシュ

活用シーン

  1. 01カテゴリー別の資産規模の比較
  2. 02ファンドの手数料とメタデータの確認
  3. 03ファンドのリターンと保有資産の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gauss314/skills --skill cafci

インストール後、Claude Code で/cafciを入力して読み込まれたか確認します。

同梱ファイルreferences/REFERENCE.mdscripts/fetch_cafci.py

詳細

CAFCI — アルゼンチンの投資信託

CAFCI(アルゼンチン投資信託協会)の公式4ソースを通じて、アルゼンチンの投資信託に関する公開情報を取得するスキルです。

2026-06時点で有効な1152のファンドと4615のクラスを対象としています。マネーマーケット、債券、株式、バランス型、PyMes、トータルリターン、インフラ、クローズドエンド型ファンド、ASG、RG900に対応しています。


⚠️ 法的通知

  • 公式ドキュメントのない公開 API です。エンドポイントは予告なく変更されることがあります(2026-04に廃止された以前の REST API のように)。
  • CAFCI の利用規約を遵守してください。
  • データは遅延データです(営業日の終値、ART 18時ごろ)。
  • 商用で大量に利用する場合は、公式フィードについて CAFCI にお問い合わせください。
  • 過去の運用実績は将来の運用実績を保証するものではありません。

📌 重要:以前の REST API は廃止されました

REST API の api.pub.cafci.org.ar/tipo-renta、/fondo/{id}、 /estadisticas/... は2026-04に廃止されました(HTTP 403 "Route not allowed")。このホストで現在も有効なパスは /pb_get のみです。

このスキルでは、廃止された API に代わる4つのソースを使用します。

  1. /consulta-de-fondos.json(完全なカタログ)
  2. /pb_get(日次 XLSX)
  3. defuddle.md/.../fondos/{F}?clase={C}(Markdown ファンド情報)
  4. .../fondos/{F}?clase={C}(ポートフォリオ構成用 HTML)

スクリプト

スクリプト説明
fetch_cafci.pyメインスクリプト:すべてのエンドポイントと照会関数

必要なもの: pip install openpyxl(日次 XLSX の解析用)。


クイックスタート

# ── DATASETS ENTEROS (con cache local diario) ──────────────────────────

# Catalogo completo: 1152 fondos, 4615 clases con IDs, honorarios, metadata
py scripts/fetch_cafci.py catalogo
py scripts/fetch_cafci.py catalogo -o catalogo.json    # guarda 2.7MB
py scripts/fetch_cafci.py catalogo --no-cache          # fuerza refetch

# Snapshot diario: VCP, patrimonio, variaciones (dia/mes/YTD/12m)
py scripts/fetch_cafci.py diario
py scripts/fetch_cafci.py diario -o diario.json
py scripts/fetch_cafci.py diario --no-cache

# ── CONSULTAS SOBRE EL CACHE ───────────────────────────────────────────

# Buscar fondo por nombre (parcial, case-insensitive)
py scripts/fetch_cafci.py buscar "ahorro"
py scripts/fetch_cafci.py buscar "delta"
py scripts/fetch_cafci.py buscar "renta fija"

# Resolver IDs (mas compacto: solo fondo_id, clase_id, nombres)
py scripts/fetch_cafci.py resolve "ieb estrategico"
py scripts/fetch_cafci.py resolve "1810"

# Top N por patrimonio en una categoria del diario
py scripts/fetch_cafci.py top "Mercado de Dinero Peso Argentina"
py scripts/fetch_cafci.py top "Mercado de Dinero Peso Argentina" --limit 20
py scripts/fetch_cafci.py top "Renta Variable Peso Argentina"
py scripts/fetch_cafci.py top "Renta Fija Peso Argentina" --limit 5

# ── FICHAS INDIVIDUALES ────────────────────────────────────────────────

# Ficha markdown (rendimientos TNA: 7d/1m/90d/180d/YTD/12m + datos del fondo)
py scripts/fetch_cafci.py ficha 304 308              # 1810 Ahorro
py scripts/fetch_cafci.py ficha 1717 5772            # otro fondo
py scripts/fetch_cafci.py ficha 304 308 -o ficha.md  # guarda markdown

# Composicion de cartera (top activos + porcentaje)
py scripts/fetch_cafci.py cartera 304 308
py scripts/fetch_cafci.py cartera 1717 5772

# Ficha COMPLETA todo-en-uno (combina catalogo + diario + ficha + cartera)
py scripts/fetch_cafci.py fondo 304 308
py scripts/fetch_cafci.py fondo 304 308 -o 1810_ahorro_completo.json

# ── COMBINADO ──────────────────────────────────────────────────────────

# Catalogo + diario juntos (sin fichas individuales)
py scripts/fetch_cafci.py all -o cafci_snapshot.json

# ── OUTPUT ─────────────────────────────────────────────────────────────

# Modo silencioso (solo JSON/markdown, sin logs)
py scripts/fetch_cafci.py top "Mercado de Dinero Peso Argentina" -q

利用可能なエンドポイント

モードデータURL
catalogoカタログ:1152のファンド、4615のクラス、ID、手数料、メタデータGET /consulta-de-fondos.json
diario日次スナップショット:VCP、純資産、マーケットシェア、変動GET /pb_get (XLSX)
ficha FONDO CLASEMarkdown ファンド情報:期間別 TNA リターンGET defuddle.md/.../fondos/{F}?clase={C}
cartera FONDO CLASEポートフォリオ構成(上位資産と割合)GET .../fondos/{F}?clase={C} (HTML)
buscar QUERY部分一致する名前でファンドを検索(ローカル、カタログを対象)
resolve QUERY名前から fondoId/claseId を特定(ローカル、カタログを対象)
top CATEGORIAカテゴリ別の純資産上位 N 件(ローカル、日次データを対象)
fondo FONDO CLASE全項目をまとめたファンド情報(4つのエンドポイントを組み合わせ)(ローカル + 4 リクエスト)
allカタログと日次データのスナップショット(ローカル + 2 リクエスト)

合計:HTTP エンドポイント4つ + キャッシュを利用する照会関数5つ。


ローカルキャッシュ

カタログと日次データの大きなデータセットは、システムの一時ディレクトリに1日1回キャッシュされます。

$TMP/cafci-catalog-YYYY-MM-DD.json    (~2.7 MB)
$TMP/cafci-daily-YYYY-MM-DD.json      (~1-2 MB)
  • Windows:C:\Users\<user>\AppData\Local\Temp\
  • Linux/Mac:/tmp/

1日に複数回照会する場合(一般的なワークフロー)、キャッシュは自動的に再利用されます。--no-cache を指定すると、再取得を強制できます。


対応する収益タイプ

タイプファンド数
債券542
バランス型271
マネーマーケット96
株式76
PyMes65
トータルリターン42
インフラ23
クローズドエンド型ファンド22
ASG10
RG9005

日次データのカテゴリ(top 用)

日次データのカテゴリは、tipo_renta + moneda + region を文字列として組み合わせたものです。よくある例:

カテゴリ対象
Renta Variable Peso Argentinaアルゼンチン株式
Mercado de Dinero Peso Argentinaペソ建てマネーマーケット
Renta Fija Peso Argentinaペソ建て債券
Renta Fija Dolar Estadounidense Argentinaアルゼンチンの米ドル建て債券
Renta Mixta Peso Argentinaペソ建てバランス型ファンド
Retorno Total Peso Argentinaペソ建てトータルリターン

全リストを表示するには:py scripts/fetch_cafci.py diario -q | jq '.categorias'


技術上の考慮事項

catalogo が返すデータ

トップレベル:

フィールド説明
generated_atカタログの ISO タイムスタンプ。
total_fondos, total_clases件数。
filtrosenum のカタログ:tipo_renta、region、moneda、benchmark、duration、horizonte、sociedad_gerente、tipo_dinero、tipo_renta_mixta。
fondos[]ファンドの配列。

各 fondos[] には、id、nombre、codigo_cnv、estado、objetivo、tipo_dinero、 valuacion、dias_liquidacion、inicio、sociedad_gerente、sociedad_depositaria、 moneda、tipo_renta、region、duration、benchmark、horizonte、clases[] が含まれます。

各 clases[] には、id、nombre、moneda、inversion_minima、honorarios (ingreso、rescate、transferencia、administracion_gerente、administracion_depositaria、 gasto_ordinario_gestion)、suscripcion、liquidez、rg384、log_abierto、 ticker_bloomberg、ticker_isin が含まれます。

⚠️ honorarios.* は 文字列 です(浮動小数点数ではありません)。比較する前に float() でキャストしてください。

diario が返すデータ
{
  "fecha_reporte": "2026-06-04",
  "categorias": ["Renta Variable Peso Argentina", ...],
  "fondos": [
    {
      "nombre": "Allaria Equity Selection - Clase A",
      "categoria": "Renta Variable Peso Argentina",
      "moneda": "ARS",
      "region": "Arg",
      "horizonte": "Cor",
      "fecha": "2026-06-04",
      "vcp_actual": 1642.85,
      "vcp_anterior": 1628.345,
      "variacion_dia_pct": 0.891,
      "vcp_reexp_pesos": 1642.85,
      "variacion_mes_pct": -1.181,
      "variacion_ytd_pct": 11.939,
      "variacion_12m_pct": 61.542,
      "cantidad_cuotapartes": 1276470413.29,
      "patrimonio": 2097049572.01,
      "market_share": 0.107,
      "depositaria": "Banco Comafi S.A.",
      "codigo_cnv": "1603"
    }
  ]
}
cartera が返すデータ
{
  "fondo_id": 304,
  "clase_id": 308,
  "fecha_cartera": "15/05/2026",
  "composicion": [
    {"nombre": "Cta Cte $ Rem Bco Credico", "porcentaje": 17.4},
    {"nombre": "Pzo Fi $ Bco Nacion", "porcentaje": 14.8},
    ...
    {"nombre": "Resto de Activos", "porcentaje": 29.2}
  ]
}

CAFCI が公開するのは 上位約14件の資産 と、まとめられた「Resto de Activos」のみです。 cartera の日付は diario より約2~3週間遅れます。

fondo が返すデータ(一括)
{
  "meta": { ...del catalogo... },
  "diario": { ...del XLSX... },
  "ficha_md": "...markdown defuddle...",
  "cartera": { ...composicion... }
}
推奨ワークフロー

A)手数料を含む純資産額の上位 N 件:

  1. top "<categoria>" --limit N → ファンドの一覧
  2. 各 nombre に対して resolve を実行し、fondo_id, clase_id を取得
  3. catalogo で clases[].nombre が完全一致する項目の手数料を確認

B)ファンドの完全な情報:

  1. resolve "<query>" → ID を取得
  2. fondo FONDO_ID CLASE_ID → 一括取得

C)ユーザーがクラスを指定していない場合:

  • buscar または resolve を使い、利用可能なクラスを表示します
  • クラスが1つだけの場合は、そのクラスで自動的に続行します
フラグ
フラグ説明
--limit N結果数(top)。デフォルト:10
--no-cacheカタログ/diario を強制的に再取得します(ローカルキャッシュを無視)
-o archivo出力を JSON または Markdown ファイルに保存します
-q / --quietサイレントモード(ログなしで JSON/Markdown のみを出力)
レート制限

レート制限は文書化されていません。次を推奨します:

  • CAFCI へのリクエスト間隔を最低0.3秒空けてください。
  • defuddle.md(外部プロキシ)では、タイムアウトが発生した場合はさらに長く待ってください。
  • 大量のバッチ処理では、最大5の同時実行数でプールを使用してください。
エラー処理
ステータス主な原因
200OK
403 Route not allowed以前の REST API で廃止されたパス
403(/pb_get)ブラウザーのヘッダー(Origin、Referer)が不足しています — スクリプトはすでにこれらを送信します
404URL の形式が正しくない、または ID が存在しません
defuddle.md のタイムアウト外部プロキシの応答が遅い — 再試行してください
エンコーディング

有効な UTF-8 です。Windows のコンソールではアクセント記号が ? と表示されますが、UTF-8 ファイルは正しく保存されます(スクリプトでは ensure_ascii=False を使用します)。


スキルの構成

skills/cafci/
├── SKILL.md                          # Este archivo (guia rapida)
├── references/
│   └── REFERENCE.md                  # Documentacion completa de los 4 endpoints + cache
└── scripts/
    └── fetch_cafci.py                # Script principal

詳細なドキュメント: 完全な JSON スキーマ、網羅的なフィールド表、 tipo_renta/region/horizonte/moneda のコード、ローカルキャッシュ、エラー処理、技術的な考慮事項については references/REFERENCE.md を参照してください。

着想元: ferminrp/agent-skills/cafci-fondos-comunes-argentina — この実装は、同じ4つのデータソースの設計を、このリポジトリの SKILL.md / references/REFERENCE.md / scripts/fetch_*.py アーキテクチャに移植しています。

コメント