AWS Bedrock Knowledge Base Retrieval MCP server

Bridge to access Amazon Bedrock Knowledge Bases.
Back to servers
Provider
AWS
Release date
Apr 04, 2025
Language
Python
Package
Stats
2.6K stars

The Amazon Bedrock Knowledge Base MCP Server provides a convenient interface to access and query your Amazon Bedrock Knowledge Bases using the Model Context Protocol. This server allows you to discover knowledge bases, query them with natural language, filter results, and enhance relevance through reranking.

Prerequisites

Installation Requirements

Before you begin, you'll need:

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

AWS Requirements

  1. AWS CLI Configuration: AWS CLI configured with credentials and an AWS_PROFILE that has access to Amazon Bedrock and Knowledge Bases
  2. Amazon Bedrock Knowledge Base: 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 permissions to:
    • List and describe knowledge bases
    • Access data sources
    • Query knowledge bases

Reranking Requirements

For reranking functionality:

  1. Your IAM role needs permissions for both bedrock:Rerank and bedrock:InvokeModel actions
  2. The Amazon Bedrock Knowledge Bases service role must have these permissions
  3. Reranking is only available in specific regions - check the official documentation for supported regions
  4. Enable model access for available reranking models in your region

Installation and Setup

You can set up the MCP server in different ways:

Using UV

Create a configuration file for your MCP client (e.g., for Amazon Q Developer CLI, use ~/.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"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Using Docker

First, build the Docker image:

docker build -t awslabs/bedrock-kb-retrieval-mcp-server .

Create an environment file with your AWS credentials:

AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk

Then configure your MCP client:

{
  "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",
        "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: When using Docker, you'll need to ensure your AWS credentials stay refreshed on the host machine.

Usage Features

Knowledge Base Discovery

With this MCP server, you can:

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

Natural Language Querying

You can interact with your knowledge bases by:

  • Using conversational queries to retrieve information
  • Getting relevant passages from your knowledge bases
  • Accessing citation information for all results

Result Filtering

Refine your search results by:

  • Focusing queries on specific data sources
  • Including or excluding specific data sources
  • Prioritizing results from specific data sources

Result Reranking

Improve result relevance by:

  • Leveraging Amazon Bedrock reranking capabilities
  • Sorting results by relevance to your query

Limitations

Be aware of these limitations when using the server:

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

How to add this MCP server to Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "cursor-rules-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "cursor-rules-mcp"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later