TypeScript MCP Server on Amazon Bedrock AgentCore

Overview

This tutorial demonstrates how to host a TypeScript-based MCP (Model Context Protocol) server using the Amazon Bedrock AgentCore runtime environment.

Tutorial Details

Information Details
Tutorial type Hosting typescript MCP server
Tool type MCP server
Tutorial components Hosting typescript MCP server on AgentCore Runtime
Tutorial vertical Cross-vertical
Example complexity Easy
SDK used Anthropic's typescript SDK for MCP

Prerequisites

  • Node.js v22 or later
  • Docker (for containerization)
  • Amazon ECR (Elastic Container Registry) for storing Docker images
  • AWS account with access to Bedrock AgentCore

AgentCore Runtime Service Contract

Refer to the official service contract documentation.

Runtime configuration:

  • Host: 0.0.0.0
  • Port: 8000
  • Transport: Stateless streamable-http
  • Endpoint Path: POST /mcp

Local Development

  1. Install dependencies
npm install
  1. Set up AWS credentials
aws configure
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_REGION=us-east-1
  1. Start server
npm run start
  1. Test locally using MCP inspector
npx @modelcontextprotocol/inspector

Docker Deployment

  1. Create ECR Repository
aws ecr create-repository --repository-name mcp-server --region us-east-1
  1. Build and Push Image to ECR
# Get login token
aws ecr get-login-password --region us-east-1 | \
  docker login --username AWS --password-stdin [account-id].dkr.ecr.us-east-1.amazonaws.com

docker buildx --platform linux/arm64 \
  -t [account-id].dkr.ecr.us-east-1.amazonaws.com/mcp-server:latest --push .
  1. Deploy to Bedrock AgentCore

    • Go to AWS Console → Bedrock → AgentCore → Create Agent
    • Choose MCP as the protocol
    • Configure Agent Runtime:
      • Image URI: [account-id].dkr.ecr.us-east-1.amazonaws.com/mcp-server:latest
      • Set IAM Permissions for Bedrock model access
      • Deploy and test in the Agent Sandbox
  2. Construct the Encoded ARN MCP URL

echo "agent_arn" | sed 's/:/%3A/g; s/\//%2F/g'
https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{encoded_arn}/invocations?qualifier=DEFAULT
  1. Use the MCP url with MCP inspector.

References