Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Great (Interface) Escape. MCP's Promise & P...

The Great (Interface) Escape. MCP's Promise & Precautions

We spend countless hours navigating poorly designed interfaces, searching for information, and completing tedious tasks like digital form filling—fighting with systems that should serve us, not consume our time. What if we could eliminate these frustrating interfaces entirely?

This talk explores how Model Context Protocol (MCP) is transforming our relationship with digital systems by letting AI agents handle the grunt work directly, without forcing humans through clunky UIs and broken processes. We'll cover:

- The Interface Problem: Why we're drowning in bad UIs and manual processes that waste our lives
- Enter MCP: How standardised agent communication could end the tyranny of terrible interfaces
- Reimagining Interaction: Real examples of tasks transforming from multi-step manual nightmares into seamless agent automation
- The Dark Side: Security vulnerabilities, data exposure risks, and the new attack vectors MCP introduces

You'll see live demonstrations of MCP eliminating interface friction, understand the protocol's core primitives, and confront the uncomfortable reality of what happens when agents have too much access to your systems.

This isn't just about efficiency—it's about the next wave of technological change that could fundamentally reshape how we interact with digital services. But are we ready for the security implications?

Avatar for David Denton

David Denton

October 16, 2025
Tweet

More Decks by David Denton

Other Decks in Technology

Transcript

  1. London: Saturday morning. A voice: “David? Can you come in

    here for a moment?” A man sits peacefully in his kitchen, blissfully unaware of his fate.
  2. “Just fill in this form”* Me My Mac 1. Get

    my details *Names have been changed to protect the guilty
  3. “Just fill in this form”* Me My Mac 1. Get

    my details Acme Insurance.com 2 . Search for the form *Names have been changed to protect the guilty
  4. “Just fill in this form”* Me My Mac 1. Get

    my details Acme Insurance.com 2 . Search for the form *Names have been changed to protect the guilty 3 . Phone the call centre
  5. “Just fill in this form”* Me My Mac 1. Get

    my details Acme Insurance.com 2 . Search for the form 4. Lookup orders Rainforest.com *Names have been changed to protect the guilty 3 . Phone the call centre
  6. “Just fill in this form”* Me My Mac 1. Get

    my details Acme Insurance.com 2 . Search for the form 5. Get invoice 4. Lookup orders Rainforest.com *Names have been changed to protect the guilty 3 . Phone the call centre
  7. “Just fill in this form”* Me My Mac 1. Get

    my details Acme Insurance.com 2 . Search for the form 5. Get invoice 4. Lookup orders Rainforest.com *Names have been changed to protect the guilty 3 . Phone the call centre 6. Convert fi le to PDF
  8. “Just fill in this form”* Me My Mac 1. Get

    my details Acme Insurance.com 2 . Search for the form 7. Raise claim, attach invoice 5. Get invoice 4. Lookup orders Rainforest.com *Names have been changed to protect the guilty 3 . Phone the call centre 6. Convert fi le to PDF
  9. “Just fill in this form”* Me My Mac 1. Get

    my details Acme Insurance.com 2 . Search for the form 8. Add a todo to track it 7. Raise claim, attach invoice 5. Get invoice 4. Lookup orders Rainforest.com *Names have been changed to protect the guilty 3 . Phone the call centre 6. Convert fi le to PDF
  10. Conclusions •LLMs are logical and can visualise contextually •But they

    are too naive to be trusted •To be truly useful, they need to be connected to: 1. Real world data 2. Some decent instructions!
  11. Enter MCP: •Created by Anthropic in 2024 •De fi nes

    a common uni fi ed API for clients to connect •Standardises message format •Reimagines interaction model as capabilities “Enables seamless integration between LLM applications and external data sources and tools”
  12. There is a type bit of hype! •Number of servers

    16517* •SDKs in Go, Java, TS, Python…. •Rapid adoption by big-tech - the below were announced whilst I wrote this talk *At time of slide
  13. • Functional web toolkit in pure Kotlin • Best-in-class Testing

    support • Support for latest MCP speci fi cation • Multi-deployment feature-set • Kotlin Foundation Supported an entire HTTP ecosystem https://http4k.org
  14. MCP Essentials •Standardised message format for interactions (JSON-RPC) •Reimagines interaction

    model as capabilities: Completions Prompts Tools Resources Elicitations Sampling
  15. MCP Essentials •Standardised message format for interactions (JSON-RPC) •Reimagines interaction

    model as capabilities: Completions Prompts Tools Resources Elicitations Sampling Completions Prompts Tools Resources
  16. Local MCP Server MCP Setup Workstation LLM Client HTTP LLM

    Cloud Service HTTP (API) Remote (LLM API) HTTP MCP Server = File access Remote IO HTTP StdIo Meat-based Worker IO (JSONRPC) (JSONRPC)
  17. Provide text options for an input Client Server Completion reference

    + argument “method”: “completion/complete” “ref”: “recipe-ingredients” “argument”: "br” Completions
  18. Provide text options for an input Client Server Completion reference

    + argument Completion options “values”: [ "broccoli", “brown sugar", “briny olives” ] “method”: “completion/complete” “ref”: “recipe-ingredients” “argument”: "br” Completions
  19. Templated instructions for an LLM Prompts Client Server Prompt Name

    + Arguments “method”: “prompts/get” “name": “recipe-instructions” “arguments”: [“chicken”, “rice”]
  20. Templated instructions for an LLM Prompts Client Server Prompt Name

    + Arguments Prompt content “Create a healthy dinner recipe using chicken and rice. Include cooking time, servings, and step-by- step instructions.” “method”: “prompts/get” “name": “recipe-instructions” “arguments”: [“chicken”, “rice”]
  21. List/Retrieve/subscribe to URI-based data Client Server Resource URL Resource content

    “url”: “recipe://chicken-biryani" “mimeType” “application/json, “Text”: “first, slice the chicken……" “method”: ”resources/read” “url”: “recipe://chicken-biryani" Resources
  22. Perform an (user authorised) structured interaction Client Server Tool name

    + typed arguments “method”: “tools/call” “name”: “create-shopping-list” “arguments”: “recipe”: “chicken-biryani” “servings”: 4 Tools
  23. Perform an (user authorised) structured interaction Client Server Tool name

    + typed arguments Text or Structured response “items”: [ “chicken”: 450, “rice": 100, “all-spice”: 15 ] “unit”: “grams” “method”: “tools/call” “name”: “create-shopping-list” “arguments”: “recipe”: “chicken-biryani” “servings”: 4 Tools
  24. Let’s revisit our process LLM (supervised by me) My Mac

    1. Completion (Details) *Names have been changed to protect the guilty
  25. Let’s revisit our process LLM (supervised by me) My Mac

    1. Completion (Details) Acme Insurance.com 2 . Prompt (Instructions) *Names have been changed to protect the guilty
  26. Let’s revisit our process LLM (supervised by me) My Mac

    1. Completion (Details) Acme Insurance.com 2 . Prompt (Instructions) *Names have been changed to protect the guilty 3 . Have a nice cup of tea
  27. Let’s revisit our process LLM (supervised by me) My Mac

    1. Completion (Details) Acme Insurance.com 2 . Prompt (Instructions) *Names have been changed to protect the guilty 3 . Have a nice cup of tea
  28. Let’s revisit our process LLM (supervised by me) My Mac

    1. Completion (Details) Acme Insurance.com 2 . Prompt (Instructions) *Names have been changed to protect the guilty 3 . Have a nice cup of tea
  29. Let’s revisit our process LLM (supervised by me) My Mac

    1. Completion (Details) Acme Insurance.com 2 . Prompt (Instructions) 4. Read Resource (Orders) Rainforest.com *Names have been changed to protect the guilty 3 . Have a nice cup of tea
  30. Let’s revisit our process LLM (supervised by me) My Mac

    1. Completion (Details) Acme Insurance.com 2 . Prompt (Instructions) 5. Tool call (Invoice) 4. Read Resource (Orders) Rainforest.com *Names have been changed to protect the guilty 3 . Have a nice cup of tea
  31. Let’s revisit our process LLM (supervised by me) My Mac

    1. Completion (Details) Acme Insurance.com 2 . Prompt (Instructions) 5. Tool call (Invoice) 4. Read Resource (Orders) Rainforest.com *Names have been changed to protect the guilty 6. Tool call (Convert) 3 . Have a nice cup of tea
  32. Let’s revisit our process LLM (supervised by me) My Mac

    1. Completion (Details) Acme Insurance.com 2 . Prompt (Instructions) 7. Tool call (RaiseClaim) 5. Tool call (Invoice) 4. Read Resource (Orders) Rainforest.com *Names have been changed to protect the guilty 6. Tool call (Convert) 3 . Have a nice cup of tea
  33. Let’s revisit our process LLM (supervised by me) My Mac

    1. Completion (Details) Acme Insurance.com 2 . Prompt (Instructions) 8. Tool call (Track) 7. Tool call (RaiseClaim) 5. Tool call (Invoice) 4. Read Resource (Orders) Rainforest.com *Names have been changed to protect the guilty 6. Tool call (Convert) 3 . Have a nice cup of tea
  34. There are 16517* servers to install… *At time of slide

    …. so let’s go! 🚀 Client MCPs
  35. The Lethal Trifecta Ability to Externally Communicate Access to Private

    Data Bad times! Exposure to Untrusted Content
  36. How does Tool Calling work? LLM Client MCP ToolCall Usage

    ModelParameters Message Message Message Tools Message Query
  37. How does Tool Calling work? LLM Client MCP ToolCall Usage

    ToolCall Approve ModelParameters Message Message Message Tools Message Query
  38. How does Tool Calling work? LLM Client MCP ToolCall Usage

    Result ToolCall Approve ModelParameters Message Message Message Tools Message Query
  39. How does Tool Calling work? LLM Client MCP ToolCall Usage

    Result Message Message Result ModelParameters Message Message Message Tools ToolCall Approve ModelParameters Message Message Message Tools Message Query
  40. How does Tool Calling work? LLM Client MCP ToolCall Usage

    Result Usage Message Message Message Content Result Message Message Result ModelParameters Message Message Message Tools ToolCall Approve ModelParameters Message Message Message Tools Message Query
  41. Tool poisoning attack Client EvilMCP™ LLM “How many days until

    Christmas? Tool description Tool description = File access EmailMCP
  42. Tool poisoning attack Client EvilMCP™ LLM Query with Email +

    Evil tool instructions LLM requests Tool usage “How many days until Christmas? Tool description Tool description = File access EmailMCP
  43. Tool poisoning attack Client EvilMCP™ LLM Approves usage Query with

    Email + Evil tool instructions LLM requests Tool usage “How many days until Christmas? Tool description Tool description = File access EmailMCP
  44. Tool poisoning attack Client EvilMCP™ LLM Approves usage Query with

    Email + Evil tool instructions LLM requests Tool usage “How many days until Christmas? Tool description Tool description = File access EmailMCP Get days until 25/12
  45. Tool poisoning attack Client EvilMCP™ LLM Approves usage Query with

    Email + Evil tool instructions LLM requests Tool usage “How many days until Christmas? Tool description Tool description = File access Read .ssh/id_rsa EmailMCP Get days until 25/12
  46. Tool poisoning attack Client EvilMCP™ LLM Approves usage Query with

    Email + Evil tool instructions LLM requests Tool usage “How many days until Christmas? Tool description Tool description = File access Read .ssh/id_rsa EmailMCP Send email with id_rsa Get days until 25/12
  47. Conclusion: MCP is a game of 2 halves •MCPs give

    LLMs superpowers •Contextual user interfaces •Agents + MCP could replace the web •Signi fi cant novel attack vectors •All so new that we cannot defend •99% of all servers are “uno ff i cial” YAY! ✅ NAY! ⚠
  48. Thank you! Questions? David Denton ([email protected]) Engineering Lead | CICD

    | Security | Advisory | Training https://clockwork.ing/ https://mcp.http4k.org