Skip to content

mahsa7haft/beaufort

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Beaufort 🌊

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.

Tech Stack

Layer Technology
LLM Anthropic Claude (claude-sonnet-4-20250514)
Orchestration LangGraph
Tools (MCP) Tavily Search, Filesystem
Web framework Flask
Package manager uv
Containerisation Docker

Quick Start

1. Clone and set up

git clone https://github.com/yourusername/beaufort
cd beaufort

# Create virtual environment and install deps
uv sync
source .venv/bin/activate  # Windows: .venv\Scripts\activate

2. Add your API keys

Add your keys into .env using .env.example as a template

3. Run locally

PYTHONPATH=src uv run python -m app.main

Open http://localhost:5001

4. Run with Docker

docker compose up --build

Open http://localhost:5001

Project Structure

beaufort/
├── 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

How It Works

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

Deployment (Railway)

  1. Push to GitHub
  2. Connect repo to Railway
  3. Add environment variables in Railway dashboard
  4. Deploy — Railway auto-detects the Dockerfile

Example Input

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/.

About

Offshore wind engineering analysis agent powered by Claude, LangGraph, and Tavily

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors