ABDALLALSWAITI commited on
Commit
4c6e2b6
·
verified ·
1 Parent(s): d822f93

Upload transport_server.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. transport_server.py +95 -0
transport_server.py ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from mcp.server.fastmcp import FastMCP
2
+ import random
3
+ import urllib.parse
4
+
5
+ mcp = FastMCP("TransportAgent")
6
+
7
+ # Transfer service providers
8
+ TRANSFER_PROVIDERS = [
9
+ {"name": "Blacklane", "type": "Premium", "base_price": 65},
10
+ {"name": "Welcome Pickups", "type": "Standard Plus", "base_price": 45},
11
+ {"name": "GetTransfer", "type": "Standard", "base_price": 35},
12
+ {"name": "Uber Black", "type": "Premium", "base_price": 55},
13
+ ]
14
+
15
+ @mcp.tool()
16
+ def book_transfer(pickup: str, dropoff: str, passengers: int) -> str:
17
+ """Book an airport transfer or taxi with booking links."""
18
+
19
+ # Extract city from pickup/dropoff
20
+ city = pickup.replace(" Airport", "").replace(" International", "").strip()
21
+ city_encoded = urllib.parse.quote(city)
22
+
23
+ vehicle = "Mercedes V-Class" if passengers > 3 else "Mercedes E-Class"
24
+ vehicle_emoji = "🚐" if passengers > 3 else "🚗"
25
+
26
+ results = []
27
+ results.append(f"🚕 **Airport Transfer Options**")
28
+ results.append(f"📍 {pickup} → {dropoff}")
29
+ results.append(f"👥 {passengers} passengers")
30
+ results.append("")
31
+ results.append("---")
32
+
33
+ for i, provider in enumerate(TRANSFER_PROVIDERS[:3], 1):
34
+ price_var = random.uniform(0.9, 1.2)
35
+ price = int(provider["base_price"] * price_var * (1.3 if passengers > 3 else 1))
36
+ wait_time = random.randint(5, 15)
37
+ rating = round(random.uniform(4.5, 4.9), 1)
38
+
39
+ # Build booking URL
40
+ if provider["name"] == "GetTransfer":
41
+ book_url = f"https://gettransfer.com/en?from={urllib.parse.quote(pickup)}&to={urllib.parse.quote(dropoff)}"
42
+ elif provider["name"] == "Welcome Pickups":
43
+ book_url = f"https://www.welcomepickups.com/search/?pickup={urllib.parse.quote(pickup)}"
44
+ else:
45
+ book_url = f"https://www.google.com/search?q={urllib.parse.quote(provider['name'] + ' ' + city + ' airport transfer')}"
46
+
47
+ results.append("")
48
+ results.append(f"### {vehicle_emoji} Option {i}: {provider['name']}")
49
+ results.append(f"🚘 **{provider['type']}** - {vehicle}")
50
+ results.append(f"💰 **${price}** all-inclusive | ⭐ {rating}/5")
51
+ results.append(f"✅ Meet & Greet • Flight tracking • {wait_time}min free wait")
52
+ results.append(f"🔗 [Book {provider['name']}]({book_url})")
53
+ results.append("")
54
+
55
+ results.append("---")
56
+ results.append("")
57
+ results.append(f"💡 **Tip:** Book in advance for guaranteed pickup. [Compare all transfers](https://www.rome2rio.com/s/{urllib.parse.quote(pickup)}/{urllib.parse.quote(dropoff)})")
58
+
59
+ return "\n".join(results)
60
+
61
+ @mcp.tool()
62
+ def check_trains(origin: str, destination: str, date: str) -> str:
63
+ """Check train schedules between cities with booking links."""
64
+
65
+ origin_encoded = urllib.parse.quote(origin)
66
+ dest_encoded = urllib.parse.quote(destination)
67
+
68
+ times = ["08:00", "10:30", "14:15", "18:45"]
69
+
70
+ results = []
71
+ results.append(f"🚆 **Train Schedule: {origin} → {destination}**")
72
+ results.append(f"📅 Date: {date}")
73
+ results.append("")
74
+ results.append("---")
75
+
76
+ for i, t in enumerate(times, 1):
77
+ train_num = f"TR{random.randint(100,999)}"
78
+ duration_h = random.randint(1, 3)
79
+ duration_m = random.choice([0, 15, 30, 45])
80
+ price = random.randint(40, 120)
81
+ seats = random.randint(5, 50)
82
+
83
+ # Build booking URL
84
+ trainline_url = f"https://www.thetrainline.com/book/results?origin={origin_encoded}&destination={dest_encoded}&outwardDate={date}"
85
+
86
+ results.append("")
87
+ results.append(f"### 🚄 Option {i}: {train_num} - Departs {t}")
88
+ results.append(f"⏱️ {duration_h}h {duration_m}m | 💰 **${price}** | 💺 {seats} seats")
89
+ results.append(f"🔗 [Book on Trainline]({trainline_url})")
90
+ results.append("")
91
+
92
+ return "\n".join(results)
93
+
94
+ if __name__ == "__main__":
95
+ mcp.run()