コンテンツにスキップ
これは最新の機能を備えた最新リリースですが、長期サポートは提供されません。サポートを継続するには、新しいリリースごとにアップグレードするか、四半期ごとの安定版リリースをご利用ください。

For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.

エージェントから MCP サーバーへ

Page as Markdown

AccessPolicy を使用して、MCP サーバーのツールを呼び出せる kagent のエージェントデプロイを制御します。

始める前に

エージェントと MCP サーバーを Solo Enterprise for kagent にデプロイします。

MCP ツールへのアクセスを制限する

デフォルトでは、デプロイ済みのエージェントは MCP サーバー上のすべてのツールを呼び出せます。エージェントがランタイムで特定のツールだけにアクセスできるように制限するには、AccessPolicy リソースを作成します。適用すると、Solo Enterprise for agentregistry はそのポリシーを Kubernetes の AccessPolicy CRD として kagent に展開し、agentgateway がウェイポイントプロキシのレベルで適用します。

Note

AccessPolicy による適用は、ローカルの MCPServer リソースにのみ適用されます。Solo Enterprise for kagent ランタイムでは RemoteMCPServer をターゲットにできません。リモート MCP サーバーへのアクセスは、このポリシー機構では制限できません。

  1. エージェントが特定の MCP サーバーツールにアクセスできるようにする AccessPolicy を作成します。次の例では、myagent デプロイが mymcp MCP サーバーの example_echo ツールにアクセスできるようにします。mymcp サーバーには example_echo と example_sum の 2 つのツールがあります。example_sum は記載していないため、そのツールへのアクセスは拒否されます。

    arctl apply -f - <<EOF
    apiVersion: ar.dev/v1alpha1
    kind: AccessPolicy
    metadata:
      name: myagent-mymcp-echo
    spec:
      description: Allow myagent to invoke example_echo on mymcp.
      principals:
        - kind: Deployment
          name: myagent
      rules:
        - actions:
            - runtime:invoke
          resources:
            - kind: server
              name: mymcp
              subresources:
                - tool/example_echo
    EOF

    出力例:

    ✓ AccessPolicy/myagent-mymcp-echo created
    
    フィールド説明
    spec.principals[].kind呼び出し元のエージェントデプロイを指定するには Deployment に設定します。
    spec.principals[].nameこのポリシーがアウトバウンドアクセスを許可するエージェントデプロイの名前。
    spec.rules[].actions認可する操作。ツールの呼び出しを許可するには runtime:invoke を設定します。
    spec.rules[].resources[].kindターゲットの種類。カタログの MCP サーバーには server を使用します。
    spec.rules[].resources[].nameターゲットの MCP サーバーの名前。すべてのサーバーに一致させるには "*" を使用します。
    spec.rules[].resources[].subresources任意。エージェントが呼び出せるツール名のリスト。tool/ を接頭辞として指定します。省略すると、ターゲットサーバー上のすべてのツールが許可されます。
  2. ポリシーが Kubernetes の AccessPolicy CRD として kagent に伝播されたことを確認します。Solo Enterprise for agentregistry は、展開した各 CRD に ar-<policyName>-r<ruleIndex>-res<resourceIndex> のパターンで名前を付けます。

    kubectl -n kagent get accesspolicy ar-myagent-mymcp-echo-r0-res0 -o yaml

    Note

    CRD が表示されるまで数秒かかる場合があります。展開は、ポリシーがコミットされた後に非同期で実行されます。

  3. UI で Instances ビューを開き、myagent エージェントを選択します。

  4. Agent Details カードで Open Chat をクリックします。

  5. エージェントとチャットし、何ができるか尋ねます。Enter を押してエージェントの応答を待ちます。MCP サーバーの example_echo ツールがエージェントから一覧表示されることを確認します。example_echo だけにアクセスを許可したため、example_sum MCP ツールは表示されません。

その他の構成

その他の一般的な構成例を確認します。

サーバー上のすべてのツールを許可する

myagent エージェントが mymcp MCP サーバー上のすべてのツールを呼び出せるようにし、他の MCP サーバーへのアクセスは制限します。

arctl apply -f- <<EOF
apiVersion: ar.dev/v1alpha1
kind: AccessPolicy
metadata:
  name: myagent-mymcp-all
spec:
  description: Allow myagent to invoke all tools on mymcp.
  principals:
    - kind: Deployment
      name: myagent
  rules:
    - actions:
        - runtime:invoke
      resources:
        - kind: server
          name: mymcp
EOF

すべてのサーバー上のすべてのツールを許可する

myagent エージェントがすべての MCP サーバー上のすべてのツールを呼び出せるようにします。

arctl apply -f- <<EOF
apiVersion: ar.dev/v1alpha1
kind: AccessPolicy
metadata:
  name: myagent-all-servers
spec:
  description: Allow myagent to invoke all tools on all MCP servers.
  principals:
    - kind: Deployment
      name: myagent
  rules:
    - actions:
        - runtime:invoke
      resources:
        - kind: server
          name: "*"
EOF