Gen AI Lyrics Search Agent
by tehmenghai
README.md
# Gen AI Lyrics Search Agent
A generative AI agent that can search for song lyrics across the web and return results in a specific format for mobile apps. Built with Model Context Protocol (MCP) for standardized tool integration.
## Features
- š Web-based lyrics search across multiple sources
- š¤ Generative AI-powered conversation interface
- š MCP-compliant tool integration
- š FastAPI-based REST API
- š Authentication and rate limiting
- š Performance monitoring and analytics
## Prerequisites
- Python 3.10 or higher
- Poetry for dependency management
- Docker (optional)
## Setup
1. Clone the repository:
```bash
git clone <repository-url>
cd lyrics-search-agent
```
2. Install dependencies using Poetry:
```bash
poetry install
```
3. Set up environment variables:
```bash
cp .env.example .env
# Edit .env with your configuration
```
4. Run the application:
```bash
poetry run uvicorn app.main:app --reload
```
Or using Docker:
```bash
docker build -t lyrics-search-agent .
docker run -p 8000:8000 lyrics-search-agent
```
## API Documentation
Once the application is running, visit:
- API documentation: http://localhost:8000/docs
- ReDoc alternative: http://localhost:8000/redoc
### Key Endpoints
- `GET /`: Service information
- `POST /search`: Search for lyrics
- `GET /tools`: List available tools
## Development
### Project Structure
```
app/
āāā __init__.py
āāā main.py
āāā mcp/
ā āāā __init__.py
ā āāā protocol.py
āāā tools/
āāā web_search.py
```
### Adding New Tools
1. Create a new tool class in `app/tools/`
2. Implement the `BaseTool` interface
3. Register the tool in `app/main.py`
## Testing
Run tests using pytest:
```bash
poetry run pytest
```
## Contributing
1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Push to the branch
5. Create a Pull Request
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Acknowledgments
- OpenAI/Anthropic for LLM capabilities
- FastAPI for the web framework
- LangChain for LLM orchestration This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues