Skip to main content

An AWS Labs Model Context Protocol (MCP) server for Bedrock Knowledge Base Retrieval

Project description

Amazon Bedrock Knowledge Base Retrieval MCP Server

MCP server for accessing Amazon Bedrock Knowledge Bases

Features

Discover knowledge bases and their data sources

  • Find and explore all available knowledge bases
  • Search for knowledge bases by name or tag
  • List data sources associated with each knowledge base

Query knowledge bases with natural language

  • Retrieve information using conversational queries
  • Get relevant passages from your knowledge bases
  • Access citation information for all results

Filter results by data source

  • Focus your queries on specific data sources
  • Include or exclude specific data sources
  • Prioritize results from specific data sources

Rerank results

  • Improve relevance of retrieval results
  • Use Amazon Bedrock reranking capabilities
  • Sort results by relevance to your query

Prerequisites

Installation Requirements

  1. Install uv from Astral or the GitHub README
  2. Install Python using uv python install 3.10

AWS Requirements

  1. AWS CLI Configuration: You must have the AWS CLI configured with credentials and an AWS_PROFILE that has access to Amazon Bedrock and Knowledge Bases
  2. Amazon Bedrock Knowledge Base: You must have at least one Amazon Bedrock Knowledge Base with the tag key mcp-multirag-kb with a value of true
  3. IAM Permissions: Your IAM role/user must have appropriate permissions to:
    • List and describe knowledge bases
    • Access data sources
    • Query knowledge bases

Reranking Requirements

If you intend to use reranking functionality, your Bedrock Knowledge Base needs additional permissions:

  1. Your IAM role must have permissions for both bedrock:Rerank and bedrock:InvokeModel actions
  2. The Amazon Bedrock Knowledge Bases service role must also have these permissions
  3. Reranking is only available in specific regions. Please refer to the official documentation for an up to date list of supported regions.
  4. Enable model access for the available reranking models in the specified region.

Controlling Reranking

Reranking can be globally enabled or disabled using the BEDROCK_KB_RERANKING_ENABLED environment variable:

  • Set to false (default): Disables reranking for all queries unless explicitly enabled
  • Set to true: Enables reranking for all queries unless explicitly disabled

The environment variable accepts various formats:

  • For enabling: 'true', '1', 'yes', or 'on' (case-insensitive)
  • For disabling: any other value or not set (default behavior)

This setting provides a global default, while individual API calls can still override it by explicitly setting the reranking parameter.

For detailed instructions on setting up knowledge bases, see:

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.bedrock-kb-retrieval-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.bedrock-kb-retrieval-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "your-profile-name",
        "AWS_REGION": "us-east-1",
        "FASTMCP_LOG_LEVEL": "ERROR",
        "KB_INCLUSION_TAG_KEY": "optional-tag-key-to-filter-kbs",
        "BEDROCK_KB_RERANKING_ENABLED": "false"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

or docker after a successful docker build -t awslabs/bedrock-kb-retrieval-mcp-server .:

# fictitious `.env` file with AWS temporary credentials
AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
  {
    "mcpServers": {
      "awslabs.bedrock-kb-retrieval-mcp-server": {
        "command": "docker",
        "args": [
          "run",
          "--rm",
          "--interactive",
          "--env",
          "FASTMCP_LOG_LEVEL=ERROR",
          "--env",
          "KB_INCLUSION_TAG_KEY=optional-tag-key-to-filter-kbs",
          "--env",
          "BEDROCK_KB_RERANKING_ENABLED=false",
          "--env",
          "AWS_REGION=us-east-1",
          "--env-file",
          "/full/path/to/file/above/.env",
          "awslabs/bedrock-kb-retrieval-mcp-server:latest"
        ],
        "env": {},
        "disabled": false,
        "autoApprove": []
      }
    }
  }

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

Limitations

  • Results with IMAGE content type are not included in the KB query response.
  • The reranking parameter requires additional permissions, Amazon Bedrock model access, and is only available in specific regions.

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

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_bedrock_kb_retrieval_mcp_server-1.0.4.tar.gz.

File metadata

File hashes

Hashes for awslabs_bedrock_kb_retrieval_mcp_server-1.0.4.tar.gz
Algorithm Hash digest
SHA256 a9e131951be682bb3430be33688d257af063ffaa27412b89e51a66b351125303
MD5 886ad7fc7c66798c9b3cfea6ceb56ee7
BLAKE2b-256 e76d034c1542b923ed15a7e6f9664241e517fd6bacd5d0706f880969449b2efb

See more details on using hashes here.

Provenance

The following attestation bundles were made for awslabs_bedrock_kb_retrieval_mcp_server-1.0.4.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_bedrock_kb_retrieval_mcp_server-1.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for awslabs_bedrock_kb_retrieval_mcp_server-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e62d56a2fc2e7fc0c881557b503d4f091a06702e2bea7d08ce3eb320c6781fdb
MD5 36cf78350541d7c735de626b339f18b4
BLAKE2b-256 9203b3ffc2d7409ac44c64090d6102f5becb45496ef3f2ca558813915aa97ce0

See more details on using hashes here.

Provenance

The following attestation bundles were made for awslabs_bedrock_kb_retrieval_mcp_server-1.0.4-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