|
import gradio as gr |
|
from tools import get_coords_from_address, calculate_distance |
|
|
|
|
|
geocoding_interface = gr.Interface( |
|
fn=get_coords_from_address, |
|
inputs=[ |
|
gr.Textbox(label="Address", placeholder="e.g., 1600 Amphitheatre Parkway, Mountain View, CA") |
|
], |
|
outputs=[ |
|
gr.Textbox(label="Coordinates (Lat, Lon)") |
|
], |
|
title="Address to Coordinates", |
|
description="A tool to get the latitude and longitude for a given street address." |
|
) |
|
|
|
distance_interface = gr.Interface( |
|
fn=calculate_distance, |
|
inputs=[ |
|
gr.Number(label="Latitude Point A"), |
|
gr.Number(label="Longitude Point A"), |
|
gr.Number(label="Latitude Point B"), |
|
gr.Number(label="Longitude Point B"), |
|
gr.Radio(["km", "miles"], label="Unit", value="km") |
|
], |
|
outputs=[ |
|
gr.Textbox(label="Distance") |
|
], |
|
title="Distance Calculator", |
|
description="A tool to calculate the distance between two geographic points." |
|
) |
|
|
|
|
|
with gr.Blocks() as about_tab: |
|
gr.Markdown(""" |
|
# π Geocalc MCP Server |
|
|
|
Welcome to the Geocalc MCP server. This application provides a collection of tools for geographic calculations. |
|
|
|
This server is designed to be used by AI models (like LLMs) to perform geo-related tasks. |
|
|
|
## Available Tools |
|
|
|
- **Address Geocoding**: Converts a physical address into latitude and longitude coordinates. |
|
|
|
Use the tabs above to navigate to the desired tool. |
|
""") |
|
|
|
|
|
demo = gr.TabbedInterface( |
|
[about_tab, geocoding_interface, distance_interface], |
|
["About", "Address Geocoding", "Distance Calculator"], |
|
title="π Geocalc MCP Server" |
|
) |
|
|
|
|
|
if __name__ == "__main__": |
|
demo.launch(mcp_server=True, debug=True) |
|
|