---
schema: 1
type: video
title: 'Designing CLIs for Agents, Not Humans — Pedro Lopez, Airbyte'
description: >-
  Airbyte built both an MCP server and a CLI so agents can use its data. Here's
  what each one is actually good for. Pedro Lopez, software engineer at Airbyte,
  shares lessons from building two ways for AI agents to reach company data
  through Airbyte's Context Store, a search-optimized index of tools like
  Zendesk, Stripe and HubSpot. Both are thin interfaces over one platform, built
  from OpenAPI specs. For the MCP server, he explains why to keep the tool count
  small and use progressive discovery, why OAuth is the only realistic way to
  sign in, why users expect long-lived sessions, and why URL elicitation isn't
  ready across clients yet. For the CLI, he explains designing for agents
  instead of humans: JSON in and JSON out, consistent noun-verb commands, skills
  that ship with the tool, and no interactive prompts. He closes with when to
  choose MCP and when to choose a CLI. In this talk: • Keeping MCP tool counts
  small with progressive discovery • OAuth, long sessions, and elicitation in
  real MCP clients • Designing a CLI for agents: JSON in, JSON out, consistency,
  skills • When to choose MCP, and when to choose a CLI SPEAKER Pedro Lopez,
  Software Engineer, Airbyte LinkedIn: https://www.linkedin.com/in/pedroslopez/
  GitHub: https://github.com/pedroslopez Website: https://pedroslopez.me/ LINKS
  Airbyte Context Store: https://airbyte.com/agentic-data/context-store Airbyte
  agent MCP docs: https://docs.airbyte.com/ai-agents/interfaces/mcp/ Airbyte
  Agent CLI: https://airbyte.com/agent-cli Airbyte on X: https://x.com/AirbyteHQ
  CHAPTERS 0:00 Intro 0:32 From data movement to AI agents 1:02 The Context
  Store 2:12 What the interfaces expose 3:07 Thin interfaces on one platform
  3:57 The MCP server 4:52 Demo: MCP in ChatGPT 5:52 Keep the tool count small
  6:52 OAuth is the way 7:56 Users expect long sessions 8:31 Elicitation isn't
  ready yet 10:11 The CLI 10:26 Demo: the CLI 11:11 Designing CLIs for agents
  11:31 JSON in, JSON out 12:36 Consistency 13:51 Ship skills with the CLI 15:06
  No prompts: auth for agents 16:01 MCP vs CLI Recorded at the AI Engineer
  World's Fair 2026 in San Francisco. Subscribe for more talks from the
  engineers building with AI. AI Engineer: https://ai.engineer YouTube:
  https://www.youtube.com/@aiDotEngineer X: https://x.com/aiDotEngineer
  LinkedIn: https://www.linkedin.com/company/aidotengineer/ #MCP #AIAgents
  #AIEngineer
canonical: >-
  https://liquidgold.cc/channel/aidotengineer/explore/video/designing-clis-for-agents-not-humans-pedro-lopez-ai-318b949f064b
markdown: >-
  https://liquidgold.cc/channel/aidotengineer/video/designing-clis-for-agents-not-humans-pedro-lopez-ai-318b949f064b.md
llms: null
parent: 'https://liquidgold.cc/channel/aidotengineer.md'
channel: aidotengineer
updated: '2026-10-23T22:19:29.883Z'
language: null
children: []
videoId: 3wj6sgbi1YA
durationSeconds: 1100
publishedAt: '2026-10-09T17:00:31.000Z'
searchChunks:
  - ordinal: 0
    text: null
    startSeconds: 44
    endSeconds: 68
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=44'
    heldReason: rights
  - ordinal: 1
    text: null
    startSeconds: 78
    endSeconds: 135
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=78'
    heldReason: rights
  - ordinal: 2
    text: null
    startSeconds: 145
    endSeconds: 192
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=145'
    heldReason: rights
  - ordinal: 3
    text: null
    startSeconds: 192
    endSeconds: 202
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=192'
    heldReason: rights
  - ordinal: 4
    text: null
    startSeconds: 202
    endSeconds: 246
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=202'
    heldReason: rights
  - ordinal: 5
    text: null
    startSeconds: 312
    endSeconds: 357
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=312'
    heldReason: rights
  - ordinal: 6
    text: null
    startSeconds: 368
    endSeconds: 415
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=368'
    heldReason: rights
  - ordinal: 7
    text: null
    startSeconds: 426
    endSeconds: 480
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=426'
    heldReason: rights
  - ordinal: 8
    text: null
    startSeconds: 524
    endSeconds: 616
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=524'
    heldReason: rights
  - ordinal: 9
    text: null
    startSeconds: 690
    endSeconds: 701
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=690'
    heldReason: rights
  - ordinal: 10
    text: null
    startSeconds: 767
    endSeconds: 836
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=767'
    heldReason: rights
  - ordinal: 11
    text: null
    startSeconds: 836
    endSeconds: 848
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=836'
    heldReason: rights
  - ordinal: 12
    text: null
    startSeconds: 916
    endSeconds: 927
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=916'
    heldReason: rights
  - ordinal: 13
    text: null
    startSeconds: 963
    endSeconds: 975
    watch: 'https://liquidgold.cc/watch/3wj6sgbi1YA?t=963'
    heldReason: rights
