Aides sociales françaises について
開発者やエージェント向けの MCP サービスで、OpenFisca-France を使い、フランスの RSA、活動手当、住宅手当をローカルで推定します。結果は推定値であり、公式決定ではありません。
主な機能
- 01RSA と活動手当の推定
- 02APL、ALS、ALF の推定
- 03世帯・住居情報に基づく計算
- 04OpenFisca-France によるローカル実行
- 05計算の前提と対象範囲の提示
活用シーン
- 01フランスの給付推定をアプリに組み込む
- 02世帯情報から月額給付を見積もる
- 03住宅手当の推定に INSEE の自治体コードを使う
MCP 対応
社会給付と住宅手当の計算ツールを MCP クライアントに公開します。計算リクエストには API キーが必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp-aides-sociales.onrender.com/mcpclaude mcp add --transport http audescs-spec-mcp-aides-sociales https://mcp-aides-sociales.onrender.com/mcp{"mcpServers":{"audescs-spec-mcp-aides-sociales":{"type":"http","url":"https://mcp-aides-sociales.onrender.com/mcp"}}}Cursor で開く{"servers":{"audescs-spec-mcp-aides-sociales":{"type":"http","url":"https://mcp-aides-sociales.onrender.com/mcp"}}}VS Code で開く{"mcpServers":{"audescs-spec-mcp-aides-sociales":{"type":"http","url":"https://mcp-aides-sociales.onrender.com/mcp"}}}{"mcpServers":{"audescs-spec-mcp-aides-sociales":{"serverUrl":"https://mcp-aides-sociales.onrender.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp-aides-sociales.onrender.com/mcp認証が必要ツール
詳細
MCP サーバー - フランスの社会保障給付
このサービスは、開発者や、自身のソフトウェアに組み込む AI エージェント向けに設計された API/MCP です。単独で使う一般向けシミュレーターではありません。フランスの世帯について、給与、家賃、住居の状況、子どもの人数、夫婦の状況などの簡単な情報をもとに、RSA、活動手当、**住宅補助(APL/ALS/ALF)**を計算します。
計算は、オープンソースライブラリ openfisca-france(フランスの社会保障制度の公式計算エンジン)を使用してすべてローカルで行われます。公開 API api.fr.openfisca.org やその他の外部サービスへの呼び出しはありません。
⚠️ 重要:これらは推定値であり、公式な決定ではありません。 計算には簡略化した仮定(成人の年齢を固定、直近数か月の状況が安定していると想定するなど)が用いられます。確定した正確な金額を提示できるのは、CAF または MSA のみです。
クレジット
計算には、AGPL-3.0 ライセンスの下で公開されている自由なオープンソースの社会・税制計算エンジン、OpenFisca を使用しています。ソースコード: github.com/openfisca/openfisca-france。
サーバーアドレスとアクセス
https://mcp-aides-sociales.onrender.com/mcp
このサービスは**アクセスキー(API key)**で保護されています。呼び出しのたびにキーを指定する必要があり、指定しない場合、サーバーは応答を拒否します。手動での承認が不要な、セルフサービスの2つのプランがあります。
| プラン | 上限 | 料金 | キーの取得方法 |
|---|---|---|---|
| Free | 月50リクエスト | 0 €(クレジットカード不要) | {"email": "..."} を指定して POST /signup-free |
| Standard | 無制限 | 月額29 € | buy.stripe.com/9B628q5Pb7t9a0QdurgEg01 |
Freeプラン — クレジットカード不要ですぐに登録できます。
curl -X POST https://mcp-aides-sociales.onrender.com/signup-free \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'
キー(free_... のプレフィックス付き)がメールで送信されます。上限(月50リクエスト)は毎月初めに自動でリセットされます。上限を超えると、サーバーは 402 Payment Required と、Standardプランへの切り替えを案内するメッセージを返します。単にエラーを返すだけではありません。
Standardプラン — サブスクリプションの支払い後、個人用のアクセスキー(無制限)が自動的にメールで送信され、毎月の支払いが成功するたびに更新されます。
Claude Desktopへのインストール
- Claude Desktopの設定ファイルを開きます。
- Macの場合:
~/Library/Application Support/Claude/claude_desktop_config.json - Windowsの場合:
%APPDATA%\Claude\claude_desktop_config.json
- Macの場合:
mcpServersセクションに以下を追加するか、既存の内容を更新します。
{
"mcpServers": {
"aides-sociales-france": {
"url": "https://mcp-aides-sociales.onrender.com/mcp",
"headers": {
"X-API-Key": "VOTRE_CLE_API"
}
}
}
}
VOTRE_CLE_APIを、受け取ったキーに置き換えます。- Claude Desktopを再起動します。
Cursorへのインストール
- CursorのMCP設定を開きます(Settings → MCP → Add new MCP server、またはファイル
~/.cursor/mcp.json)。 - 上記と同じ設定を追加します。
{
"mcpServers": {
"aides-sociales-france": {
"url": "https://mcp-aides-sociales.onrender.com/mcp",
"headers": {
"X-API-Key": "VOTRE_CLE_API"
}
}
}
}
VOTRE_CLE_APIを自分のキーに置き換え、Cursorを再読み込みします。
接続後に質問できる例
「パリで一人暮らしをしていて、月収は手取り900ユーロ(額面で約 1,150ユーロ)、家賃は500ユーロで、子どもはいません。 RSA、活動手当、APLを受給できますか?受給できる場合、金額はいくらですか?」
アシスタントは自動的にツール calculer_aides_sociales
と calculer_apl を使用し、推定月額を回答します。
技術メモ:初回の呼び出しが遅くなる場合があります
サーバーは無料プランでホストされています。しばらく利用されていない場合、最初の質問への応答に30~60秒かかることがあります(「起動」するまでの時間です)。その後の質問への応答は速くなります。
公開されているツール
calculer_aides_sociales(RSA+活動手当)
パラメーター:
salaire_net_mensuel(数値):申請者の月額手取り給与(ユーロ)。loyer_mensuel(数値):世帯の月額家賃(ユーロ)。statut_occupation_logement(テキスト):次のいずれかです:proprietaire、primo_accedant、locataire_hlm、locataire_vide、locataire_meuble、loge_gratuitement、locataire_foyer、sans_domicile。nombre_enfants(整数):扶養する子どもの人数。en_couple(真/偽)。salaire_net_mensuel_conjoint(数値、任意):en_coupleが真の場合に指定します。code_insee_commune(テキスト、任意):自治体のINSEEコード(depcom)、5文字(例:パリの場合は75056)。RSAの住宅定額控除の計算における内部確認(APLゾーン)を詳細化します。指定がない場合は、この確認に限りゾーン2がデフォルトで使用されます。通常、返されるRSA/活動手当の額には影響しません(下記の RSAの住宅定額控除 を参照)。
計算月、推定月額RSA、推定月額活動手当、および計算に用いた前提条件を返します。
calculer_apl(住宅手当:受給資格に応じてAPL、ALSまたはALF)
パラメーター:
salaire_brut_mensuel(数値):申請者の月額額面給与 (保険料控除前、給与明細の上部に記載)です。calculer_aides_socialesで使用する手取り給与とは異なります。openfisca-franceが独自の給与計算エンジンを使って課税所得を正しく再計算し、住宅手当の「リアルタイム」資産要件の計算基準(2021年改革)に用いるために必要です。loyer_mensuel(数値):実際に支払う家賃(共益費を除く)です。ルームシェアの場合は、自分の負担分のみを指定します。code_insee_commune(テキスト、このツールでは必須):自治体のINSEEコード(5文字)です。郵便番号ではありません。APLゾーンは自動的に判定されます(openfisca-franceに組み込まれたゾーニングファイルを使用。37,000以上の自治体に対応し、ネットワーク呼び出しはありません)。不明なコードは、デフォルトのゾーンにフォールバックするのではなく、明示的に拒否されます。statut_occupation_logement(テキスト):proprietaire、locataire_hlm、locataire_vide、locataire_meuble、loge_gratuitement、sans_domicileは計算対象です(最後の3つは、実際に受給資格がないため、正当に0ユーロになります)。primo_accedantとlocataire_foyerは対象外です。概算額ではなく、ツールは明示的なエラーを返します(calculer_aplで対応していないケースを参照)。nombre_enfants、en_couple、salaire_brut_mensuel_conjoint:原則としてcalculer_aides_socialesと同じですが、給与は額面で指定します。en_colocation(真/偽、任意、デフォルトは偽):ルームシェアの場合に適用される、低めの家賃上限を適用します。
計算月、推定月額住宅手当、該当する制度(APL、ALSまたはALF)、計算の前提条件、および計算対象となる範囲と対象外となる範囲の明確な説明を返します。
calculer_apl で対象にならないもの
- 住宅ローン返済中の持ち家取得(
primo_accedant): ローンの正確な日付が必要ですが、ここでは収集しておらず、2018年以降、新規ローンはほとんど対象になっていません。 - 福祉施設/大学寮または CROUS の住居
(
locataire_foyer):openfisca-france 自体が、この状況を標準の計算式では「計算不可」としています。 - 給与所得以外の収入:自営業、失業給付、退職年金、障害年金、資産収入はモデル化されていません。安定した給与所得のみが考慮されます。
- 有料で受け入れられている高齢者・障害者、特別な家具付き個室。
RSA の住宅手当相当額(RSA と APL を合算できる理由)
calculer_aides_sociales が返す RSA には、すでに住宅手当相当額が含まれています。これは法律で定められた定額控除(単身者の場合、RSA 基本額の約 12%)で、世帯が住居を確保している場合(家賃を支払っている場合、無料で住んでいる場合、または持ち家の場合)に適用されます。実際の住宅手当額を推定したものではありません。法律で定められた率であり、実際の金額とは関係しないため、ここで返される RSA と calculer_apl が返す金額は合算できます。受給者は実際に、(この定額控除が差し引かれた)RSAに加えて、APL/ALS/ALF の全額を受け取ります。
このサーバーを自分でローカルで実行する
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
API_KEY=une-cle-secrete-a-vous python src/server.py
サーバーは、環境変数 PORT で指定されたポート(デフォルトは 8000)の /mcp パスで HTTP 接続を受け付けます。
アクセスキーの仕組み
サーバーはキーを平文で保存しません。コードに含まれるのはSHA-256 フィンガープリント(元に戻せない一方向ハッシュ)のみです。クライアントから提供されたキーは、そのフィンガープリントが一致する場合にのみ受け付けられます。これにより、ホスティングサービスで環境変数を設定せずに、サービスをすぐに使える状態で運用できます(Render の「Blueprint managed」モードのように、ダッシュボードから環境変数を追加できない場合に便利です)。
コードを変更せずにキーを置き換える方法(ローカルでの実行時や、環境変数を設定できるホスティングサービスを利用する場合など):
API_KEY=votre-cle python src/server.py(平文のキーは起動時にハッシュ化されます)、またはAPI_KEY_SHA256=votre-empreinte python src/server.py(計算済みのフィンガープリント)。
デフォルトのキーを恒久的に変更するには、新しいキーの SHA-256 フィンガープリントを計算し、src/server.py の定数 _EMPREINTE_CLE_API_PAR_DEFAUT を置き換えてください。
実装済みの保護機能
- すべての計算呼び出しでアクセスキーが必須です(上記参照)。
- 受信データを厳密に検証します(金額、子どもの人数、型)。形式が不正なリクエストや、あり得ない値を含むリクエストは、サーバーをクラッシュさせることなく適切に拒否されます。
- IP アドレスごとのリクエスト数を制限します。一定時間内の呼び出し回数が上限を超えると、リクエストを処理せず、サーバーは「リクエストが多すぎます」と応答します。無料プランでホストされているこのサービスが、悪意ある繰り返しの利用によって過負荷になるのを防ぎます。
デプロイ
render.yaml: Render.com へのデプロイ用に設定済み(「Blueprint」タイプ)。nixpacks.toml/Procfile: Railway.app 用に設定済み。
Stripe 決済とキーの自動送信(メンテナー向け)
このサービスは Stripe Payment Link で販売できます。Webhook
(POST /webhook/stripe、アクセスキーによる保護なし)は
次の2つのイベントをリッスンします。
checkout.session.completed(単発決済モードのみ):現在は無効になっている、旧 one_time Payment Link の従来のケースです。Stripe のセッション ID とサーバーシークレットから HMAC-SHA256 で導出した無期限のアクセスキーを生成します。invoice.paid(月額サブスクリプション、現在のケース):サブスクリプションの支払いが成功するたび(初回または更新時)、Stripe のサブスクリプション ID から導出したキーを生成します。有効期限は請求対象期間の終了時です(猶予期間として3日を追加)。サブスクリプションがキャンセルされた場合や支払いに失敗した場合、最後に送信されたキーは有効期限が切れると機能しなくなります。失効リストは不要です。
どちらの場合もデータベースは不要です。キーはストレージ内を検索するのではなく、HMAC 署名を再計算して検証します(Render の無料ディスクは再起動後にデータが保持されないためです)。 メールの送信には Resend を使用します。
ホスティング事業者側で設定する環境変数(API_KEY / API_KEY_SHA256 に加えて。詳細は上記を参照):
STRIPE_WEBHOOK_SECRET:Webhook エンドポイントの署名シークレット(whsec_...)。Webhook の作成時に Stripe から提供されます。API_KEY_PEPPER:生成された各クライアントのキーの導出と検証に使用する、サーバー固有のランダムなシークレットです。一度だけ生成し、変更しないでください(変更すると、すでに送信したキーが無効になります)。RESEND_API_KEY:メール送信に使用する Resend の API キーです。RESEND_FROM_EMAIL(任意):送信元アドレスです。デフォルトは[email protected]です。ドメインが未認証の場合、Resend アカウント自体のメールアドレスにしか送信できません。本番環境では、認証済みドメインのアドレスを使用してください(例:Resend で DKIM/SPF/MX を認証した[email protected])。
安全対策として、生成した各キーはサーバーのログにも記録されます([paiement] nouvelle cle generee ...)。メール送信に失敗した場合は、キーを見つけて手動で再送できます。
無料プラン(メンテナー向け)
POST /signup-free(公開、アクセスキーによる保護なし)は無料プランのキー(free_... プレフィックス。ほかのキーと同様に HMAC-SHA256 を使用するため、データベースなしでキーの真正性を検証できます)を生成し、メールで送信します。メールアドレスの検証は行いません。月間上限が低く(50件)、悪用する実質的なメリットがないこと(公式の無料の代替手段である CAF、1jeune1solution もいずれにせよ利用可能です)を踏まえた判断です。実際に悪用が確認された場合に限り、再検討してください。
有料キーとは異なり、無料キーでは上限を適用するために利用状況の継続的な追跡(今月のリクエスト数)が必要です。単純な HMAC 署名だけでは対応できません。外部ストレージを使用するのは、このカウンターのみです。Upstash Redis(無料プラン、クレジットカード不要)を使用し、単純な HTTP リクエストで照会します(キー usage:{mois}:{cle} に対して INCR を実行し、約40日後にクリーンアップのため有効期限を設定します)。月は Redis キー名の一部なので、リセット処理を実装しなくても、上限は毎月自動的にゼロに戻ります。
追加の環境変数:
UPSTASH_REDIS_REST_URL/UPSTASH_REDIS_REST_TOKEN:Upstash Redis データベース(サービスの無料プラン)の REST 認証情報です。これらの変数が設定されていない場合、free_...キーを使ったリクエストは、既定で許可されたり処理がクラッシュしたりするのではなく、明示的に失敗します(503「上限管理サービスを利用できません」)。有料プランの HMAC キーの仕組みはこれらの変数に依存せず、通常どおり機能します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。