Skip to main content
Glama
AbhiGit-Trimble

Construction Cost Calculator MCP

README.md
# Construction Cost Calculator MCP Server

A no-auth MCP (Model Context Protocol) server that provides construction cost estimation tools using data from a public Google Sheet.

## Features

- **No Authentication Required**: Reads from a publicly accessible Google Sheet
- **5 Tools Available**:
  - `list_all_items` - Get all construction items
  - `get_item` - Get details for a specific item by code
  - `search_items` - Search items by keyword
  - `get_items_by_category` - Filter items by category
  - `calculate_cost` - Calculate total project cost with quantities

## Data Source

The server fetches construction cost data from this Google Sheet:
[Construction Cost Database](https://docs.google.com/spreadsheets/d/1laH5l1FjwWC5HXLp8xkG1eolwScKHIlxB6PohBWQjh0/edit?gid=0#gid=0)

Data includes:
- Concrete (slabs, footings, walls, columns, stairs)
- Framing (walls, floors, roofs, beams)
- Finishes (drywall, paint, flooring, tile)
- Electrical (wiring, panels, outlets, fixtures)
- Plumbing (pipes, fixtures, water heaters)
- HVAC (systems, ductwork)
- Roofing (materials, installation)
- Exterior (siding, windows, doors)

## Local Development

### Prerequisites

- Python 3.11+
- pip

### Setup

1. Clone the repository:
```bash
cd construct_cost_calc
```

2. Create a virtual environment:
```bash
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
```

3. Install dependencies:
```bash
pip install -r requirements.txt
```

4. Run the server:
```bash
python server.py
```

The server will start on `http://localhost:8000` with SSE transport.

### Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `GOOGLE_SHEET_ID` | `1laH5l1FjwWC5HXLp8xkG1eolwScKHIlxB6PohBWQjh0` | Google Sheet ID |
| `SHEET_GID` | `0` | Sheet tab GID |
| `CACHE_TTL_SECONDS` | `300` | Cache duration (5 min) |
| `DEFAULT_LABOR_RATE` | `75.0` | Default $/hour rate |

## Deploy to Render.com

### One-Click Deploy

[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy)

### Manual Deploy

1. Push this repository to GitHub
2. Go to [Render Dashboard](https://dashboard.render.com/)
3. Click **New** → **Blueprint**
4. Connect your repository
5. Render will use `render.yaml` to configure the service

### After Deployment

Your MCP server will be available at:
```
https://your-service-name.onrender.com/sse
```

## Connect to Agenti AI Platform

Add the MCP server to your Agenti AI configuration:

```json
{
  "mcpServers": {
    "construction-cost": {
      "url": "https://your-service-name.onrender.com/sse"
    }
  }
}
```

## Tool Usage Examples

### List All Items
```
Tool: list_all_items
Parameters: none
```

### Get Specific Item
```
Tool: get_item
Parameters: {"item_code": "concrete_slab_4000psi"}
```

### Search Items
```
Tool: search_items
Parameters: {"query": "drywall"}
```

### Get Items by Category
```
Tool: get_items_by_category
Parameters: {"category": "concrete"}
```

### Calculate Cost
```
Tool: calculate_cost
Parameters: {
  "items": [
    {"item_code": "concrete_slab_4000psi", "quantity": 2000},
    {"item_code": "framing_wall_2x4", "quantity": 500},
    {"item_code": "drywall_standard_12", "quantity": 3000}
  ],
  "labor_rate": 80.0
}
```

## Cost Calculation Formula

```
Item Cost = (Material Cost × Quantity) + (Labor Hours × Quantity × Labor Rate)
Total Cost = Sum of all Item Costs
```

## License

MIT