---


# Designing CLIs for Agents, Not Humans — Pedro Lopez, Airbyte

Airbyte built both an MCP server and a CLI so agents can use its data. Here's what each one is actually good for. Pedro Lopez, software engineer at Airbyte, shares lessons from building two ways for AI agents to reach company data through Airbyte's Context Store, a search-optimized index of tools like Zendesk, Stripe and HubSpot. Both are thin interfaces over one platform, built from OpenAPI specs. For the MCP server, he explains why to keep the tool count small and use progressive discovery, why OAuth is the only realistic way to sign in, why users expect long-lived sessions, and why URL elicitation isn't ready across clients yet. For the CLI, he explains designing for agents instead of humans: JSON in and JSON out, consistent noun-verb commands, skills that ship with the tool, and no interactive prompts. He closes with when to choose MCP and when to choose a CLI. In this talk: • Keeping MCP tool counts small with progressive discovery • OAuth, long sessions, and elicitation in real MCP clients • Designing a CLI for agents: JSON in, JSON out, consistency, skills • When to choose MCP, and when to choose a CLI SPEAKER Pedro Lopez, Software Engineer, Airbyte LinkedIn: https://www.linkedin.com/in/pedroslopez/ GitHub: https://github.com/pedroslopez Website: https://pedroslopez.me/ LINKS Airbyte Context Store: https://airbyte.com/agentic-data/context-store Airbyte agent MCP docs: https://docs.airbyte.com/ai-agents/interfaces/mcp/ Airbyte Agent CLI: https://airbyte.com/agent-cli Airbyte on X: https://x.com/AirbyteHQ CHAPTERS 0:00 Intro 0:32 From data movement to AI agents 1:02 The Context Store 2:12 What the interfaces expose 3:07 Thin interfaces on one platform 3:57 The MCP server 4:52 Demo: MCP in ChatGPT 5:52 Keep the tool count small 6:52 OAuth is the way 7:56 Users expect long sessions 8:31 Elicitation isn't ready yet 10:11 The CLI 10:26 Demo: the CLI 11:11 Designing CLIs for agents 11:31 JSON in, JSON out 12:36 Consistency 13:51 Ship skills with the CLI 15:06 No prompts: auth for agents 16:01 MCP vs CLI Recorded at the AI Engineer World's Fair 2026 in San Francisco. Subscribe for more talks from the engineers building with AI. AI Engineer: https://ai.engineer YouTube: https://www.youtube.com/@aiDotEngineer X: https://x.com/aiDotEngineer LinkedIn: https://www.linkedin.com/company/aidotengineer/ #MCP #AIAgents #AIEngineer

Canonical: https://liquidgold.cc/channel/aidotengineer/explore/video/designing-clis-for-agents-not-humans-pedro-lopez-ai-318b949f064b · Channel: [AI Engineer](https://liquidgold.cc/channel/aidotengineer.md)

> Search chunk text is held until public-source provenance is verified.

## Document chunks

---

#### Chunk 0: Document excerpt (0:12 to 2:15)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 1: Document excerpt (2:15 to 4:06)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 2: Document excerpt (4:06 to 5:57)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 3: Document excerpt (5:57 to 6:55)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 4: Document excerpt (6:55 to 8:33)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 5: Document excerpt (8:33 to 10:16)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 6: Document excerpt (10:16 to 11:30)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 7: Document excerpt (11:30 to 12:36)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 8: Document excerpt (12:36 to 13:56)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 9: Document excerpt (13:56 to 15:16)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 10: Document excerpt (15:16 to 16:03)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 11: Document excerpt (16:03 to 18:20)

> Held: transcript rights do not permit this chunk's text.
