APEX Signals × Amazon Bedrock AgentCore

Wire 30 AI trading signals into your Bedrock agent in 5 minutes

MCP / STREAMABLE_HTTP x402 · USDC on Base 30 live signals $0.05–$10.00 / call

What Your Agent Gets

Every signal is a pay-per-call API endpoint gated by the x402 micropayment protocol. Your Bedrock agent pays in USDC on Base mainnet — no API keys, no subscriptions, no rate limits.

Signal Price What it returns
apex_alpha_score ★ $10.00/call 8-pillar composite score 0-100. Returns DEPLOY/WAIT/REDUCE/AVOID with full component breakdown — replaces 7 separate calls.
grid_health_score $5.00/call Live trading telemetry from Kraken, Coinbase, and Hyperliquid grid bots. Composite health score, cycle velocity, PnL/24h.
regime_confluence $4.00/call BTC + ETH + SOL regime agreement score. STRONG confluence (3/3) = highest-conviction autonomous entry signal.
cross_exchange_spread $3.00/call Real-time Kraken vs Hyperliquid arb spread for BTC and ETH. Net spread %, direction, viability vs 0.35% threshold.
liquidation_pressure $3.00/call HL cascade risk score 0-100 for BTC/ETH/SOL. LONG_SQUEEZE / SHORT_SQUEEZE / BALANCED. Fires cascade_alert at risk ≥ 50.

Prerequisites

Option A: Python (boto3)

Python
Python · boto3
import boto3

client = boto3.client(
    'bedrock-agentcore-control',
    region_name='us-east-1'
)

# Step 1: Create the gateway
gateway = client.create_gateway(
    name='apex-signals-gateway',
    description='APEX Runner crypto trading signals via x402',
    roleArn='<YOUR_GATEWAY_ROLE_ARN>',
    protocolType='MCP',
    authorizerType='NONE'
)
gateway_id = gateway['gatewayId']
print(f"Gateway created: {gateway_id}")

# Step 2: Add APEX Signals as MCP target
target = client.create_gateway_target(
    gatewayIdentifier=gateway_id,
    name='apex-signals',
    description='30 AI crypto trading signals — pay per call via x402 USDC on Base',
    targetConfiguration={
        'mcp': {
            'serverConfig': {
                'url': 'https://apexrunner.ai/mcp',
                'transport': 'STREAMABLE_HTTP'
            },
            'listingMode': 'DEFAULT'
        }
    }
)
print(f"Target ID: {target['targetId']}")
print(f"Your endpoint: https://{gateway_id}.gateway.us-east-1.amazonaws.com/mcp")
NoAuth is correct — APEX handles payment via x402 micropayments (USDC on Base mainnet) per tool call. Your agent wallet needs USDC on Base to call signals. No API key or subscription is needed.

Option B: AWS CLI

Bash
Bash · AWS CLI
# Step 1: Create the gateway
GATEWAY_ID=$(aws bedrock-agentcore-control create-gateway \
  --name apex-signals-gateway \
  --description "APEX Runner crypto trading signals via x402" \
  --role-arn <YOUR_GATEWAY_ROLE_ARN> \
  --protocol-type MCP \
  --authorizer-type NONE \
  --region us-east-1 \
  --query 'gatewayId' \
  --output text)

echo "Gateway ID: $GATEWAY_ID"

# Step 2: Add APEX Signals as MCP target
aws bedrock-agentcore-control create-gateway-target \
  --gateway-identifier "$GATEWAY_ID" \
  --name apex-signals \
  --description "30 AI crypto trading signals — pay per call via x402 USDC on Base" \
  --target-configuration '{
    "mcp": {
      "serverConfig": {
        "url": "https://apexrunner.ai/mcp",
        "transport": "STREAMABLE_HTTP"
      },
      "listingMode": "DEFAULT"
    }
  }' \
  --region us-east-1

echo "Endpoint: https://$GATEWAY_ID.gateway.us-east-1.amazonaws.com/mcp"

Sync When New Signals Launch

APEX's MCP endpoint serves the tool list dynamically from catalog.json. When new signals go live, run SynchronizeGatewayTargets to add them to your gateway automatically.

Python · boto3
# Sync when new signals launch — picks up additions from catalog.json
client.synchronize_gateway_targets(
    gatewayIdentifier=gateway_id,
)
print("Gateway targets synchronized — new signals now available")
3 exotic signals launching soon:
 · Regime Transition Probability — $15/call
 · Cross-Asset Contagion — $15/call
 · APEX Evolution Insight — $25/call

Run SynchronizeGatewayTargets after launch to add them to your gateway automatically.

What Your Agent Sees (tools/list)

After gateway creation, your agent issues a tools/list call and receives the full signal catalog. Sample response (abridged):

JSON · tools/list response
{
  "tools": [
    {
      "name": "apex_alpha_score",
      "description": "8-pillar composite trading signal",
      "price": "$10.00/call"
    },
    {
      "name": "regime_confluence",
      "description": "Cross-exchange regime confirmation",
      "price": "$4.00/call"
    },
    {
      "name": "fear_greed",
      "description": "Real-time Fear and Greed index",
      "price": "$0.05/call"
    }
    // ... 27 more tools
  ],
  "total": "30 tools",
  "payment": "x402 USDC on Base mainnet per tool call"
}

Your agent calls any tool by name. APEX verifies the x402 payment and returns the signal JSON. Unpaid calls return HTTP 402 with payment terms — the x402 client library handles the round-trip automatically.

IAM Role for the Gateway

The roleArn parameter requires an IAM role that trusts bedrock-agentcore.amazonaws.com and has the minimum permissions to manage gateway resources.

Step 1 — Trust policy (who can assume the role)

JSON · Trust Policy
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "bedrock-agentcore.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Step 2 — Permission policy (what the role can do)

JSON · Permission Policy
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "bedrock-agentcore:CreateGateway",
        "bedrock-agentcore:CreateGatewayTarget",
        "bedrock-agentcore:GetGateway",
        "bedrock-agentcore:GetGatewayTarget",
        "bedrock-agentcore:SynchronizeGatewayTargets"
      ],
      "Resource": "*"
    }
  ]
}

Step 3 — Create the role via CLI

Bash · AWS CLI
# Create the role with the trust policy
aws iam create-role \
  --role-name ApexSignalsGatewayRole \
  --assume-role-policy-document file://trust-policy.json

# Attach the permission policy
aws iam put-role-policy \
  --role-name ApexSignalsGatewayRole \
  --policy-name ApexSignalsGatewayPolicy \
  --policy-document file://permission-policy.json

# Get the ARN to use in create_gateway()
aws iam get-role \
  --role-name ApexSignalsGatewayRole \
  --query 'Role.Arn' \
  --output text

Links & Resources