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