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