feat: add comprehensive README with installation, configuration, and usage instructions
This commit is contained in:
102
README.md
102
README.md
@@ -0,0 +1,102 @@
|
|||||||
|
# Streamlit Chat App with MCP Integration
|
||||||
|
|
||||||
|
A powerful chat application built with Streamlit that integrates with OpenAI's API and Model Context Protocol (MCP) for enhanced tool capabilities.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- 💬 Interactive chat interface with Streamlit
|
||||||
|
- 🧠 OpenAI API integration with model selection
|
||||||
|
- 🛠️ MCP server management and tool integration
|
||||||
|
- ⚡ Both streaming and non-streaming response modes
|
||||||
|
- 🔄 Automatic tool discovery and invocation
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1. Clone the repository:
|
||||||
|
```bash
|
||||||
|
git clone https://git.bhakat.dev/abhishekbhakat/mcpapp.git
|
||||||
|
cd mcpapp
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Create and activate a virtual environment:
|
||||||
|
```bash
|
||||||
|
python -m venv venv
|
||||||
|
source venv/bin/activate # On Windows use `venv\Scripts\activate`
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Install dependencies:
|
||||||
|
```bash
|
||||||
|
pip install -e .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
1. Copy the sample config files:
|
||||||
|
```bash
|
||||||
|
cp config/sample_config.ini config/config.ini
|
||||||
|
cp config/sample_mcp_config.json config/mcp_config.json
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Edit `config/config.ini` with your OpenAI API key and preferences:
|
||||||
|
```ini
|
||||||
|
[openai]
|
||||||
|
api_key = your_api_key_here
|
||||||
|
base_url = https://api.openai.com/v1
|
||||||
|
model = gpt-3.5-turbo
|
||||||
|
|
||||||
|
[dolphin-mcp]
|
||||||
|
servers_json = config/mcp_config.json
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Configure MCP servers in `config/mcp_config.json`:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"mcpServers": {
|
||||||
|
"example-server": {
|
||||||
|
"command": "uvx",
|
||||||
|
"args": ["mcp-server-example"],
|
||||||
|
"env": {
|
||||||
|
"API_KEY": "your-api-key"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Start the application:
|
||||||
|
```bash
|
||||||
|
streamlit run src/app.py
|
||||||
|
```
|
||||||
|
|
||||||
|
The app will be available at `http://localhost:8501`
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
Key components:
|
||||||
|
- `src/app.py`: Main Streamlit application
|
||||||
|
- `src/openai_client.py`: OpenAI API client with MCP integration
|
||||||
|
- `src/mcp_manager.py`: Synchronous wrapper for MCP server management
|
||||||
|
- `src/custom_mcp_client/`: Custom MCP client implementation
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
### Running Tests
|
||||||
|
```bash
|
||||||
|
pytest
|
||||||
|
```
|
||||||
|
|
||||||
|
### Code Formatting
|
||||||
|
```bash
|
||||||
|
ruff check . --fix
|
||||||
|
```
|
||||||
|
|
||||||
|
### Building
|
||||||
|
```bash
|
||||||
|
python -m build
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT License - See [LICENSE](LICENSE) for details.
|
||||||
|
|||||||
Reference in New Issue
Block a user