GitHub Stars
95
User Rating
Not Rated
Favorites
0
Views
3
Forks
24
Issues
2
Amazon Bedrock Converse API MCP Demo
This is a demo of Anthropic's open source MCP used with Amazon Bedrock Converse API. This combination allows for the MCP to be used with any of the many models supported by the Converse API.
Prerequisites
- Python 3.8+
- AWS account with Bedrock access
- AWS credentials configured locally
- SQLite database (Follow the instructions in the MCP Quick Start Guide to set this up.)
Installation
- Clone the repository:
git clone <repository-url>
cd <project-directory>
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install required packages:
pip install -r requirements.txt
Configuration
- Ensure AWS credentials are properly configured in
~/.aws/credentials
or via environment variables:
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_DEFAULT_REGION=us-west-2
- The default configuration uses:
- Model: anthropic.claude-3-5-sonnet-20241022-v2:0
- Region: us-west-2
- SQLite database path: ~/test.db
Project Structure
app.py
: Main application entry point and interactive loopconverse_agent.py
: Core agent implementation with Bedrock integrationconverse_tools.py
: Tool management and execution systemmcp_client.py
: MCP (Model Control Protocol) client implementation
Usage
- Start the application:
python app.py
- Enter prompts when prompted. The agent will:
- Process your input
- Execute any necessary tools
- Provide responses
- Maintain conversation context
- Exit the application by typing 'quit', 'exit', 'q', or using Ctrl+C
Key Components
ConverseAgent
The main agent class that:
- Manages conversation flow
- Integrates with Bedrock
- Handles tool execution
- Processes responses
Reference:
startLine: 3
endLine: 109
ConverseToolManager
Manages tool registration and execution:
- Tool registration with schemas
- Name sanitization
- Tool execution handling
Reference:
startLine: 5
endLine: 76
MCPClient
Handles communication with the MCP server:
- Tool discovery
- Tool execution
- Server connection management
Reference:
startLine: 6
endLine: 48
Security
See CONTRIBUTING for more information.
License
This library is licensed under the MIT-0 License. See the LICENSE file.
0
Followers
0
Repositories
0
Gists
0
Total Contributions
Stdio MCP Server wrapping custom Python runtime (LocalPythonExecutor) from Hugging Faces' `smolagents` framework. The runtime combines the ease of setup (compared to docker, VM, cloud runtimes) while providing safeguards and limiting operations/imports that are allowed inside the runtime.