A command-line agent that uses the Model Context Protocol (MCP) to access external tools and provide helpful responses.
This agent connects to MCP-compatible servers, discovers available tools, and uses them to respond to user queries. It leverages the Opper SDK for AI-powered reasoning and response generation.
- Connects to MCP servers running in Docker containers
- Automatically discovers available tools from connected servers
- Uses AI to determine when and how to use tools based on user input
- Generates natural language responses incorporating tool results
- Provides source references when applicable
- Enhanced terminal output using Rich library
- Clone the repository
- Install dependencies:
pip install -r requirements.txt
The agent can be configured with different MCP servers and tools by modifying the server_configs list in the code. Each server configuration requires:
image: The Docker image name for the MCP serverenv: Environment variables needed by the server (e.g., API keys)
Example code has Brave Search as a tool.
Follow these steps to add Brave Search as a tool:
- Clone the MCP server repository: https://github.com/modelcontextprotocol/
- Run
docker build -t mcp/brave-search:latest -f src/brave-search/Dockerfile . - Signup for a Brave Search API key: https://api-dashboard.search.brave.com/login
- It's free but you need to add a credit card to your account
- Add the API key to the
BRAVE_SEARCH_API_KEYvariable in the code - Start the agent with the instructions below (it will run and execute the docker container)
For Agent reasoning, example uses Opper API:
- Signup for an Opper account: https://opper.com/ (it's free!)
- Create an API key
- Add the API key to the
OPPER_API_KEYenvironment variable in the code
Run the agent from the command line:
python cli.py
Once running, you can interact with the agent through the command line:
- Type your question or request
- The agent will determine if tools are needed to answer
- If tools are used, the agent will incorporate their results in the response
- Source references will be displayed when available
- Type 'quit', 'exit', or 'q' to end the session
cli.py: Command-line interface with Rich formattingagent.py: Core agent implementationschemas.py: Data models/schemas used by the applicationrequirements.txt: Dependencies for the project
