ブログに戻る
セキュリティ

MCP Veille:推測ではなくツールでアシスタントを安全にする

Josselin Liebe
Josselin Liebe

AIアシスタントはスタックの説明やコード提案には向いていますが、メールが捨てアドかどうか、IPがリスクかどうか、IBANが妥当かどうかといった判断となると、モデル単体はブラックボックスのままです。もっともらしく説明しながら事実を誤ることがあります。Model Context Protocol(MCP) を使うと、アシスタントを公式ツール——ここではバックエンドと同じVeille API——に接続でき、即席の文章ではなく検証されたデータに基づいて答えられます。

2文で:MCPとは?

MCPはオープンプロトコルです。クライアント(Cursor、Claude Code、Gemini CLI、OpenAIの開発者モードなど)が、型付きパラメータを持つツール関数をアシスタントに公開します。アシスタントが呼び出しタイミングを決め、MCPサーバーが構造化された応答を返します。Veilleでは各ツールがREST APIの操作に対応し、通常のHTTP呼び出しと同じ挙動・同じ課金です。詳しくは MCPドキュメント を参照してください。

セキュリティ面のメリット

リスクに関する幻覚(ハルシネーション)を減らす。 ツールがないと、モデルはドメインが怪しいと推測したり、根拠なくアドレスを分類したりします。VeilleのMCPサーバー(https://mcp.veille.io/)があれば、アシスタントはパイプラインと同じインテリジェンス(メール検証、IPレピュテーション、IBANチェックなど)を問い合わせます。判断の根拠は生成テキストではなくAPIレスポンスです。

開発・サポート・本番の整合。 プロダクトがすでにサーバー側でVeilleを使っているなら、同じサービスをMCP経由で繋げばズレが減ります。チャット内の「なんとなくのルール」が本番コードと矛盾しにくくなります。

APIキーは本番のインテグレーションと同様に。 推奨は x-api-key ヘッダー(API Keys)、環境変数、READMEのプレースホルダーです。リポジトリに秘密をコミットしないこと。Veilleのベストプラクティス でも、環境ごとにキーを分ける(dev、staging、prod)、定期的にローテーションする、ブラウザにキーを出さないことが説明されています。機密性の高い呼び出しはサーバー側かローカルのツール文脈に留め、公開Webページには載せません。

追跡可能性。 REST APIと同様、利用量とクレジットを対応づけられます。アシスタントがソースを「捏造」するのではなく、ポリシーと課金を自分たちで管理するエンドポイントを呼びます。

信頼性:プロンプトだけより確実な理由

観点 Veilleツールなしのアシスタント Veille MCPありのアシスタント
真実の源泉 モデルの文章 構造化されたAPI応答
自社アプリとの一貫性 ばらつきあり 同じエンドポイントに整合
保守 手でメンテしたプロンプト プロダクトに合わせて更新されるツール
エラー もっともらしさと区別しにくい 明示的なHTTPコードとスキーマ(エラーハンドリングも参照)

サーバーは文書化されたURLで Streamable HTTP を使います。ブラウザで開くWebページではなく、MCPクライアント向けのエンドポイントです。スクレイピングや不安定なコピペではなく、明示的な統合であることがはっきりします。

具体的なユースケース

  • チケットやログのレビュー: アシスタントがアクションを提案する前に、VeilleのシグナルでアドレスやIPを補強する。
  • 開発者オンボーディング: APIドキュメントと同じツールを使って、不正や検証について質問する。
  • プロダクト検討: リスク閾値や捨てメール時の挙動など、架空の例ではなく実際の応答でシナリオを試す。

セットアップ(要約)

公式ドキュメントでは Claude CodeCursor/ で終わる url とキー用の headers を持つ mcp.json)、Gemini CLI、OpenAI開発者モードを扱っています。Veille MCPサーバー用のURL、有効なキー、リポジトリに秘密を置かない・環境ごとにキーを分けるといった通常の習慣が前提です。

まとめると、MCPはセキュリティ方針の代わりにはなりませんが、アシスタントにAPIと同じレバーを渡すことで人間とモデルのミスしやすさを減らします。分析にはより信頼性があり、本番とはより整合し、Veilleで文書化されたキーと利用状況の追跡でより制御しやすくなります。