MCPサーバー / 公開API
本サービスが公開している変更ログ(承認済みのみ)を、AIエージェントやプログラムから そのまま参照できる形で無料公開しています。認証は不要です。
MCPツール 4 種 / RESTエンドポイント 4 本 / データは JSON(UTF-8)/ 認証 不要
MCPエンドポイント
MCP(Model Context Protocol)クライアントからは、次のURLに Streamable HTTP トランスポートで接続します。
https://fh-watch.com/mcp
| トランスポート | Streamable HTTP(POST のみ) |
|---|---|
| レスポンス | JSON(application/json)。SSEストリーミングは使いません |
| セッション | セッションレス。Mcp-Session-Id は発行しません |
| プロトコル版 | 2025-06-18 / 2025-03-26(初期化時にネゴシエート) |
| 認証 | 不要(公開データのみを返す参照系ツールのため) |
| 提供機能 | tools のみ(resources / prompts は提供しません) |
提供ツール(4種)
| ツール | 内容 | 引数 |
|---|---|---|
list_changes |
承認済み変更ログを新しい順に一覧する |
category(カテゴリ名で完全一致)/
visa_type(在留資格タグで完全一致)/
since(ISO 8601。この日時以降の公開分)/
limit(1〜100、既定20)/
offset(既定0)
|
get_change |
変更ログを ID 単体で取得する | id(必須・整数) |
search_changes |
タイトル・変更点・要約を対象に部分一致検索する | q(必須・検索語)/limit(1〜100、既定20) |
list_sources |
監視対象の公式ソース一覧と最終巡回日時・掲載件数を返す | なし |
各ツールは content[0].text(JSON文字列)と structuredContent
の両方で同じデータを返します。該当IDが無い・検索語が空などのデータ起因のエラーは、
JSON-RPCエラーではなく isError: true の結果として返します。
接続例
Claude Code から追加する場合:
claude mcp add --transport http fhw https://fh-watch.com/mcp
設定ファイル(.mcp.json)に直接書く場合:
{
"mcpServers": {
"fhw": {
"type": "http",
"url": "https://fh-watch.com/mcp"
}
}
}
生の JSON-RPC で確認する場合:
curl -s https://fh-watch.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
REST API(4エンドポイント)
| エンドポイント | 内容 | レスポンス |
|---|---|---|
| GET /api/logs |
変更ログ一覧。クエリ:
category / visa_type / since /
limit(1〜100、既定20)/ offset
|
{ generated_at, total, count, limit, offset, items } |
| GET /api/logs/{id} | 変更ログ単体(安定ID)。存在しない場合は 404 | 変更ログ1件のJSON |
| GET /api/search | 部分一致検索。クエリ: q(必須)/ limit |
{ query, total, count, items } |
| GET /api/sources | 監視対象ソース一覧(最終巡回日時・掲載件数つき) | { generated_at, count, items } |
全応答は Content-Type: application/json; charset=utf-8、
Cache-Control: public, max-age=300、
Access-Control-Allow-Origin: * を返します(ブラウザから直接呼べます)。
全件のスナップショットは https://fh-watch.com/api/logs.json
としても配信しています。
# 最新5件
curl -s 'https://fh-watch.com/api/logs?limit=5'
# 特定技能に絞って取得
curl -s 'https://fh-watch.com/api/logs?category=特定技能&limit=10'
# 2026-07-01 以降の公開分
curl -s 'https://fh-watch.com/api/logs?since=2026-07-01'
# 単体取得
curl -s 'https://fh-watch.com/api/logs/1'
# 検索
curl -s 'https://fh-watch.com/api/search?q=告示'
# 監視ソース一覧
curl -s 'https://fh-watch.com/api/sources'
データスキーマ
変更ログ1件(items[] の各要素)は次のフィールドを持ちます。
| フィールド | 型 | 内容 |
|---|---|---|
id | integer | 安定ID。/changes/{id}/ に対応し、変更されません |
source_id | string | 監視ソースID(/api/sources の id に対応) |
item_key | string | ソース内での項目キー(同一項目の同定用) |
change_type | string | 変更の種別(例: new_item) |
detected_at | string (ISO 8601) | 変更を検知した日時(UTC) |
published_at | string (ISO 8601) | null | 本サービスで公開した日時(UTC) |
title | string | 変更のタイトル(事実ベース) |
what_changed | string | null | 何が変わったか(差分の記述) |
effective_date | string | null | 施行日 / 適用日。未確定は null |
categories | string[] | カテゴリ(固定語彙5種) |
visa_types | string[] | 対象の在留資格タグ(固定語彙) |
summary | string | null | 要約(AI生成+人間確認済み) |
source_url | string | null | 一次情報(公式)のURL |
url | string | 本サービスの安定URL(https://fh-watch.com/changes/{id}/) |
corrections | object[] | 訂正履歴。各要素は { at, note } |
内部の運用項目(AIモデル名・確認メモ・スナップショット参照・承認ステータス)は公開しません。 返るのは承認済み(approved)のエントリのみです。
更新頻度
公式ソースの巡回は日次で行い、検知した変更は人間が一次情報と突合して承認した
ものだけを公開します。API・MCPが返すデータは、承認後の日次ビルドで更新される静的スナップショットです
(generated_at が生成時刻)。したがって、承認から API 反映までは最大1日程度の遅れがあります。
レスポンスは最大5分間キャッシュされます。
各ソースの巡回状況(最終巡回日時・掲載件数)は情報ソース一覧と
/api/sources で公開しています。
利用条件
- 無料・認証不要。APIキーの登録は必要ありません。
- SLAはありません。可用性・応答時間・スキーマの安定性を保証するものではなく、 予告なく変更・停止する場合があります(ミッションクリティカルな用途には利用しないでください)。
- 明示的なレート制限は設けていませんが、常識的な頻度でのアクセスにご協力ください。 過度なアクセスは配信基盤側で遮断される場合があります。
- 引用時は出典を明記してください。すなわち
(1)
source_url(一次情報のURL)、(2)url(本サービスの安定URL)、 (3) 参照日 の3点です。AIエージェントの回答に使う場合も同様に明示してください。 - 本APIが返すのは事実ベースの変更ログのみです。在留資格の可否判断・適法性の保証・ 個別事案への助言は含みません。