MCP, or not MCP?

Neal Richardson

AI in Production

June 5, 2026

Hi, I’m Neal 👋

  • Open source and data

  • Apache Arrow PMC member

  • Currently VP Engineering at Posit

  • enpiar.com

  • arrowrbook.com

 ▐▛███▜▌   Claude Code v2.1.158
▝▜█████▛▘  Opus 4.8 (1M context) · Claude Enterprise
  ▘▘ ▝▝    ~/code

   Opus 4.8 is here! Now defaults to high effort · /effort xhigh for your hardest tasks

❯ please help me with https://posit.zendesk.com/agent/tickets/129426

 ▐▛███▜▌   Claude Code v2.1.158
▝▜█████▛▘  Opus 4.8 (1M context) · Claude Enterprise
  ▘▘ ▝▝    ~/code

   Opus 4.8 is here! Now defaults to high effort · /effort xhigh for your hardest tasks

❯ please help me with https://posit.zendesk.com/agent/tickets/129426

⏺ I'll help with that Zendesk ticket. Let me fetch its contents.

⏺ Fetch(https://posit.zendesk.com/agent/tickets/129426)
  ⎿  Received 259 bytes (200 OK)

⏺ The ticket is behind Zendesk's authentication, so I can't fetch it directly — WebFetch only works on public URLs, and
  I don't have a Zendesk integration available in this session.

  Could you paste the ticket contents here?

MCP is designed to solve this

space

You can write and host your own MCP servers

https://github.com/nealrichardson/zendesk-mcp-server

You can write and host your own MCP servers

https://github.com/nealrichardson/zendesk-mcp-server

What is MCP?

MCP is specification for providing tools to LLMs

Local vs. Remote MCP

Local

  • Runs on your machine
  • claude mcp add name-here -- uvx --from "git+https://github.com/user/repo"
  • Can access your local file system etc.

Local vs. Remote MCP

Local

  • Runs on your machine
  • claude mcp add name-here -- uvx --from "git+https://github.com/user/repo"
  • Can access your local file system etc.

Remote

  • Runs somewhere else
  • claude mcp add --transport http name-here https://example.com/mcp
  • Cannot access your local file system but can access whatever you give the server

MCP is an API standard

There was a lot of excitement

https://www.reddit.com/r/mcp/comments/1jn3ykp/mind_blown_with_mcp/

https://uxplanet.org/mcp-is-dead-cf16b667ba6d

MCP, CLI, or Skill?

  • If the agent can do everything with tools it already has (Bash, Fetch, etc.) then a Skill is probably enough

  • Otherwise, Skill is complement: we’re talking (MCP + Skill) vs. (CLI + Skill)

(MCP + Skill) vs. (CLI + Skill)

Critique that MCP takes up too much context: all tool definitions are loaded up front and take up tokens

Claude Code is good with CLIs: why use GitHub’s MCP if gh is already right there?

Use CLI when:

  • CLI already exists, is widely available and in the training data

  • Your agent has Bash available to call the CLI

More things you can do with remote MCP

  • Authentication: OAuth 2.1 flow, or via HTTP header

  • Accessing resources not available locally

  • Monitoring

  • Easy distribution via URL

Security

Lethal Trifecta

  • Access to private data

  • Exposure to untrusted content

  • Ability to exfiltrate

https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/

Best practices

Brevity is the soul of wit

Best practices

1. Only define the tools you need

Best practices

2. Make responses concise

Best practices

3. Sanitize sensitive data

n***@posit.co

MCP, or not MCP?

  • MCP is (just) an API standard for AI agents

  • Writing and deploying your own remote MCP servers can unlock superpowers for your agentic workflows

  • AI brings inherent security risks, but a well designed MCP server can mitigate them

  • You (or your agent) can easily write custom MCP servers

Thank you

These slides

Zendesk MCP repo