2026/7/22

AgentCore Gatewayで作成したMCPをKiro Webから呼び出す

Amazon Bedrock AgentCore Gatewayは、中央集約型の MCP サーバーを構築するためのAWSのマネージドサービスです。エージェントからMCP経由でLambdaやREST APIを実行する機能や、別のMCPサーバーを配置し、MCPの登録・認証を集約させる機能があります。

Kiro Webはブラウザ上から操作できるKiroです。指示したタスクはクラウド上のKiroエージェントがこなしてくれます。Automation機能も2026年6月にリリースされたので、定期的にエージェントにタスクを実行してもらうこともできます。

Kiro Webでは、設定画面からMCPを設定することができます。今回は自分で構築したAgentCore GatewayのMCPをKiro Webから呼び出してみます。

2026/7/23追記
当初Kiro WebのAutomation機能についても言及していましたが、確認したところ現在はAutomationからMCPを呼び出すことができなかったため、記述を修正しています。

認証

今回構築したAgentCore Gatewayは、個人開発したwebサービスのDBを検索し、データを取得できる機能を持っています。

AgentCore Gatewayの認証にはIAM、Cognito、JWTなどが使えますが、今回は同じAWS内での呼び出しとなるため、IAM認証を付与しました。

this.gateway = new bedrockagentcore.Gateway(this, 'McpGateway', {
  gatewayName: `sample-gateway-${suffix}`,
  description: 'awesome MCP',
  protocolConfiguration: bedrockagentcore.GatewayProtocol.mcp({
    supportedVersions: [bedrockagentcore.MCPProtocolVersion.MCP_2025_03_26],
    searchType: bedrockagentcore.McpGatewaySearchType.SEMANTIC,
    instructions: '...',
  }),
  authorizerConfiguration: bedrockagentcore.GatewayAuthorizer.usingAwsIam(),
  exceptionLevel: isProd ? undefined : bedrockagentcore.GatewayExceptionLevel.DEBUG,
});

Kiro Webで利用するIAMロール

少し前の記事だとIAMユーザーを作成してアクセス情報をSecretsへ設定する方法なども出てきますが、現在のKiro Webでは、エージェントサンドボックスで利用されるIAM Roleを設定することができます。

// IAM role for Kiro agent to invoke the gateway
const kiroAgentRole = new iam.Role(this, 'KiroAgentGatewayRole', {
  roleName: `kiro-agent-agentcore-gateway-${suffix}`,
  assumedBy: new iam.ServicePrincipal('q.amazonaws.com'),
  description: 'IAM role for Kiro agent to invoke the AgentCore Gateway',
});

// Override the trust policy with exact policy required by Kiro
const cfnRole = kiroAgentRole.node.defaultChild as iam.CfnRole;
cfnRole.addPropertyOverride('AssumeRolePolicyDocument', {
  Version: '2012-10-17',
  Statement: [
    {
      Effect: 'Allow',
      Principal: { Service: 'q.amazonaws.com' },
      Action: ['sts:AssumeRole', 'sts:SetSourceIdentity'],
      Condition: {
        StringEquals: {
          'sts:SourceIdentity': 'xxx',
        },
      },
    },
    {
      Effect: 'Allow',
      Principal: { Service: 'q.amazonaws.com' },
      Action: 'sts:TagSession',
      Condition: {
        'ForAllValues:StringEquals': {
          'aws:TagKeys': ['GroupIds', 'KiroSessionId'],
        },
      },
    },
  ],
});

kiroAgentRole.addToPolicy(
  new iam.PolicyStatement({
    actions: [
      'bedrock-agentcore:InvokeGateway',
    ],
    resources: [this.gateway.gatewayArn],
  }),
);

sts:SourceIdentity に設定する値は、Kiro WebのIAMロール設定画面の信頼ポリシーサンプルから確認できます。

ここで作成したIAMロールをKiro Webの設定画面で指定することで、サンドボックスからIAM認証を通すことができます。

Kiro WebでのMCP設定

2026/7/22現在、Kiro WebではリモートMCPサーバーを設定できません。例えばAWS Knowledge MCP Serverへ接続する場合、fastmcp等を経由する必要があります。

Kiro WebからAgentCore GatewayのMCPサーバーを実行する場合、mcp-proxy-for-awsを利用します。

{
  "mcpServers": {
    "aws-knowledge-mcp-server": {
      "command": "uvx",
      "args": [
        "fastmcp",
        "run",
        "https://knowledge-mcp.global.api.aws"
      ]
    },
    "sample-mcp": {
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws==1.6.3",
        "https://xxx.gateway.bedrock-agentcore.ap-northeast-1.amazonaws.com/mcp"
      ]
    }
  }
}

上記のように設定することで、Kiro WebからもAgentCore GatewayのMCP機能にアクセスすることができます。

ネットワーク設定

設定画面から設定したMCPサーバーへ接続する場合、ネットワーク設定が Open Internet である必要があります。

ドメイン単位での接続許可も試してみましたが、ほかのモードだとそもそもMCPの設定自体がsandboxに連携されないようです。

まとめ

Kiroは開発者向けのAIツールですので、特に開発と関係ないタスクはAgentCore RuntimeやAgentCore Harnessなどを使って別途実装することを想定していそうです。ただ、デザインシステムなど独自のMCPを構築している場合は、上記の設定を行うことでKiroから呼び出すことも可能です。

MCP機能を利用するためには一部気をつけるべき点もありますが活用可能です。ぜひ使ってみてください。

Share with Hatena Bookmark

関連記事