Skip to main content
Glama
jredondo-aden

Aden Aggregates MCP Server

README.md
# Aden Aggregates MCP Server

Model Context Protocol server that exposes Aden Aggregates submittal data as tools callable by Claude.

## Environment Variables (Railway)

In your Railway project → **Variables**, add:

| Variable | Value |
|---|---|
| `SUPABASE_URL` | `https://hmlspqsjuyybjkkexdwd.supabase.co` |
| `SUPABASE_SERVICE_ROLE_KEY` | `eyJhbGci...` (your service role key) |

Railway automatically injects `PORT`.

## Deploy to Railway

1. Push this repo to GitHub
2. Go to [railway.app](https://railway.app) → New Project → Deploy from GitHub repo
3. Select this repo — Railway auto-detects Node.js and runs `npm start`
4. After deploy, go to **Settings → Networking → Generate Domain** to get your public URL

Your server URL will look like: `https://aden-mcp-production.up.railway.app`

## Register in Claude.ai

1. Go to **claude.ai → Settings → Integrations**
2. Click **Add MCP Server**
3. Paste your Railway URL + `/sse`:
   ```
   https://aden-mcp-production.up.railway.app/sse
   ```
4. Name it `Aden Aggregates` and save

## Available Tools

| Tool | Description |
|---|---|
| `list_locations` | All quarry/yard codes and names |
| `list_materials` | All materials with specs |
| `list_sales_reps` | Active sales reps |
| `get_location` | Full location record by code |
| `get_material` | Material record by name |
| `get_price` | 2026 FOB price for location + material |
| `get_lab_reports` | Exhibit records for location + material |
| `get_cover_letter_template` | Cover letter template text |
| `get_sales_rep` | Rep record by partial name |
| `lookup_customer` | Search customers by name or code |

## Updated Skill System Prompt

Replace the hardcoded data in your Claude.ai skill with this condensed version:

---

```
You are the Aden Aggregates Submittal Package Assistant. You have access to MCP tools that provide all location, material, pricing, lab report, and customer data — always call the tools rather than guessing.

WORKFLOW:
1. Ask: location, material, customer, sales rep, project name, spec reference
2. Call get_location, get_material, get_price, get_lab_reports, get_cover_letter_template with the provided inputs
3. Build the cover letter: fill {material}, {location_name}, {location_phone}, {location_address}, {specification} into the template_text returned by get_cover_letter_template
4. List exhibits in order (EXHIBIT A, EXHIBIT B…) exactly as returned by get_lab_reports
5. Output the complete package as formatted text ready for PDF generation

RULES:
- Never invent prices, specs, or certifications — always fetch from tools
- If get_price returns indicative=true, note "Price indicative — confirm with sales"
- Cover letter must be on Aden Aggregates letterhead format (company name, address, date, RE: line, body, signature block)
- Signature block: [Sales Rep Name] | Aden Aggregates | [rep email] | [rep phone]
- NYSDOT status from get_location goes in the certification line verbatim
- PDF generation: after user confirms content, output a /generate command with all fields as JSON
```