MCP:

What, Why and How

2025-10-15 SF.gov

What are we

talking about?

  • What is MCP?
    • Technically
    • Philosophically
  • Why should I care?
  • How do I implement it?

A protocol for giving AI agents tools

What is MCP?

What is a model?

Spooky autocomplete

What is an agent?

An LLM that has tools

What is context?

Everything an LLM needs to know to get to a goal

MCP gives context to agents

And it also handles authentication

MCP tool responses

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tools": [
      {
        "name": "get_weather",
        "description": "Get current weather for a city",
        "inputSchema": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string",
              "description": "City name"
            },
            "units": {
              "type": "string",
              "enum": ["celsius", "fahrenheit"],
              "description": "Temperature units",
              "default": "celsius"
            }
          },
          "required": ["city"]
        }
      },
  ...

MCP requests

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_weather",
    "arguments": {
      "city": "San Francisco",
      "units": "fahrenheit"
    }
  }
}

MCP responses

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "Weather in San Francisco: 68°F, Partly cloudy with light fog in the morning"
      }
    ],
    "isError": false
  }
}

A new way of approaching an

old problem

What is MCP?

MCP is task-based

Agents can learn

and self-correct

They can get better at using the tools

An agent

acting like an API

What is MCP?

MCP is a robot with context trained to accomplish tasks

What is MCP?

A security nightmare

What is MCP?

An expensive proposition

What is MCP?

One more

****ing protocol

What is MCP?

A big step forward

in getting information from computers to humans

What is MCP?

*insert spooky noises*

Democratizing access to information

is a good thing

Internet-connected computers have been trying to improve access

LLMs break down the programming barrier to producing software

Our goal should be providing access to information, not producing software

So why not vibe?

Vibe coding eventually produces new coders

Which is also good

But everything

isn't cool

AI has

ethical

problems

AI has

environmental problems

But mostly because of the electricity, not the water

AI has

economic

problems

Nevertheless

access to information is good

Back to MCP

Why bother

with MCP?

Move from

a 50% solution

to a 90% solution

Go beyond APIs

Vibe coding is good

And MCP enables vibe coding

How to do MCP

FastMCP

Available in Python and TypeScript

How to do MCP?

from fastmcp import FastMCP

mcp = FastMCP("Demo 🚀")

@mcp.tool
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

if __name__ == "__main__":
    mcp.run()

django-mcp-server

How to do MCP?

from mcp_server import mcp_server as mcp
from .models import Bird

@mcp.tool()
async def get_species_count(name: str) -> int:
    '''Find the ID of a bird species by name'''
    ret = await Bird.objects.filter(species__icontains=name).afirst()
    if ret is None:
        ret = await Bird.objects.acreate(species=name)
    return ret.count

MCP-Auth

mcp-auth.dev

How to do MCP?

Design the tools you expose carefully

Become discoverable

The MCP registry

github.com/modelcontextprotocol/registry

Provide a

well-known URL

/.well-known/mcp/servers.json

Provide an LLMs.txt

Recap

MCP is a simple protocol

Takeaways #1

MCP enables agents

Takeaways #2

Agents enable

vibe-coding

Takeaways #3

Accessing information

gets easier

Takeaways #4

Thanks!

You can follow me on Bluesky:

    🦋 @seldo.com

These slides:

slides.com/seldo/mcp

MCP: What, Why and How

By Laurie Voss

MCP: What, Why and How

  • 6