AI Agent is Our New CRM

MCP-First Software Design and Best Practices

Ben Cheng

Google Developer Expert  |  Build with AI 2026

Who am I?

oursky.com formx.ai authgear.com
FormX.ai
Authgear.com

Section 1

AI Agent is the New UI

Software Today

Eng Projects

AI Agent Interface

Gemini

Problem: Discoverability

Solution: give users sample prompts of what they can do

What My CRM Agent Can Do

/daily          Full briefing: overdue leads, tasks, meetings, key contacts

/company        Add ACME Corp
                Look up companies

/person         Add Jane Doe from ACME
                Manage contacts

/deal           New deal with ACME
                Manage deals across 3 pipelines

/meeting        Log a discovery meeting with Jane

/note           ACME is evaluating FormX

/task           Send proposal to ACME by Friday

Problem: It's Slow

Best of Both Worlds - UI Inside Chat

UI Agent Screenshot

Practical Reality - Web UI for Reports

It's not agent vs UI. It's agent + UI, each where it fits best.

[ Quick demo of pipeline report ]

Section 2

MCP-First Software Design

Why Build This Way?

Not just because it's cool. It enables:

Now imagine how much people can do if every software at a company is MCP-first and agent-friendly.

WTF is MCP?

Why Remote MCP?

Local MCP / CLI

  • Requires terminal
  • Config files, IT setup
  • Fine for developers
  • Not for your sales team

Remote MCP

  • Click a link
  • Login via OAuth
  • Done
  • Works for everyone
"Local MCP is a developer tool. Remote MCP is infrastructure for the organization."

Remote MCP Setup

Claude MCP Setup

Remote MCP - OAuth 2.1

Design Tip #1

Design for Human Usage

Instead of...

  • call list_leads
  • call list_tasks
  • call list_key_persons

One tool:

  • check_due_items
  • All overdue leads, tasks, key contacts in one shot
Design Tip #2

The N+1 Problem

Solution: Denormalize - return rich data in list results

Trick: set MAX_MCP_OUTPUT_TOKENS low in Claude Code to force efficient tool design

Design Tip #3

Design for Tokens

Every token costs money and adds latency.
Design Tip #4

Unknown Parameters

Log unknown parameters - it's free user research. Shows you what users actually want from your MCP tools.
Design Tip #5

It's for AI Agents!

Section 3

MCP vs Skills

MCP = Enforcement

Skills = Guidance

The Tricky Question

"We don't want duplicate companies/persons in the CRM"

Should the duplicate check be in Skills or MCP tools?

Skills

  • Warn the user
  • Suggest existing matches
  • Let them decide

MCP

  • Enforce uniqueness
  • Reject duplicates at the server
Answer: both - Skills guide ("did you mean this company?"), MCP enforces (reject exact duplicates)

Section 4

Vibe Coding It

How I Built It

Unit Testing / TDD

Tests are not for coverage metrics. They're the spec your AI agent reads.

First-Class Artifacts

These documents ARE the product spec, not throwaway prompts.

CLAUDE.md

# CRM Project

## MCP Server
- Base URL: https://mcp.example.com
- Auth: OAuth 2.1 (Authgear)
- Stack: TypeScript, Hono, SQLite, Fly.io

## Pipelines
- Services (Oursky): Lead → Discovery → Proposal → Closing → Won/Lost
- FormX.ai: Trial → Onboarding → Active → Expansion
- Authgear: similar to FormX

## Skills Available
- /daily, /company, /person, /deal, /meeting, /note, /task

## Conventions
- All amounts in USD unless noted
- Lead = unqualified, Deal = qualified opportunity

The agent reads this every session - it's the source of truth

Takeaways

Questions?

Ben Cheng  |  @chpapa

oursky.com formx.ai authgear.com
GitHub: @chpapa LinkedIn: linkedin.com/in/chpapa