Live demo: beaufort-production.up.railway.app
An offshore wind engineering analysis agent powered by Claude, LangGraph, and MCP.
Paste project data → the agent searches the web for context → generates a structured engineering report.
| Layer | Technology |
|---|---|
| LLM | Anthropic Claude (claude-sonnet-4-20250514) |
| Orchestration | LangGraph |
| Tools (MCP) | Tavily Search, Filesystem |
| Web framework | Flask |
| Package manager | uv |
| Containerisation | Docker |
git clone https://github.com/yourusername/beaufort
cd beaufort
# Create virtual environment and install deps
uv sync
source .venv/bin/activate # Windows: .venv\Scripts\activateAdd your keys into .env using .env.example as a template
ANTHROPIC_API_KEY- from console.anthropic.comTAVILY_API_KEY- from app.tavily.comFLASK_SECRET_KEY- a random string for Flask session security$ openssl rand -hex 32
PYTHONPATH=src uv run python -m app.maindocker compose up --buildbeaufort/
├── src/
│ └── app/
│ ├── main.py # Flask entry point
│ ├── agent/
│ │ ├── graph.py # LangGraph graph definition
│ │ ├── nodes.py # Agent node functions
│ │ └── prompts.py # Claude system & user prompts
│ ├── mcp/
│ │ └── servers.py # MCP tool definitions & execution
│ └── templates/
│ └── index.html # Web UI
├── reports/ # Generated reports saved here
├── pyproject.toml # uv dependencies
├── Dockerfile
├── docker-compose.yml
└── .env.example
User Input
↓
LangGraph Agent (graph.py)
↓
[analyse node] → Claude reasons about the input
↓
[tool node] → Executes MCP tools (search / save)
↓
[loop until done]
↓
[finalise node] → Extracts final report
↓
Flask returns HTML report to user
- Push to GitHub
- Connect repo to Railway
- Add environment variables in Railway dashboard
- Deploy — Railway auto-detects the Dockerfile
Input 1:
Site: German Bight, North Sea
Developer: Example Energy GmbH
Capacity: 900 MW (60 × 15 MW turbines)
Water depth: 22–30m
Distance from shore: 85km
Mean wind speed: 10.1 m/s at hub height
Foundation type: Monopile
Target COD: 2029
Input2:
Site: Hornsea Zone, North Sea, UK
Developer: Orsted UK Ltd
Capacity: 1,200 MW (80 × 15 MW turbines)
Water depth: 40–55m
Distance from shore: 120km
Mean wind speed: 10.8 m/s at hub height
Foundation type: Jacket
Target COD: 2031
Grid connection: Humberside substation
Seabed: Dense sand over clay
This query costs 0.13$ in Anthropic API calls and 20/1000 credits from Tavily Researcher plan.
Report generation takes ~30 seconds, depending on the complexity of the query and the amount of information retrieved from the web.
Report generated from this example input written to reports/.