Bio Preferred MCP Server
by ginug
README.md
# Bio Preferred MCP Server
A Model Context Protocol (MCP) server that provides AI agents with access to Bio Preferred product data from a PostgreSQL database.
## ๐ Quick Start
### **1. Install Dependencies**
```bash
pip install -r requirements.txt
```
### **2. Start the MCP Server**
```bash
python run_server_simple.py
```
### **3. Configure Claude Desktop**
Add this configuration to Claude Desktop โ Settings โ Developer โ MCP:
```json
{
"mcpServers": {
"bio-preferred": {
"command": "/Users/ginugeorge/miniconda3/bin/python",
"args": ["/Users/ginugeorge/Report_mcp/run_server_simple.py"],
"name": "Bio Preferred Database",
"description": "Access to Bio Preferred product database with 9 products and 5 categories"
}
}
}
```
### **4. Test with Claude**
Ask Claude: *"What products are in the Bio Preferred database?"*
## ๐ Available Data
- **9 Products**: Biodegradable Soap, Plant-Based Degreaser, Soy-Based Paint, etc.
- **5 Categories**: Cleaning Agents, Lubricants, Paints & Coatings, Construction Materials, Office Supplies
- **6 Tables**: products, product_categories, category_product_map, acquisition, awards, contract_bio_entry
- **4 Acquisition Records**: Contract values and funding agencies
## ๐ ๏ธ MCP Tools
The server provides 9 tools for AI agents:
### Product & Category Tools
1. **`search_products`** - Search for products by name
2. **`list_categories`** - Show all product categories
### Contract Management Tools
3. **`list_contract_information`** - List all contract information including acquisition details, contract values, and funding agencies
4. **`list_contracts_with_reports`** - List contracts that have submitted reports with submission details and report counts
5. **`list_contracts_without_reports`** - List contracts that have NOT submitted reports yet
### Database Tools
6. **`list_tables`** - List all database tables
7. **`get_table_schema`** - Explore table structure
8. **`execute_custom_query`** - Execute custom SQL queries (read-only)
## ๐ Project Structure
```
Report_mcp/
โโโ ๐ run_server_simple.py # Main MCP server (Claude-compatible)
โโโ ๐ง database.py # Database connection and utilities
โโโ โ๏ธ config.py # Configuration management
โโโ ๐ run_server.py # Alternative server implementation
โโโ ๐ start_for_chatgpt.py # Easy startup script
โโโ ๐ฆ requirements.txt # Python dependencies
โโโ ๐ tests/ # Test suite
โ โโโ test_all.py # Run all tests
โ โโโ test_database_connection.py
โ โโโ test_local_mcp.py
โ โโโ test_mcp_tools.py
โ โโโ test_chatgpt_integration.py
โโโ ๐ docs/ # Documentation
โโโ CHATGPT_INTEGRATION.md
โโโ CHATGPT_SETUP_GUIDE.md
โโโ CONFIGURATION.md
โโโ TESTING.md
โโโ mcp_config.json
```
## ๐งช Testing
### **Run All Tests**
```bash
python tests/test_all.py
```
### **Individual Tests**
```bash
# Test database connection
python tests/test_database_connection.py
# Test MCP server locally
python tests/test_local_mcp.py
# Test ChatGPT integration
python tests/test_chatgpt_integration.py
```
## โ๏ธ Configuration
The server is pre-configured with:
- **Database**: biopref (localhost:5432)
- **User**: ginugeorge
- **Schema**: public
- **Connection Timeout**: 10 seconds
- **Query Timeout**: 30 seconds
No environment variables or additional configuration needed!
## ๐ง Database Schema
### **Products Table**
- `id` - UUID product identifier
- `name` - Product name (e.g., "Biodegradable Soap")
### **Categories Table**
- `id` - UUID category identifier
- `name` - Category name (e.g., "Cleaning Agents")
### **Additional Tables**
- `category_product_map` - Links products to categories
- `acquisition` - Contract values and funding agencies
- `awards` - Award information
- `contract_bio_entry` - Contract bio entries
## ๐ฌ Example Claude Conversations
- *"Find all soap products in the Bio Preferred database"*
- *"What categories are available?"*
- *"Show me the structure of the products table"*
- *"How many products are in each category?"*
## ๐จ Troubleshooting
### **Common Issues**
1. **"Database connection failed"**
- Ensure PostgreSQL is running: `psql -l`
- Check the `biopref` database exists
2. **"MCP server not found"**
- Verify the Python path in Claude Desktop configuration
- Test locally: `python tests/test_local_mcp.py`
3. **"No tools available"**
- Check server logs in Claude Desktop
- Run tests to verify functionality
### **Debug Commands**
```bash
# Test database connection
python tests/test_database_connection.py
# Test MCP server
python tests/test_local_mcp.py
# Check server status
ps aux | grep python
```
## ๐ Documentation
- **[Claude Desktop Setup](docs/CHATGPT_SETUP_GUIDE.md)** - Complete setup guide
- **[Configuration Details](docs/CONFIGURATION.md)** - Configuration reference
- **[Testing Guide](docs/TESTING.md)** - Comprehensive testing instructions
- **[Integration Guide](docs/CHATGPT_INTEGRATION.md)** - ChatGPT integration details
## ๐ฏ Status
โ
**Production Ready** - All tests passing, optimized for Claude Desktop
Your Bio Preferred MCP server is ready to provide AI agents with access to real product data! ๐This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues