Skip to main content

An AWS Labs Model Context Protocol (MCP) server for Amazon Rekognition

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

Amazon Rekognition MCP Server

A Model Context Protocol (MCP) server for Amazon Rekognition that enables AI assistants to analyze images using Amazon Rekognition's powerful computer vision capabilities.

Features

  • Face Collection Management: Create and manage collections of faces
  • Face Recognition: Index and search for faces in images
  • Object and Scene Detection: Identify objects, scenes, and activities in images
  • Content Moderation: Detect unsafe or inappropriate content
  • Celebrity Recognition: Identify celebrities in images
  • Face Comparison: Compare faces between images for similarity
  • Text Detection: Extract text from images

Prerequisites

  1. Install uv from Astral or the GitHub README
  2. Install Python using uv python install 3.10
  3. Set up AWS credentials with access to Amazon Rekognition
    • You need an AWS account with Amazon Rekognition enabled
    • Configure AWS credentials with aws configure or environment variables
    • Ensure your IAM role/user has permissions to use Amazon Rekognition

Installation

Cursor VS Code
Install MCP Server Install on VS Code

Configure the MCP server in your MCP client configuration (e.g., for Amazon Q Developer CLI, edit ~/.aws/amazonq/mcp.json):

{
  "mcpServers": {
    "awslabs.amazon-rekognition-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.amazon-rekognition-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "your-aws-profile",
        "AWS_REGION": "us-east-1",
        "BASE_DIR": "/path/to/base/directory",
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Windows Installation

For Windows users, the MCP server configuration format is slightly different:

{
  "mcpServers": {
    "awslabs.amazon-rekognition-mcp-server": {
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--from",
        "awslabs.amazon-rekognition-mcp-server@latest",
        "awslabs.amazon-rekognition-mcp-server.exe"
      ],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR",
        "AWS_PROFILE": "your-aws-profile",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}

or docker after a successful docker build -t awslabs/amazon-rekognition-mcp-server .:

# fictitious `.env` file with AWS temporary credentials
AWS_ACCESS_KEY_ID=<from the profile you set up>
AWS_SECRET_ACCESS_KEY=<from the profile you set up>
AWS_SESSION_TOKEN=<from the profile you set up>
AWS_REGION=<your-region>
BASE_DIR=/path/to/base/directory
{
  "mcpServers": {
    "awslabs.amazon-rekognition-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "--interactive",
        "--env-file",
        "/full/path/to/file/above/.env",
        "awslabs/amazon-rekognition-mcp-server:latest"
      ],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  }
}

NOTE: Your credentials will need to be kept refreshed from your host

Environment Variables

  • AWS_PROFILE: AWS CLI profile to use for credentials
  • AWS_REGION: AWS region to use (default: us-east-1)
  • BASE_DIR: Base directory for file operations (optional)
  • FASTMCP_LOG_LEVEL: Logging level (ERROR, WARNING, INFO, DEBUG)

AWS Authentication

The server uses the AWS profile specified in the AWS_PROFILE environment variable. If not provided, it defaults to the default credential provider chain.

"env": {
  "AWS_PROFILE": "your-aws-profile",
  "AWS_REGION": "us-east-1"
}

Make sure the AWS profile has permissions to access Amazon Rekognition services. The MCP server creates a boto3 session using the specified profile to authenticate with AWS services.

Tools

list_collections

Returns a list of collection IDs in your account.

list_collections() -> dict

Returns a dictionary containing a list of collection IDs and face model versions.

index_faces

Detects faces in an image and adds them to the specified collection.

index_faces(collection_id: str, image_path: str) -> dict

Parameters:

  • collection_id: ID of the collection to add the face to
  • image_path: Path to the image file

Returns a dictionary containing information about the indexed faces.

search_faces_by_image

Searches for faces in a collection that match a supplied face.

search_faces_by_image(collection_id: str, image_path: str) -> dict

Parameters:

  • collection_id: ID of the collection to search
  • image_path: Path to the image file

Returns a dictionary containing information about the matching faces.

detect_labels

Detects instances of real-world entities within an image.

detect_labels(image_path: str) -> dict

Parameters:

  • image_path: Path to the image file

Returns a dictionary containing detected labels and other metadata.

detect_moderation_labels

Detects unsafe content in an image.

detect_moderation_labels(image_path: str) -> dict

Parameters:

  • image_path: Path to the image file

Returns a dictionary containing detected moderation labels and other metadata.

recognize_celebrities

Recognizes celebrities in an image.

recognize_celebrities(image_path: str) -> dict

Parameters:

  • image_path: Path to the image file

Returns a dictionary containing recognized celebrities and other metadata.

compare_faces

Compares a face in the source input image with faces in the target input image.

compare_faces(source_image_path: str, target_image_path: str) -> dict

Parameters:

  • source_image_path: Path to the source image file
  • target_image_path: Path to the target image file

Returns a dictionary containing information about the face matches.

detect_text

Detects text in an image.

detect_text(image_path: str) -> dict

Parameters:

  • image_path: Path to the image file

Returns a dictionary containing detected text elements and their metadata.

Example Usage

# List available face collections
collections = await list_collections()

# Index a face in a collection
indexed_face = await index_faces(
    collection_id="my-collection",
    image_path="/path/to/face.jpg"
)

# Search for a face in a collection
matches = await search_faces_by_image(
    collection_id="my-collection",
    image_path="/path/to/face.jpg"
)

# Detect labels in an image
labels = await detect_labels(
    image_path="/path/to/image.jpg"
)

# Detect moderation labels in an image
moderation = await detect_moderation_labels(
    image_path="/path/to/image.jpg"
)

# Recognize celebrities in an image
celebrities = await recognize_celebrities(
    image_path="/path/to/celebrity.jpg"
)

# Compare faces between two images
comparison = await compare_faces(
    source_image_path="/path/to/source.jpg",
    target_image_path="/path/to/target.jpg"
)

# Detect text in an image
text = await detect_text(
    image_path="/path/to/image_with_text.jpg"
)

Security Considerations

  • Use AWS IAM roles with appropriate permissions
  • Store credentials securely
  • Use temporary credentials when possible
  • Be aware of Amazon Rekognition service quotas and limits

License

This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

awslabs_amazon_rekognition_mcp_server-0.0.6.tar.gz (78.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file awslabs_amazon_rekognition_mcp_server-0.0.6.tar.gz.

File metadata

File hashes

Hashes for awslabs_amazon_rekognition_mcp_server-0.0.6.tar.gz
Algorithm Hash digest
SHA256 f6bdaf2a734976eafc952bab9b09de624f243f9bcf4b2c97c2453eaeff04a167
MD5 d1f43d8e982b7d6ad3d111f47f39fa84
BLAKE2b-256 75e846d47468aef45100d18b7f83181c5682d1db9ac2a856be555e13fdc74554

See more details on using hashes here.

Provenance

The following attestation bundles were made for awslabs_amazon_rekognition_mcp_server-0.0.6.tar.gz:

Publisher: release.yml on awslabs/mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file awslabs_amazon_rekognition_mcp_server-0.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for awslabs_amazon_rekognition_mcp_server-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 ddac969c7ab2d7d3c5338b86cdde02b93dd7c26e3a6107917987cc3dcf2994b0
MD5 96b538842bf51eaf39e7595f8270eed9
BLAKE2b-256 b7e60ce36be3f8844a9469047b3353fdc357affeeb58675829935588ec2ab82a

See more details on using hashes here.

Provenance

The following attestation bundles were made for awslabs_amazon_rekognition_mcp_server-0.0.6-py3-none-any.whl:

Publisher: release.yml on awslabs/mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page