Skip to main content
Glama
ginug

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! ๐ŸŽ‰