CC逆引きリファレンス

MCP でリソースを提供したい

4. 権限・セキュリティ

コマンド / 機能

server.resource() でデータソースを定義

Claude がアクセスできるデータを公開

設定例

// リソース(データソース)の定義
server.resource(
  "config://app",
  "アプリケーション設定",
  async () => {
    const config = await fs.readFile("config.json", "utf-8");
    return {
      contents: [{
        uri: "config://app",
        mimeType: "application/json",
        text: config
      }]
    };
  }
);

// 動的リソース(パラメータ付き)
server.resource(
  "user://{userId}",
  "ユーザー情報",
  async ({ userId }) => {
    const user = await db.getUser(userId);
    return {
      contents: [{
        uri: `user://${userId}`,
        mimeType: "application/json",
        text: JSON.stringify(user)
      }]
    };
  }
);

こんな時に使う

  • 設定ファイルを Claude に読ませたい時
  • データベースの情報を提供したい時
  • 動的なデータを参照可能にしたい時

使い方

  1. 1server.resource() でリソースを定義
  2. 2URI スキーマは任意(config://, user:// など)
  3. 3{param} でURIパラメータを受け取れる
  4. 4mimeType でデータ形式を指定

Tips

  • ツールは「アクション」、リソースは「データ」
  • リソースは Claude が必要に応じて参照する
  • 大きなデータは分割して提供するのが効率的