AWS Bedrock KB Retrieval
Visit ProjectQuery Amazon Bedrock Knowledge Bases with natural language to retrieve relevant information.
Visit ProjectCategory
Tags
What is AWS Bedrock KB Retrieval?
AWS Bedrock KB Retrieval is a system for querying Amazon Bedrock Knowledge Bases using natural language to retrieve relevant information from multiple data sources.
How to use AWS Bedrock KB Retrieval?
To use AWS Bedrock KB Retrieval:
- Install the required dependencies (Python 3.10, uv)
- Configure AWS credentials with proper permissions
- Set up knowledge bases with specific tags
- Either run via uvx or Docker container
- Query knowledge bases using natural language
- Optionally enable reranking for improved relevance
Key features of AWS Bedrock KB Retrieval
- Discovery of available knowledge bases and data sources
- Natural language querying of knowledge bases with citation
- Data source filtering capabilities
- Optional result reranking for improved relevance
Use cases of AWS Bedrock KB Retrieval
- Enterprise search across company documentation
- Customer support knowledge base access
- Content management system integration
- Research data retrieval from institutional repositories
- Product documentation search
FAQ about AWS Bedrock KB Retrieval
- What permissions are required?
IAM permissions for listing/describing knowledge bases, accessing data sources, and querying knowledge bases. Additional permissions needed for reranking.
- Which regions support reranking?
Specific regions only - see official documentation for up-to-date list.
- Can I filter results by data source?
Yes, you can include or exclude specific data sources in your queries.
- What types of content are excluded from results?
Results with IMAGE content type are currently excluded from responses.
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
- Install
uv
from Astral or the GitHub README - Install Python using
uv python install 3.10
AWS Requirements
- 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
- Amazon Bedrock Knowledge Base: You must have at least one Amazon Bedrock Knowledge Base with the tag key
mcp-multirag-kb
with a value oftrue
- 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:
- Your IAM role must have permissions for both
bedrock:Rerank
andbedrock:InvokeModel
actions - The Amazon Bedrock Knowledge Bases service role must also have these permissions
- Reranking is only available in specific regions. Please refer to the official documentation for an up to date list of supported regions.
- 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:
- Create a knowledge base
- Managing permissions for Amazon Bedrock knowledge bases
- Permissions for reranking in Amazon Bedrock
Installation
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.