Diario Oficial de la Federación (unofficial) について
dof-mcp は、公開 SIDOF JSON API を利用するメキシコの Diario Oficial de la Federación 向け読み取り専用 MCP サーバー兼 TypeScript クライアントです。開発者やエージェントに、正規化された公報と金融指標を出典情報付きで提供します。
主な機能
- 01日次公報サマリー
- 02ページ指定付き公報本文の取得
- 03FIX・UDI・TIIE 指標
- 04API 応答の検証と正規化
- 05出典 URL・取得日時・ハッシュ
- 06stdio と Streamable HTTP の通信方式
活用シーン
- 01特定日の官報掲載内容を確認
- 02特定の告示本文を取得
- 03日付を指定して金融指標を確認
- 04公式出典と照合してデータを検証
MCP 対応
日次サマリー、公報詳細、金融指標の読み取り専用ツールを3つ提供します。stdio と Streamable HTTP に対応し、結果に公式 URL と SIDOF の出典情報を含めます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| date | string | いいえ | 集計する日付(YYYY-MM-DD)。デフォルトは今日です。 |
| limit | integer | いいえ | 一覧表示する注記の最大数。件数は常にその日の全体を対象とします |
| edition | enum | いいえ | この版のみを含めますmatutina | vespertina | extraordinaria |
| organization | string | いいえ | 機関名にこのテキストを含む注記のみを含めます(大文字と小文字を区別しません) |
詳細
dof-mcp
メキシコのDiario Oficial de la Federación(DOF)向けのMCP サーバーおよび型付きTypeScriptクライアントです。公開SIDOF JSON APIを基盤としており、AI エージェント(Claude Code、Claude Desktop、Cursorなど)が官報の公示や金融指標を読み取れます。
理由
DOFは、連邦法、政令、税法および関税規則、公式指標が公示される場所です。そのJSON APIは公開されていますが、公式ドキュメントはごくわずかしかなく(https://sidof.segob.gob.mx/datos_abiertos)、npmには型付きクライアントもMCP サーバーもありません。このプロジェクトは、検証、データの来歴、安定した正規化形式を加えてAPIをラップします。
MCP サーバー
読み取り専用のツールが3つあります。
| ツール | 返される内容 |
|---|---|
dof_daily_summary | 1日分の公示と、版および組織ごとの件数。版または組織で絞り込めます |
dof_get_note | 1件の公示をプレーンテキストで返します。長い公示はoffset / maxCharsでページ分割できます |
dof_get_indicators | ある日のFIX為替レート、UDI、TIIEレート、または1つの指標の日次系列 |
すべての結果に次の情報が含まれます。
officialUrl:dof.gob.mx上の公示へのURL。公式テキストを確認できますprovenance:データの取得元であるSIDOF URL、取得時刻(UTC)、生レスポンスのSHA-256
インストール
Node.js 22以降が必要です。サーバーはstdio経由で動作します。MCPクライアントに追加してください。
{
"mcpServers": {
"dof": { "command": "npx", "args": ["-y", "dof-mcp"] }
}
}
- Claude Desktop: Settings → Developer → Edit Configを選択すると、
claude_desktop_config.jsonが開きます(Windowsでは%APPDATA%\Claude\、macOSでは~/Library/Application Support/Claude/)。 - Cursor: プロジェクト内の
.cursor/mcp.json、またはすべてのプロジェクトに適用する場合は~/.cursor/mcp.jsonを使用します。 - Claude Code:
claude mcp add dof -- npx -y dof-mcp - Windows: クライアントから
npxを直接起動できない場合は、"command": "cmd", "args": ["/c", "npx", "-y", "dof-mcp"]を使用してください。
ホスト型エンドポイント(インストール不要)
公開インスタンスは**https://mcp.aldomatias.com/mcp**で稼働しています(Streamable HTTP、認証なし、レート制限あり)。Claudeのカスタムコネクタなど、リモートMCPサーバーに対応するクライアントから利用するか、次のように使用できます。
claude mcp add --transport http dof https://mcp.aldomatias.com/mcp
npmパッケージと同じツール、同じリリースを提供します。無料のベストエフォート型サービスであり、SLAはありません。大量に利用する場合は、パッケージを自身で実行してください。
プライバシー。 このエンドポイントは、IPアドレス、ツールの引数、結果を保存しません。各リクエストについて、HTTPメソッドとパス、ステータス、処理時間、JSON-RPCメソッド、ツール名、およびMCPクライアントが自身について通知する名前とバージョン(例:claude-ai)を記録します。これらのログはAWS CloudWatchに7日間保存され、利用状況の集計と障害の検出にのみ使用されます。通信はCloudflareを経由します。Cloudflareは、独自のプライバシーポリシーに基づき、レート制限とDDoS対策のためにIPアドレスを処理します。お問い合わせ:[email protected]。
Streamable HTTP
npx dof-mcp --http --port 3000 # endpoint http://127.0.0.1:3000/mcp, probe /healthz
HTTPトランスポートはステートレスで、127.0.0.1にバインドし、HostおよびOriginヘッダーを検証します(--allowed-host <name>でホスト名を追加できます)。認証もレート制限もありません。ローカルホストの外部に公開する場合は、これらを追加するリバースプロキシの背後に配置してください。SECURITY.mdを参照してください。
クライアント
このパッケージは ESM です。import はどこでも使用できます。require("dof-mcp") は Node.js 22.12 以降で動作します(require(esm))。
import { DofClient } from "dof-mcp";
const dof = new DofClient();
const notes = await dof.getNotes("2026-10-16");
// [{ id: 5801377, title: "Acuerdo por el que se crea ...", date: "2026-10-16",
// edition: "matutina", branch: "PODER EJECUTIVO",
// organization: "SECRETARIA DE SEGURIDAD Y PROTECCION CIUDADANA", page: 4,
// hasPdf: true, hasHtml: true,
// officialUrl: "https://dof.gob.mx/nota_detalle.php?codigo=5801377&fecha=16/10/2026" }, ...]
const note = await dof.getNote(5801457); // full text as plain text
const fix = await dof.getIndicatorSeries("fix", "2026-10-01", "2026-10-16");
const { data, source } = await dof.getNotesWithSource("2026-10-16");
// source: { sourceUrl, fetchedAt, sha256, bytes }
オプション(すべて省略可能):
| オプション | デフォルト | |
|---|---|---|
timeoutMs | 15000 | リクエストごとのタイムアウト |
retries | 2 | ネットワークエラー、429、5xx の場合に、指数バックオフとフルジッターを使用して再試行します。Retry-After を最大 30 秒まで尊重します |
maxResponseBytes | 10 MiB | これを超えるレスポンスは、解析せずに拒否されます |
cacheTtlMs | 10 min | メモリ内キャッシュ。同一の同時リクエストは 1 回のフェッチを共有します。0 にすると無効になります |
cacheMaxEntries | 256 | LRU の上限 |
maxCacheableBytes | 512 KiB | これを超えるレスポンスは返されますが、キャッシュされません |
maxConcurrency | 4 | SIDOF への同時処理リクエスト数 |
maxQueue | 64 | スロットの空きを待つリクエスト数。上限を超えると DofQueueFullError ですぐに失敗します |
設計メモ
- 境界での検証。 すべてのレスポンスは Zod で解析されます。予期しない形式の場合は、呼び出し元に
undefinedが渡るのではなく、明示的にエラーになります。 - 正規化。 SIDOF はセクション見出しと公表文書を 1 つのリストに混在させ、一部の欠損値を文字列
"null"として記述しています。クライアントは、タイトルのある公表文書のみを ISO 形式の日付、ブール値、プレーンテキストのコンテンツで返します。 - データソースへの配慮。 識別情報を含む
User-Agent、同時実行数の制限、キャッシュ、リダイレクトなしを使用します。SIDOF は単独のAccept: application/jsonに対して406を返すため、クライアントはフォールバックを含むヘッダーを送信します。 - 記録済みのフィクスチャ。 テストは実際のレスポンスを記録したものに対して実行されます。毎晩のコントラクトテストで、ライブ API が引き続き一致することを確認します。
ロードマップ
- 日次公表文書、注記の詳細、指標(FIX、UDIS、TIIE)に対応する型付きクライアント
-
dof_daily_summary、dof_get_note、dof_get_indicatorsを備えた MCP サーバー(stdio + Streamable HTTP) - 堅牢化:サイズ制限、ジッター付きバックオフ、キャッシュ、出典情報、毎晩のコントラクトテスト
- リリースパイプライン:出典情報付きの npm Trusted Publishing、MCP Registry
- オプション:ホスト型エンドポイント、ローカル検索インデックス(
dof_search_notes。SIDOF 自体の検索機能は動作しません)
開発
CONTRIBUTING.md と RELEASING.md を参照してください。
npm install
npm run lint && npm run typecheck && npm test && npm run build
npm run test:live # contract tests against the live API
免責事項
非公式プロジェクトであり、Secretaría de Gobernación とは関係ありません。データは公開 SIDOF API から取得しており、予告なく変更される場合があります。このパッケージが返すテキストはプレーンテキストに変換したもので、公式版ではありません。公式 DOF は dof.gob.mx に掲載された署名付き PDF です。必ずそちらで確認してください。
MIT ライセンスの適用対象はこのコードであり、DOF のコンテンツではありません。SIDOF の法的通知では、出典を明記することを条件に、非営利目的でのコンテンツの複製が認められています。商用利用には Secretaría de Gobernación の書面による同意が必要です。このパッケージを使用して取得したコンテンツを再公開する場合は、出典として Diario Oficial de la Federación を明記してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。