scieee AI-readable full text Open interactive document viewer

The End of Front-End: Delivering Software via LLMs and the Model Context Protocol

Dinu, Cristian

Abstract

What if the future of software delivery didn’t involve a user interface at all? With the rise of large language models (LLMs), we’re entering a new era where software can be consumed through natural conversation, not clicks. In this walkthrough, I’ll introduce the Model Context Protocol (MCP)—a new way to expose real-time, typed, dynamic data to LLMs, enabling them to act as intelligent, conversational front-ends for research software.I’ll demonstrate how to build a simple MCP server that exposes live data and commands to an LLM, transforming a traditional API into a human-friendly interaction. Along the way, we’ll look at what problems this approach is suited for, how it compares to conventional apps, and what design patterns are emerging.This session is designed for data scientists, engineers and researchers curious about combining conversational AI with real-world data and delivery workflows.A recording of this session is available on YouTube: https://youtu.be/TFdJp0qccoc

Full text

The End of Front-End Delivering Software via LLMs and the Model Context Protocol | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu pip install vibe-coding | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu 👋 Cristian Dinu, UCL The RSE Friction For Tool Builders… For Tool Users… Endless GUIs Endless docs Endless support Endless wrappers Endless glue code Endless boilerplate | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu What if your software just… understood you? | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu The Chasm | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu There is something that can: understand natural language understand intent could generate a list of commands… if it only had the tools | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu Write the code – main.py from mcp.server.fastmcp import FastMCP1 import datetime2 import requests3 4 mcp = FastMCP("CarbonIntensityMCP")5 6 @mcp.tool()7 def get_current_intensity():8 """Fetches the current carbon intensity of the UK electricity grid.9 Returns a JSON with the current carbon intensity in gCO2eq/kWh."""10 url = "https://api.carbonintensity.org.uk/intensity"11 try:12 response = requests.get(url)13 response.raise_for_status()14 data = response.json()15 return data['data']16 17 except Exception as e:18 | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu Add parameters, too: @mcp.tool()1 def get_carbon_intensity(from_datetime: str | None = None, to_datetime: str2 """Fetches electricity grid carbon intensity data for a specific UK pos3 The `from_datetime` and `to_datetime` should be in ISO 8601 format (e.g4 The `postcode` needs only the first part e.g. RG10 (without the last th5 6 If `from_datetime` or `to_datetime` are not provided, defaults are set 7 If postcode is not provided, defaults to "WC1E" -- UCL London.8 Returns a summary including average forecast and generation mix.9 """10 if from_datetime is None: # default to 2 hours ago11 from_datetime = datetime.datetime.utcnow() - datetime.timedelta(hou12 from_datetime = from_datetime.isoformat() + "Z"13 14 if to_datetime is None: # default to 2 hours in the future15 to_datetime = datetime.datetime.utcnow() + datetime.timedelta(hours16 to_datetime = to_datetime.isoformat() + "Z"17 18 | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu Challenge What’s the best 2-hour window to charge my car in Coventry tomorrow? | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu The Real Magic: Orchestration Find the cleanest 2-hour window to charge my EV in London tomorrow, and book a calendar event called ‘Charge EV’ for that time. | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu What Just Happened? 1. Decomposition: Broke the request into two steps. 2. Tool Chaining: Used the output of Tool 1 as the input for Tool 2. 3. Synthesis: Generated a final summary of both actions. We provided capabilities. The LLM built the workflow. | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu RSE Superpowers Unlocked 🚀 For Tool Builders… For Tool Users… ✅ Escape the UI Treadmill ✅ Query by Intent ✅ Slash Support Load ✅ Zero Boilerplate ✅ Instant Feature Rollout ✅ Your Personal Orchestrator | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu The Future is a Conversation Natural Language is the universal front-end. MCP is the contract that connects them. | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu What will you build? The front-end isn’t disappearing. It’s becoming invisible, adaptive, and conversational. | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu Thank You! Cristian Dinu https://cdi.nu | | Linkedin: The End of Front-End Cristian Dinu, UCL /in/cdinu