thirdtrail MCP server
Commit 17 Okt 2026Menyediakan data matahari, bulan, senja, iradiasi surya, dan pasang surut yang telah dikoreksi berdasarkan elevasi untuk lokasi mana pun di Bumi.
Juga dikenal sebagai thirdtrail/thirdtrail-python, thirdtrail-python
- Stars
- 0
- Tools
- —
- Unduhan, 30 hari
- —
- Versi terbaru
- 1.0.0
- Commit terakhir
- 17 Okt 2026
- Lisensi
- MIT
Apa itu thirdtrail MCP?
thirdtrail adalah MCP server. Menyediakan data matahari, bulan, senja, iradiasi surya, dan pasang surut yang telah dikoreksi berdasarkan elevasi untuk lokasi mana pun di Bumi.
Ringkasan dibuat dari README proyek
Tentang thirdtrail MCP server
thirdtrail memungkinkan developer untuk mengakses data astronomi dan pasang surut yang presisi untuk lokasi mana pun di Bumi. Python client ini menyediakan informasi yang telah dikoreksi berdasarkan elevasi mengenai matahari, bulan, senja, iradiasi surya, dan pasang surut. Berbeda dengan API standar yang mengasumsikan permukaan laut, tool ini menyesuaikan batas waktu matahari terbit, matahari terbenam, dan golden hour berdasarkan elevasi spesifik yang diberikan oleh pengguna.
Pengguna berinteraksi dengan layanan menggunakan API key dan dapat mengakses berbagai endpoint seperti ephemerides, solar paths, daily light integrals, dan tide heights. Client ini mengembalikan objek datetime yang aware dan menyertakan tool khusus seperti tide_window untuk menggabungkan data pasang surut dengan siklus surya dan lunar. Tool ini dirancang untuk menangani berbagai tier langganan, dengan memunculkan exception spesifik seperti PlanLimitExceeded atau PermissionDenied saat batas tercapai atau jika menggunakan key yang salah. Meskipun mencakup sebagian besar request GET, tool ini belum memodelkan endpoint POST bulk atau manajemen webhook.
Apa yang bisa Anda lakukan dengannya
- 1Menghitung waktu matahari terbit yang disesuaikan dengan elevasiMenentukan secara tepat kapan matahari muncul di cakrawala bagi pengamat pada ketinggian tertentu.
- 2Memantau iradiasi surya dan jalur matahariMengambil data busur matahari dan posisi surya pada interval tertentu.
- 3Melacak pergerakan pasang surut dan titik ekstremMengidentifikasi waktu dan tinggi pasang surut serta surut air relatif terhadap permukaan laut rata-rata.
- 4Merencanakan fotografi di sekitar golden hourMenemukan waktu mulai dan berakhirnya golden hour secara presisi berdasarkan elevasi lokal.
Ditulis berdasarkan README proyek. Setiap use case diperiksa terhadap kutipan dari README tersebut.
Cara menginstal thirdtrail MCP
Format diverifikasi 10 Nov 2026Instal thirdtrail MCP di Claude Code
$ claude mcp add --transport http thirdtrail-python https://thirdtrail.life/mcpInstal thirdtrail MCP di Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"thirdtrail-python": {
"url": "https://thirdtrail.life/mcp"
}
}
}Instal thirdtrail MCP di VS Code
.vscode/mcp.json
{
"servers": {
"thirdtrail-python": {
"type": "http",
"url": "https://thirdtrail.life/mcp"
}
}
}Instal thirdtrail MCP di Codex
~/.codex/config.toml
[mcp_servers.thirdtrail-python] url = "https://thirdtrail.life/mcp"
Instal thirdtrail MCP di Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"thirdtrail-python": {
"httpUrl": "https://thirdtrail.life/mcp"
}
}
}README
Lihat di GitHubthirdtrail
Python client for the thirdtrail APIs: sun, moon, twilight, solar irradiance and tides for any point on Earth. Sun and moon times are corrected for the elevation you pass in.
pip install thirdtrail
from thirdtrail import Client
tt = Client(api_key="tt_live_…")
for day in tt.ephemerides(lat=53.3498, lon=-6.2603, elevation=20):
print(day.date, day.sun.rise, day.sun.set)
Why elevation
Most sunrise APIs answer for an observer standing at sea level. The higher you are, the further you can see, and the earlier the sun clears the horizon.
At the Cliffs of Moher (214 m) the difference is about three minutes, and it moves sunrise, sunset and every golden- and blue-hour boundary with them:
| sea level | at 214 m | |
|---|---|---|
| sunrise | 07:23:33 | 07:20:25 |
| golden hour, morning start | 06:56:51 | 06:53:42 |
| moonrise | 18:03:48 | 17:59:40 |
Golden hour lasts 20 to 40 minutes, so three minutes is a noticeable share of
it. Pass elevation whenever you know it.
What you get
day.sun.rise # datetime, with its timezone offset intact
day.sun.golden_hour.morning.start
day.moon.phase.name # "Waxing Gibbous"
day.moon.phase.illumination # 0.7376
Timestamps arrive as aware datetime objects, not strings. Anything the
client does not model is still available on day.raw and day.response, so
you can use a new server-side field before the client catches up.
Endpoints
tt.ephemerides(lat=…, lon=…, elevation=…, days=7) # sun + moon + twilight
tt.prayer_times(lat=…, lon=…, school="mwl") # five daily prayers
tt.solar(lat=…, lon=…, timestamp=…) # position + irradiance
tt.solar_path(lat=…, lon=…, interval="5m") # the sun's arc, sampled
tt.solar_dli(lat=…, lon=…, from_date=…, to_date=…) # Daily Light Integral
tt.tide_heights(lat=…, lon=…, step="10m") # water height series
tt.tide_extremes(lat=…, lon=…) # high and low waters
tt.tide_window(lat=…, lon=…, elevation=…) # tides + sun + moon
tt.tide_constituents(lat=…, lon=…) # harmonic constants
Tides take no elevation, with one exception
tide_heights and tide_extremes have no elevation parameter on purpose,
because how high you stand doesn't change the ocean surface. If you pass
one, you get a TypeError instead of having it silently ignored.
tide_window is the exception, because half of what it returns is sun and
moon data:
for day in tt.tide_window(lat=52.9715, lon=-9.4309, elevation=214, days=3):
print(day.date, day.sun.golden_hour.morning.start)
for t in day.low_waters:
print(" low water", t.time, t.height_m)
Tide heights are metres relative to mean sea level, not chart datum, and they exclude weather-driven surge. Not for navigation.
Errors
Each kind of failure has its own exception class, so you can catch the one you care about instead of parsing error messages:
from thirdtrail import PlanLimitExceeded
try:
tt.tide_extremes(lat=51.5, lon=-2.7, days=90)
except PlanLimitExceeded as e:
tt.tide_extremes(lat=51.5, lon=-2.7, days=e.limit) # e.limit == 31
AuthenticationError (401), PermissionDenied (403, a tier you are not on),
PlanLimitExceeded and InvalidRequest (400), RateLimited (429),
DataUnavailable (503), ServerError (5xx). All subclass ThirdtrailError.
Transient failures and 429s are retried with backoff. Plan limits are not retried, because the same request would fail the same way every time.
Keys
Create one at thirdtrail.life/apis/keys/.
A key belongs to one subscription, so it works with one API; a Tides key
calling a solar endpoint gets PermissionDenied.
Every API has a free tier.
Not covered yet
The client doesn't cover the bulk (POST) endpoints, iCalendar feeds or
webhook management yet. For those, call the REST API directly; the full
contract is published as OpenAPI 3.1.
Using an AI agent? There is an MCP server that exposes the same data as tools.
Licence
MIT
Pertanyaan tentang thirdtrail MCP
Bagaimana cara menambahkan thirdtrail MCP ke Claude Code?
Jalankan claude mcp add --transport http thirdtrail-python https://thirdtrail.life/mcp di terminal Anda. Tambahkan --scope user agar tersedia di semua proyek.
Bagaimana cara menambahkan thirdtrail MCP ke Cursor?
Buka ~/.cursor/mcp.json dan tambahkan server di bawah mcpServers, menggunakan config Cursor yang ditunjukkan di bagian instalasi di atas.
Bagaimana elevasi memengaruhi data?
Waktu matahari dan bulan dikoreksi berdasarkan elevasi spesifik yang diberikan, karena ketinggian yang lebih tinggi memungkinkan pengamatan matahari terbit dan terbenam yang lebih awal.
Bisakah saya menggunakan parameter elevasi pada endpoint tinggi pasang surut?
Tidak, tide_heights dan tide_extremes tidak menerima parameter elevasi karena ketinggian permukaan laut tidak bergantung pada elevasi pengamat.
Apa yang terjadi jika saya melampaui batas paket saya?
Client akan memunculkan exception PlanLimitExceeded, yang menyertakan atribut limit yang menunjukkan nilai maksimum yang diizinkan.