Codex Mrl について
Codex MRL は、食品中の農薬および動物用医薬品の Codex Alimentarius 残留基準値を調べる MCP サーバーです。物質または食品から検索でき、採択情報や動物用医薬品の JECFA 相互参照も確認できます。
主な機能
- 01農薬と食品の検索
- 02物質または食品別の農薬基準値取得
- 03動物用医薬品と基準値の検索
- 04採択年とステップコードの確認
- 05JECFA 相互参照の参照
活用シーン
- 01食品に適用される農薬基準値の確認
- 02農薬基準値が設定された食品の検索
- 03動物種と組織別の動物用医薬品基準値の確認
- 04採択済み基準値と審議中の基準値の区別
MCP 対応
MCP クライアントに Codex の農薬・動物用医薬品残留基準値の照会ツールを提供し、stdio のローカルサーバーまたは Pipeworx ゲートウェイ経由で接続できます。ゲートウェイのエンドポイントには Pipeworx 共通メタツールも含まれます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/codex-mrl/mcpclaude mcp add --transport http pipeworx-io-codex-mrl https://gateway.pipeworx.io/codex-mrl/mcp{"mcpServers":{"pipeworx-io-codex-mrl":{"type":"http","url":"https://gateway.pipeworx.io/codex-mrl/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-codex-mrl":{"type":"http","url":"https://gateway.pipeworx.io/codex-mrl/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-codex-mrl":{"type":"http","url":"https://gateway.pipeworx.io/codex-mrl/mcp"}}}{"mcpServers":{"pipeworx-io-codex-mrl":{"serverUrl":"https://gateway.pipeworx.io/codex-mrl/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Codex MRL — 最大残留基準(FAO/WHO Codex Alimentarius)
Codex Alimentarius 委員会が採択した、食品中の農薬残留物および動物用医薬品の残留物に関する、国際的に合意された法的上限です。Codex MRL は食品貿易における基準点です。国境で貨物が拒否された場合、通常はこれらの数値のいずれかに抵触しています。
Pipeworx の一部です。AI エージェントを 1875 以上のライブデータソースに接続する MCP ゲートウェイです。これは独立した非公式の統合であり、上流プロバイダーとは提携、推奨、公開のいずれもされていません。
これは食品化学における「許可」の側面です。「安全性」の側面、つまり基準の根拠となる許容一日摂取量や毒性評価については、jecfa パックをご覧ください。ここにある動物用医薬品の記録には、両者を結び付ける jecfa_chemical_id が含まれています。
ツール
| ツール | 回答する内容 |
|---|---|
codex_pesticide_search | 農薬を名前で検索 → ID |
codex_pesticide_mrls | 1 種類の農薬 → ADI、残留物の定義、およびすべての商品における基準値 |
codex_commodity_search | 食品を名前で検索 → ID |
codex_commodity_mrls | 1 種類の食品 → 適用されるすべての農薬の基準値 |
codex_vetdrug_search | 85 種類の動物用医薬品を一覧表示または検索 |
codex_vetdrug_mrls | 1 種類の医薬品 → 動物種および組織ごとの基準値と、JECFA への相互参照 |
対象範囲
240 種類の農薬と 85 種類の動物用医薬品について、基準値を物質別と食品別の両方向から検索できます。農薬の基準値には、採択年、JMPR 評価年、段階コードが含まれています。CXL は採択済みの Codex 基準値を意味します。数値の段階コードは、基準値がまだ 8 段階の採択手続き中であり、まだ拘束力がないことを意味します。
認証
不要です。キー不要、登録不要、割り当て上限なしです。
データソース
- 農薬残留物:https://www.fao.org/fao-who-codexalimentarius/codex-texts/dbs/pestres/en/
- 動物用医薬品の残留物:https://www.fao.org/fao-who-codexalimentarius/codex-texts/dbs/vetdrugs/en/
文書化された API はありません。これらのエンドポイントはサイト独自の jQuery ページを支えているため、非公開かつバージョン管理されておらず、予告なく変更される可能性があります。
含まれないもの:GSFA
Codex の 3 つ目のデータベースであるGSFA(食品添加物に関する一般規格)は、添加物が特定の食品で認められるか、またその基準値を定めるものですが、サーバーからアクセスできないため対象外です。fao.org/gsfaonline は Cloudflare の JavaScript チャレンジの背後にあり、規格そのものの PDF を含め、ブラウザー以外のすべてのクライアントに 403 を返します。これは IP レピュテーションによるブロックではないため、外向きプロキシを使っても解決しません。SharePoint ミラーには FAO SSO が必要で、サイト独自の sh-proxy も同じ 403 を返し、FAO の OpenKnowledge リポジトリ API も拒否します。GSFA にアクセスするにはブラウザー操作によるスクレイピングが必要であり、これは別種のプロジェクトになります。
注意点
上流の4つの挙動は、そのまま信頼すると誤った回答につながります。いずれもここでは対処していますが、拡張する場合は重要です。
-
農薬レコードの約10%は無効なJSONです。 商品名の文字列リテラルに、生のタブ文字が含まれています(
"Dry peas \t\t(subgroup)")。RFC 8259では文字列内のエスケープされていないU+0000~U+001Fが禁止されているため、JSON.parseはBad control character in string literalをスローし、そのレコードにはアクセスできません。30件をサンプリングしたところ、グリホサートを含む3件が該当しました。sanitizeJson()は文字列内の状態を追跡しながら、文字列内のみの制御文字をエスケープします。トークン間のタブや改行は合法な空白文字であり、そのままにする必要があるためです。 -
検索結果がない場合、空のリストではなく検索フォームが返されます。 存在しない商品を検索すると、検索UIを表す
{forms: {...}}が返ります。commoditiesを探して見つからなかったコードは、「適用される上限値はありません」と簡単に報告してしまう可能性があります。これは自信に満ちた誤答です。isEmptySearchResponse()がこの2つの形式を区別します。 -
不明なIDに対しては404ではなくHTTP 500が返されます。 そのため、無効なIDと上流の停止を見分けられません。
codex_pesticide_mrlsとcodex_vetdrug_mrlsはどちらも、まずカタログで引数を照合し、確認していないIDで詳細エンドポイントを呼び出すことはありません。 -
不在とゼロは異なり、どちらにも意味があります。
- 上限値がゼロであることは調査結果です。クロラムフェニコールは
count: 0を返します。これは、Codexが安全な残留レベルはないと判断した物質について、MRLを一切設定しないためです。これを「データなし」と報告すると、意味が逆になります。 - 物質が見つからないことも調査結果です。このデータベースに掲載されるのは、現在採択されている上限値のみであり、Codexは取り消した項目を削除します。クロルピリホスが存在しないのはまさにそのためです。上流の検索でも同様に何も返さないことを確認しています。したがって、不在であることは、その物質が評価されたことがない証拠にはなりません。
no_matchのヒントにもその旨が記載されています。
- 上限値がゼロであることは調査結果です。クロラムフェニコールは
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurfなど)に追加します。
{
"mcpServers": {
"codex-mrl": {
"url": "https://gateway.pipeworx.io/codex-mrl/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/codex-mrl/mcpのtools/listは、上の表にあるツールに加えて、共有のPipeworxメタツール(ask_pipeworx、discover_tools、search_within、remember/recall、その他ゲートウェイ全体で利用できるツール)を返します。そのため、表示されるツール数はこの表より多くなります。現在、単一パックのエンドポイントには、そのパック固有のツールに加えて、約30個の共有ツールが一覧表示されます。接続のinitializeレスポンスに正確な対象範囲が記載されており、その日の状況を確認するための正式な情報源となります。
これは意図的な設計であり、偶然に多重化されているわけではありません。メタツールを使うと、ask_pipeworx経由でカタログ全体を検索できるため、このパックの対象外の質問にも、2つ目のMCP サーバーを追加せずに回答できます。現時点では、メタツールなしでパックのエンドポイントをマウントする方法はありません。追加のスキーマが、ルーティングによる利点を上回るコンテキストを消費する場合は、複数のパックのエンドポイントではなく、フルゲートウェイに一度だけ接続してください。
または、フルPipeworxゲートウェイに接続すると、このパックだけでなく、すべてのパックのツールを直接一覧表示できます。
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
どちらのURLも同じゲートウェイと1875以上のデータソースに接続します。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも、ask_pipeworxですべてのツールにアクセスできます。
MCP クライアントがない場合:HTTPで呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/codex_pesticide_search \
-H 'Content-Type: application/json' \
-d '{"query":"glyphosate"}'
最初の呼び出しにアカウントは必要ありません。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/codex_pesticide_searchを呼び出します。ツールを探すには、{"query":"..."}を指定してPOST https://gateway.pipeworx.io/v1/tools/search_packsを呼び出します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージはローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイとの往復通信も不要です。
{
"mcpServers": {
"codex-mrl": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-codex-mrl"]
}
}
}
または、直接実行して起動を確認できます。
npx -y @pipeworx/mcp-codex-mrl
stdin/stdout 経由で MCP を使用し、initialize/tools/list/tools/call に応答します。対象はこのパックのツールのみで、上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。
ask_pipeworx を使用する
ツールを直接呼び出す代わりに、平易な英語で質問できます。これは上記のパックエンドポイントだけでなく、フルゲートウェイでも機能します。
ask_pipeworx({ question: "your question about Codex Mrl data" })
ゲートウェイが適切なツールを選び、引数を自動的に入力します。
詳細
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。