# 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
[](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