---
title: MCP で使う
description: AI クライアントに風土記の MCP サーバーを登録し、会話から歳出のデータと事業の評価資料の所在を問い合わせる。
---

MCP サーバーの URL は `https://api.fudoki.dev/mcp` です。Streamable HTTP で話し、認証は要りません。

## クライアントに登録する

各クライアントの手順は 2026 年 10 月時点のものです。画面や設定の書式が変わっていたら、そのクライアントの公式文書に従ってください。

**ChatGPT**

Plugins の「＋」から「Add custom MCP server」を選びます。名前を「風土記」、Server URL を `https://api.fudoki.dev/mcp`、Authentication を「No authentication」にします。表示される説明を確認して「Create as a plugin」で作成し、個人用 plugin をインストールします。新しい Work の会話で `@` から風土記を選びます。

これは個人用の接続で、公開ディレクトリへの提出ではありません。[公式の接続手順](https://developers.openai.com/plugins/deploy/connect-chatgpt)

**Claude（Web・Desktop）**

Customize（設定）の Connectors でカスタム Web コネクタを追加し、名前「風土記」、URL `https://api.fudoki.dev/mcp` を指定します。認証は「No sign in」で接続し、会話で有効にします。組織プランでは管理者の権限・許可が必要な場合があります。[公式の接続手順](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp)

**Cursor**

プロジェクトの `.cursor/mcp.json` またはユーザーの `~/.cursor/mcp.json` に、既存の設定を残して次の server を追加します。Customize で有効になっていることを確認します。

```json
{
  "mcpServers": {
    "fudoki": { "url": "https://api.fudoki.dev/mcp" }
  }
}
```

ローカルサーバーや `npx` の起動設定は不要です。[公式の MCP 設定](https://cursor.com/docs/mcp)

**Claude Code・Codex**

共通 skill を含む [plugin の導入](/plugins)を使えます。URL だけを直接登録する場合は次のいずれかを実行します。

```bash
claude mcp add --transport http fudoki https://api.fudoki.dev/mcp
codex mcp add fudoki --url https://api.fudoki.dev/mcp
```

plugin と直接登録を重ねる必要はありません。UI 非対応の host でも構造化結果と原典 URL を使えます。

## 接続後に表と原典を確認する

1. 「中野区で収録されている年度、当初予算・決算、会計を教えて」と頼み、収録範囲を確認します。
2. 「中野区の2025年度決算、一般会計の目を金額の大きい順に3件見せて」と頼み、結果と円単位を確認します。収録が変わっていたら、返された範囲から条件を選び直します。
3. 表の明細を開き、内訳を科目・節・備考の切り口ごとに確認します。
4. 明細の「原典を表示」を押し、資料名・取得 URL・取得日時、項目と金額の頁・枠を確認します。枠が無い場合は頁と原典リンクを使います。

UI が出ないときも構造化結果は使えます。MCP Apps 対応と、そのサーバーの表示が実際に動くかは別に確認してください。接続が有効か、対象の tool が呼ばれたかを確かめ、新しい会話でも試します。[Claude の対話型コネクタ](https://support.claude.com/en/articles/13454812-use-interactive-connectors-in-claude)・[Cursor の MCP Apps](https://cursor.com/help/customization/mcp)

## tool

すべて読み取りだけで、利用者の状態を変えません（`readOnlyHint: true`）。入力と応答の schema は REST と同じ定義から作っていて、[API リファレンス](/reference)で確かめられます。

| tool | 使いどころ |
| --- | --- |
| `list_jurisdictions` | 団体の名称・団体コード（6 桁）・都道府県と、収録している年度・資料区分・会計とその原典を返す。団体名や 5 桁のコードからでも引ける。検索の前に、比べたい団体・年度が収録されているかを確かめる。 |
| `describe_expenditure_columns` | 列の説明・金額を足すときの条件（`sum_rules`）・検索の入力の例を返す。検索の前に一度読む。 |
| `search_expenditure_nodes` | 団体・年度・段（款・項・目）・COFOG などの条件でノードを絞って一覧する。 |
| `get_expenditure_node` | ノード一つと、その子を軸（科目・節・備考など）ごとに返す。内訳を辿るときに使う。 |
| `search_evaluations` | 団体と評価対象年度（評価された実績の決算の年度）を指定して、事業の評価が載った原典 PDF の頁の所在を返す。収録は選定した団体の2025年度決算を評価した資料だけで、未収録は `not_covered`。返すのは URL・SHA-256・物理頁・`page_url` と150文字以内の抜粋で、頁の内容は返さない。 |

tool の説明だけで使い方が分かるように書いてあるので、たとえば次のように頼めます。

> 2025 年度の決算で、COFOG の社会保護（10）に分類された目を金額の大きい順に 10 件出して、原典の URL も添えて

> 三鷹市と八王子市で、両方に収録がある年度・資料・会計を確かめてから、その条件で民生費の目を比べて

## 事業の評価の頁を探す

`search_evaluations` は、事業名などの検索文から、評価が載った頁の候補を返します。たとえば「北区の2025年度の事業評価で、防災分野におけるデジタル化の推進が載っている頁を探して」と頼めます。収録の範囲と読み方は[データの読み方](/data)の「事業の評価資料」にあります。

- 候補は検索の結果で、目的の事業の評価とは限りません。抜粋は所在を示すためのもので、内容は `page_url`（原典 PDF の該当頁）を取得して読みます。取得できないクライアントでは、`page_url` を開いて確かめてください。
- 収録していない団体・年度は `status: not_covered` です。原典に無いという意味ではありません。0件（`no_candidates`）も同じで、別の言い方で引き直せます。
- 評価資料の金額は、歳出の tool が返す金額の代わりにはなりません。
- 回数に上限があります。超えると REST は HTTP 429 と `Retry-After`、MCP は `isError` の結果に `RESOURCE_EXHAUSTED` と `retry_after_seconds` を返します。停止中や検索の失敗は 503（`UNAVAILABLE`）で、0件ではありません。

plugin の `compare-expenditure` skill の reference に、検索文の作り方と原典の頁の読み方をまとめてあります。

## 表で見る（MCP Apps）

MCP Apps に対応したクライアントでは、`list_jurisdictions`・`search_expenditure_nodes`・`get_expenditure_node` の結果が表で表示されます（`search_evaluations` と `describe_expenditure_columns` は構造化された結果だけです）。団体の収録範囲を開いたり、次のページや内訳を辿ったりできます。

明細の「原典を表示」を押すと、UI の中に原典 PDF の該当頁が表示されます。項目と金額の頁番号を示し、単一頁の印字枠がある箇所を強調します。枠が欠けている明細や項目が次頁へ続く明細は、頁だけを表示します。頁番号は PDF ファイルの1始まりで、紙面の印刷頁番号とは別です。CSV や頁不明の明細は原典リンクを案内します。

PDF は自治体の公開 URL から取得します。取得 URL と取得日時を表示しますが、取り込み時の原典と内容が異なる可能性があります。表示用の取得結果は24時間再利用し、期限後に再取得します。32 MiB・20秒の取得上限、全利用者合計で閲覧120回/分・取得6回/分（同じ URL は1回/分）、保持16 URLの上限があります。取得できない場合や上限を超えた場合は、原典 URL と頁番号を案内します。

UI に対応していないクライアントには、構造化された結果が返ります。

## 制約

- POST だけを受け付けます。JSON-RPC の batch と `subscriptions/listen` は受け付けません。
- リクエストの body は 16 KiB までです。
- 提供を止めているあいだは HTTP 503 を返します。
- `search_evaluations` は IP あたりの流量と全利用者の合計に上限があり、値は利用状況で見直します。
