Designing CLIs for Agents, Not Humans — Pedro Lopez, Airbyte
Read full transcript 15 segments
-
Hello everyone. My Hello everyone. My name is Pedro. I am a name is Pedro. I am a name is Pedro. I am a software engineer at software engineer at software engineer at Airbyte. And today we're Airbyte. And today we're Airbyte. And today we're going to talk about how going to talk about how going to talk about how we created our we created our we created our MCP agent and our CLI. Before we MCP agent and our CLI. Before we MCP agent and our CLI. Before we get into the get into the get into the details, I'd like to details, I'd like to details, I'd like to provide a little provide a little provide a little context on context on context on what we do at what we do at what we do at Airbyte and how it Airbyte and how it Airbyte and how it fits into our fits into our fits into our product. So, Airbyte has product. So, Airbyte has product. So, Airbyte has been around for quite some been around for quite some been around for quite some time. We started as an time. We started as an time. We started as an open open open source standard for source standard for source standard for data movement, data movement, data movement, connecting all your connecting all your connecting all your SaaS tools like SaaS tools like SaaS tools like Zendesk, Stripe, GitHub, etc. to Zendesk, Stripe, GitHub, etc. to Zendesk, Stripe, GitHub, etc. to your your your data analytics pipelines. And data analytics pipelines. And data analytics pipelines. And now we've now we've now we've taken that taken that taken that same experience and same experience and same experience and transformed it into a transformed it into a transformed it into a data and action layer data and action layer data and action layer for your AI agents. for your AI agents. We do this We do this with our with our with our Airbyte Agent product, Airbyte Agent product, Airbyte Agent product, which contains a so- which contains a so- which contains a so- called called called context store context store context store that connects to that connects to that connects to all of the aforementioned all of the aforementioned all of the aforementioned tools and tools and tools and sits between sits between sits between your agents, your agents, your agents, providing a searchable providing a searchable providing a searchable index of all your index of all your index of all your data for more data for more data for more efficient queries.
-
efficient queries. So, you can So, you can collect information collect information collect information about all these records, about all these records, about all these records, contacts, and other data contacts, and other data contained in these contained in these contained in these tools and easily tools and easily tools and easily combine them through combine them through combine them through our our our context repository. Our goal is context repository. Our goal is to make data to make data to make data accessible and accessible and usable anywhere. Therefore, we have several Therefore, we have several different interfaces different interfaces different interfaces to access this to access this to access this context store. context store. The first is our SDK, The first is our SDK, which is more convenient if which is more convenient if which is more convenient if you are building your own you are building your own you are building your own agents and agents and agents and tools. The second tools. The second is the is the is the user interface (UI), user interface (UI), user interface (UI), a quick way to a quick way to a quick way to use it through use it through use it through our web application. And our web application. And our web application. And the third thing we'll the third thing we'll the third thing we'll focus on in this focus on in this focus on in this talk is our MCP and talk is our MCP and talk is our MCP and CLI, a way to easily CLI, a way to easily CLI, a way to easily make this available make this available make this available in existing in existing in existing agents like ChatGPT agents like ChatGPT agents like ChatGPT and Claude. So what exactly are and Claude. So what exactly are and Claude. So what exactly are we providing through these we providing through these we providing through these interfaces? Three interfaces? Three interfaces? Three main things. The first main things. The first is the ability is the ability is the ability to manage all the to manage all the to manage all the main resources of main resources of main resources of our product: our product: our product: organizations, organizations, organizations, workspaces, workspaces, workspaces, and connectors. All of and connectors. All of and connectors. All of these interfaces these interfaces these interfaces allow you allow you allow you to interact with them.
-
to interact with them. The second, extremely The second, extremely important thing is important thing is the ability to the ability to the ability to authenticate the authenticate the authenticate the previously mentioned previously mentioned previously mentioned third-party services in a third-party services in a third-party services in a secure way secure way secure way without revealing your without revealing your without revealing your credentials to AI credentials to AI agents. And the third is agents. And the third is to ask and act. to ask and act. So, we want to So, we want to provide the ability to provide the ability to provide the ability to search the search the search the context store, context store, context store, read and write read and write read and write data, and data, and data, and perform actions across all of perform actions across all of perform actions across all of these systems, so we these systems, so we these systems, so we want all of our want all of our want all of our interfaces interfaces interfaces to encompass these three to encompass these three to encompass these three capabilities. We structured MCP and CLI capabilities. We structured MCP and CLI capabilities. We structured MCP and CLI as as as lightweight unified lightweight unified lightweight unified interfaces to our interfaces to our interfaces to our platform, not as its platform, not as its platform, not as its re-implementation. re-implementation. Most of the Most of the surface level of surface level of surface level of these interfaces is these interfaces is these interfaces is presentational: you presentational: you presentational: you enter a command, enter a command, enter a command, call the call the call the platform, and platform, and platform, and format format format the results in some way. All of this is the results in some way. All of this is the results in some way. All of this is based on our based on our based on our shared platform shared platform shared platform and API. Because we and API. Because we and API. Because we roll out roll out roll out updates frequently—our updates frequently—our updates frequently—our platform changes platform changes platform changes over 10 times a day—we over 10 times a day—we over 10 times a day—we want to want to want to keep these keep these keep these interfaces up to interfaces up to interfaces up to date.
-
date. Therefore, the OpenAPI specifications play an important role as a OpenAPI specifications play an important role as a source of truth for source of truth for source of truth for connecting to our connecting to our connecting to our APIs. And many of these APIs. And many of these APIs. And many of these interfaces are interfaces are interfaces are built on built on built on these these these specifications. Okay, specifications. Okay, specifications. Okay, let's move on to let's move on to let's move on to looking at these looking at these looking at these interfaces. Let's start, interfaces. Let's start, interfaces. Let's start, let's start with MCP. MCPs are great let's start with MCP. MCPs are great let's start with MCP. MCPs are great for for for users who users who users who may be may be may be non- non- non- technical. In our technical. In our technical. In our case, this is ideal case, this is ideal case, this is ideal for those who want to for those who want to for those who want to easily connect easily connect easily connect their data their data their data directly to ChatGPT directly to ChatGPT directly to ChatGPT or Claude. The cool thing is that or Claude. The cool thing is that or Claude. The cool thing is that they are packaged very well they are packaged very well they are packaged very well . They are very . They are very . They are very easy to install. easy to install. For example, here is our For example, here is our listing on the listing on the listing on the official official official ChatGPT app store. ChatGPT app store. ChatGPT app store. We also have an application We also have an application We also have an application for Anthropic, for Anthropic, for Anthropic, which is still pending. If which is still pending. If which is still pending. If someone from Anthropic hears us someone from Anthropic hears us someone from Anthropic hears us and wants to approve our and wants to approve our and wants to approve our application. But even application. But even application. But even if you are not on these if you are not on these if you are not on these marketplaces, it is marketplaces, it is quite easy for the end user to install them quite easy for the end user to install them . You simply . You simply . You simply specify the URL of the specify the URL of the specify the URL of the hosted MCP and hosted MCP and hosted MCP and can connect fairly quickly can connect fairly quickly can connect fairly quickly . Okay, . Okay, . Okay, let's look let's look let's look at an example. This is our MCP at an example. This is our MCP at an example. This is our MCP in action. Here I am asking in action. Here I am asking in action. Here I am asking what connectors are what connectors are what connectors are available. The system available. The system available. The system responds that four connectors are configured in responds that four connectors are configured in responds that four connectors are configured in this workspace this workspace .
-
. After that, I can After that, I can After that, I can ask questions ask questions ask questions about my data, about my data, about my data, for example: show for example: show for example: show five paid five paid five paid customers with customers with customers with support tickets in Zendesk. So support tickets in Zendesk. So , now it's , now it's , now it's looking through all the looking through all the looking through all the connections connections connections we have, looking in the we have, looking in the we have, looking in the context store for the context store for the context store for the information information information I asked for. And then I asked for. And then I asked for. And then it combines that it combines that it combines that information with Zendesk and information with Zendesk and information with Zendesk and Stripe to generate a Stripe to generate a Stripe to generate a response for me. response for me. Okay, and here is the Okay, and here is the result. So, he result. So, he result. So, he compared Zendesk and compared Zendesk and compared Zendesk and Stripe data and found Stripe data and found Stripe data and found five five five users who users who users who had open had open had open support tickets. Class. support tickets. Class. support tickets. Class. Let's move on to the Let's move on to the Let's move on to the lessons we lessons we lessons we learned while learned while learned while building this MCP and building this MCP and building this MCP and things to things to things to consider if you're consider if you're consider if you're doing something similar. doing something similar. doing something similar. So, one thing we So, one thing we So, one thing we decided to do decided to do decided to do after trial and error after trial and error was to limit was to limit was to limit the number of the number of the number of tools. So for the tools. So for the tools. So for the execution part of execution part of execution part of the connector where you the connector where you the connector where you pull this data, we pull this data, we pull this data, we only use only use only use two main two main two main tools. The first tools. The first is a description of the connector for is a description of the connector for is a description of the connector for obtaining a obtaining a obtaining a data query schema, and data query schema, and data query schema, and the second is an implementation that the second is an implementation that the second is an implementation that allows reading, allows reading, allows reading, writing, and writing, and writing, and deleting records.
-
deleting records. The opposite of this The opposite of this approach would be approach would be approach would be to create a separate MCP to create a separate MCP tool for tool for tool for each of the many each of the many each of the many connectors, as connectors, as connectors, as each of them has different each of them has different each of them has different entities and actions. entities and actions. However, we have found that However, we have found that narrow specialization narrow specialization , the use of , the use of , the use of progressive progressive connector capability discovery, and connector capability discovery, and limiting the scope of limiting the scope of limiting the scope of context in context in context in tool descriptions significantly tool descriptions significantly tool descriptions significantly improve improve improve MCP MCP server performance. Two: OAuth is the server performance. Two: OAuth is the server performance. Two: OAuth is the right way to go. This right way to go. This right way to go. This applies to how applies to how applies to how you authenticate to the you authenticate to the you authenticate to the MCP server itself. Here is an MCP server itself. Here is an MCP server itself. Here is an example for Anthropic. You example for Anthropic. You example for Anthropic. You click the click the click the connect button, connect button, connect button, our our our OAuth flow starts, you log in OAuth flow starts, you log in OAuth flow starts, you log in to Airbyte, accept to Airbyte, accept to Airbyte, accept the terms of access, and you're the terms of access, and you're the terms of access, and you're ready to go with ready to go with ready to go with all the connected all the connected all the connected connectors. connectors.
-
Technically you can Technically you can use other use other authentication mechanisms through authentication mechanisms through MCP, but it will be MCP, but it will be MCP, but it will be difficult, for example with difficult, for example with difficult, for example with Bearer auth, as Bearer auth, as Bearer auth, as the specification is the specification is the specification is OAuth-oriented and OAuth-oriented and OAuth-oriented and major clients major clients major clients prefer OAuth prefer OAuth prefer OAuth as a better UX for as a better UX for as a better UX for setting up a setting up a setting up a connector. This is an example of connector. This is an example of connector. This is an example of registering your own registering your own registering your own Anthropic connector, where Anthropic connector, where Anthropic connector, where there is no option there is no option there is no option to add, for example, a to add, for example, a to add, for example, a Bearer token. Everything Bearer token. Everything comes down to OAuth by default. So , this is very important. And , this is very important. And secondly, users secondly, users secondly, users actually expect to actually expect to actually expect to have have have long-lasting sessions long-lasting sessions long-lasting sessions through these MCP servers. through these MCP servers. Unlike Unlike a web app, where you a web app, where you a web app, where you can agree to can agree to can agree to re-login re-login re-login multiple times. multiple times. multiple times. Users expect to Users expect to use use MCP as a mobile MCP as a mobile MCP as a mobile app where they don't app where they don't app where they don't have to think about have to think about have to think about authentication. It's authentication. It's authentication. It's simply available simply available simply available whenever they whenever they whenever they want to want to want to use it. Therefore, there use it. Therefore, there use it. Therefore, there are some nuances that are are some nuances that are are some nuances that are worth remembering worth remembering worth remembering when implementing when implementing when implementing OAuth: storing OAuth: storing OAuth: storing long-term offline long-term offline sessions that sessions that sessions that are stored separately are stored separately are stored separately from the web application and from the web application and from the web application and have their own have their own have their own lifecycle. Steeply.
-
lifecycle. Steeply. lifecycle. Steeply. Although requesting Although requesting Although requesting information is not an information is not an information is not an option. So, I'll explain option. So, I'll explain option. So, I'll explain what elicitation is, what elicitation is, what elicitation is, but the important but the important but the important part of the MCP server that part of the MCP server that part of the MCP server that I mentioned is the I mentioned is the I mentioned is the ability ability ability to connect your to connect your to connect your tools. You tools. You tools. You need to provide your need to provide your need to provide your credentials in a credentials in a credentials in a secure way. And secure way. And secure way. And to do this, when to do this, when to do this, when you ask how you ask how you ask how to connect to HubSpot, to connect to HubSpot, to connect to HubSpot, we generate a we generate a we generate a link that you link that you link that you click, a click, a click, a widget opens widget opens , where you select the , where you select the , where you select the entities to entities to entities to connect to, and connect to, and connect to, and are redirected to are redirected to are redirected to HubSpot to go through the HubSpot to go through the HubSpot to go through the OAuth flow. Technically, OAuth flow. Technically, OAuth flow. Technically, MCP has a function in the specification MCP has a function in the specification MCP has a function in the specification that allows it that allows it that allows it to display such to display such URLs and process the URLs and process the URLs and process the input data, which input data, which input data, which is called " is called " elicitation". This is a way of elicitation". This is a way of elicitation". This is a way of requesting information requesting information requesting information from the user. For a long from the user. For a long time, the only mode available was a form request mode, which is not form request mode, which is not suitable for suitable for suitable for sensitive data sensitive data , such as , such as , such as API credentials. But recently, a API credentials. But recently, a URL query mode has emerged that is very URL query mode has emerged that is very similar to what we similar to what we similar to what we do. But the problem is do. But the problem is do. But the problem is support by different support by different support by different MCP clients. This is a MCP clients. This is a MCP clients. This is a big topic when big topic when big topic when working with MCP: even working with MCP: even working with MCP: even with with with a specification, a specification, a specification, the features the features the features supported by supported by supported by different clients different clients vary quite a bit. Here's an vary quite a bit. Here's an example from Cloud Desktop where they example from Cloud Desktop where they example from Cloud Desktop where they simply tell me, " simply tell me, " Hey, I don't support Hey, I don't support Hey, I don't support URL request mode
-
URL request mode ." "I can't ." "I can't ." "I can't do this." So we do this." So we do this." So we have to do have to do have to do everything our own way, without everything our own way, without everything our own way, without using a using a using a specification for specification for specification for such things. Okay, such things. Okay, such things. Okay, let's talk let's talk let's talk a little about the CLI. While MCPs are a little about the CLI. While MCPs are a little about the CLI. While MCPs are simple for simple for simple for non-technical non-technical non-technical users, CLIs are users, CLIs are users, CLIs are their more their more their more technical counterpart. technical counterpart. You could say that it is You could say that it is more powerful in some ways, more powerful in some ways, more powerful in some ways, which we will which we will which we will talk about later. This is the talk about later. This is the talk about later. This is the same example we same example we same example we saw before, but saw before, but saw before, but this time from the MCP, or, this time from the MCP, or, this time from the MCP, or, excuse me, from the CLI, where we excuse me, from the CLI, where we excuse me, from the CLI, where we ask what ask what ask what connectors are connectors are connectors are available to us. This time available to us. This time available to us. This time we load we load we load a skill that informs us a skill that informs us a skill that informs us about the CLI and then about the CLI and then about the CLI and then use the CLI itself use the CLI itself use the CLI itself to execute to execute to execute queries. We received a queries. We received a queries. We received a list of connectors. list of connectors. list of connectors. Then we asked, " Then we asked, " Show me five Show me five Show me five paying customers who paying customers who paying customers who have have have support tickets in Zendesk." Just like support tickets in Zendesk." Just like support tickets in Zendesk." Just like last last last time. This time, it time. This time, it time. This time, it can use the CLI can use the CLI can use the CLI to query, create a to query, create a to query, create a context store, context store, context store, collect that data, and collect that data, and collect that data, and eventually it should eventually it should eventually it should return a result. return a result.
-
So, okay. Here are the same So, okay. Here are the same five five five users. Regarding users. Regarding users. Regarding CLI design, I think it's CLI design, I think it's CLI design, I think it's important to remember to important to remember to important to remember to design the CLI with design the CLI with design the CLI with agents in mind. agents in mind. Some things that Some things that might be might be might be helpful to helpful to helpful to users when users when users when creating a CLI can creating a CLI can creating a CLI can become obstacles become obstacles become obstacles for agents. We'll for agents. We'll for agents. We'll look at this in a little more look at this in a little more look at this in a little more detail. The first detail. The first detail. The first design decision design decision design decision we made was we made was we made was to accept JSON as input to accept JSON as input to accept JSON as input and return JSON as and return JSON as and return JSON as output. People are comfortable output. People are comfortable output. People are comfortable specifying a bunch of specifying a bunch of specifying a bunch of flags to work flags to work flags to work with the CLI, but when it comes with the CLI, but when it comes with the CLI, but when it comes to more complex to more complex to more complex query inputs, query inputs, query inputs, agents agents agents work much better with JSON. work much better with JSON. They are able to They are able to form this more form this more form this more straightforwardly and with straightforwardly and with straightforwardly and with fewer fewer fewer assumptions than when assumptions than when assumptions than when using using using flags. Regarding flags. Regarding flags. Regarding output, JSON also output, JSON also output, JSON also makes it easier to work with makes it easier to work with makes it easier to work with longer responses longer responses longer responses and allows you to and allows you to and allows you to take advantage of one take advantage of one take advantage of one of the key of the key of the key features of CLI: Unix-like features of CLI: Unix-like systems with pipelines systems with pipelines systems with pipelines through which you can through which you can through which you can redirect output redirect output redirect output to different programs.
-
to different programs. For example, you can For example, you can use JQ use JQ use JQ to select certain to select certain to select certain items from the output and items from the output and items from the output and filter them. filter them. So JSON really So JSON really opens up a lot of opens up a lot of opens up a lot of these these these possibilities. Secondly possibilities. Secondly , consistency is , consistency is , consistency is key here. It key here. It key here. It should be quite should be quite should be quite obvious to agents how obvious to agents how obvious to agents how to perform actions with to perform actions with to perform actions with all the resources all the resources all the resources you provide. If you you provide. If you you provide. If you structured your CLI structured your CLI structured your CLI so that so that so that the noun comes first and then the noun comes first and then the noun comes first and then the verb. Like in this the verb. Like in this the verb. Like in this example: connectors list, example: connectors list, example: connectors list, connectors create. connectors create. connectors create. Make sure that when Make sure that when Make sure that when implementing CLI commands implementing CLI commands implementing CLI commands for the workspace, for the workspace, for the workspace, they also they also they also follow this follow this follow this format. So workspace list format. So workspace list is another example is another example is another example that we have. So, it's that we have. So, it's that we have. So, it's really important that really important that really important that agents know how to agents know how to agents know how to do things right, do things right, do things right, and that it's easy for them and that it's easy for them and that it's easy for them to learn about it without to learn about it without to learn about it without having to read a having to read a having to read a bunch of documentation. And bunch of documentation. And bunch of documentation. And another interesting fact: another interesting fact: another interesting fact: if you see if you see if you see agents making the agents making the agents making the same mistake over same mistake over same mistake over and over again, calling the and over again, calling the and over again, calling the wrong team, wrong team, wrong team, consider consider consider making this part of making this part of making this part of your contract.
-
your contract. your contract. Make it as Make it as easy as possible for agents easy as possible for agents to find the right to find the right to find the right way to use the way to use the way to use the tools. Because it tools. Because it tools. Because it usually means that usually means that usually means that something in your something in your something in your CLI contract is not as CLI contract is not as CLI contract is not as obvious as it should obvious as it should obvious as it should be if agents be if agents be if agents keep keep keep making the same making the same making the same mistakes. mistakes. mistakes. Third, the skills Third, the skills Third, the skills come come come with a CLI tool. with a CLI tool. Skills are Skills are mandatory when mandatory when mandatory when working with CLI, because working with CLI, because working with CLI, because otherwise, having the otherwise, having the otherwise, having the CLI installed, CLI installed, CLI installed, the agent will not even the agent will not even the agent will not even know about its know about its know about its existence. This helps a lot existence. This helps a lot existence. This helps a lot in in in identifying the identifying the identifying the tools available to you. And tools available to you. And tools available to you. And they also they also they also help you help you use these use these tools effectively. So, tools effectively. So, tools effectively. So, we have a skill that we have a skill that we have a skill that comes along at the comes along at the comes along at the right time. right time. right time. It has a description that pops up whenever It has a description that pops up whenever you ask something about you ask something about connectors; it knows to connectors; it knows to connectors; it knows to engage engage engage this CLI and call this CLI and call this CLI and call it. And how you it. And how you it. And how you structure the skill is structure the skill is also something to also something to also something to think about. You think about. You think about. You don't want to add don't want to add don't want to add too much to the skill too much to the skill too much to the skill that that that will overload the will overload the will overload the context. Skills context. Skills context. Skills have the ability to have the ability to have the ability to be split into be split into be split into links, where you links, where you links, where you can have a main can have a main can have a main skill that points skill that points skill that points to other files in the to other files in the to other files in the skills directory skills directory skills directory that can that can that can expand on expand on expand on information about different information about different information about different commands. This really commands. This really commands. This really helps reduce helps reduce helps reduce the amount of the amount of context being loaded and context being loaded and leverages the leverages the leverages the agents' ability for agents' ability for agents' ability for progressive progressive progressive discovery. Steeply.
-
discovery. Steeply. discovery. Steeply. Another interesting point Another interesting point Another interesting point about authorization: this is about authorization: this is about authorization: this is important for MCPs, but it is important for MCPs, but it is important for MCPs, but it is also interesting for also interesting for also interesting for our CLIs, since we our CLIs, since we our CLIs, since we cannot assume cannot assume cannot assume that a human will be around that a human will be around that a human will be around to interact with the to interact with the to interact with the prompts. When CLIs prompts. When CLIs prompts. When CLIs are invoked by are invoked by are invoked by agents, they can't agents, they can't agents, they can't just wait for just wait for just wait for you to type a query you to type a query you to type a query into the command line. You into the command line. You into the command line. You should provide should provide should provide data through flags data through flags data through flags or, in the case of or, in the case of or, in the case of credentials, credentials, credentials, through through through environment variables and environment variables and environment variables and configuration files configuration files so that everything is so that everything is so that everything is set up set up set up in advance and you don't in advance and you don't in advance and you don't have to wait have to wait have to wait when invoking the CLI. I would when invoking the CLI. I would when invoking the CLI. I would say that apart from say that apart from say that apart from authorization, this is a authorization, this is a authorization, this is a general rule. general rule. Many CLIs designed Many CLIs designed for humans wait for for humans wait for for humans wait for commands and prompts to be entered commands and prompts to be entered commands and prompts to be entered , which , which , which prevents agents from prevents agents from working with them properly. They working with them properly. They just, let's say, just, let's say, just, let's say, get stuck on it. get stuck on it. get stuck on it. Class. So, which is better: Class. So, which is better: Class. So, which is better: CLI or MCP? Well, each CLI or MCP? Well, each CLI or MCP? Well, each has its own advantages and has its own advantages and has its own advantages and disadvantages. You know, the disadvantages. You know, the disadvantages. You know, the MCP specification is MCP specification is MCP specification is not implemented not implemented not implemented equally everywhere. There are many equally everywhere. There are many equally everywhere. There are many restrictions that restrictions that restrictions that developers developers developers implement besides the implement besides the implement besides the specification itself.
-
specification itself. specification itself. For example, Claude has a For example, Claude has a For example, Claude has a 2 kilobyte limit on 2 kilobyte limit on 2 kilobyte limit on server descriptions and server descriptions and tool calls. There is tool calls. There is a limit on the execution time of the a limit on the execution time of the tools, so it is tools, so it is more difficult to run more difficult to run more difficult to run long processes through long processes through long processes through MCP. And there are other MCP. And there are other MCP. And there are other restrictions they have restrictions they have restrictions they have imposed there. Regarding CLI, the imposed there. Regarding CLI, the imposed there. Regarding CLI, the advantage of MCP is that advantage of MCP is that advantage of MCP is that you can have a you can have a you can have a hosting server hosting server hosting server that is always that is always that is always updated. With CLI, this is updated. With CLI, this is updated. With CLI, this is not quite the case. We not quite the case. We not quite the case. We need to need to need to think more about think more about think more about versioning. It is versioning. It is versioning. It is more difficult more difficult more difficult to keep to keep to keep packages up to date packages up to date packages up to date with all the new with all the new with all the new features. And while features. And while features. And while the limitations in MCP can the limitations in MCP can the limitations in MCP can be significant, their be significant, their be significant, their absence in CLI can absence in CLI can absence in CLI can lead to errors lead to errors lead to errors or cyclical or cyclical or cyclical processes that cause the processes that cause the processes that cause the agent to "hang." Therefore, agent to "hang." Therefore, agent to "hang." Therefore, I believe that both I believe that both I believe that both options have the right options have the right options have the right to life. MCPs are great to life. MCPs are great to life. MCPs are great for for for non- non- non- technical users, for technical users, for technical users, for rapid rapid rapid prototyping, prototyping, prototyping, report generation, and report generation, and report generation, and interoperability between interoperability between interoperability between different systems. And different systems. And different systems. And CLI is better suited CLI is better suited CLI is better suited for technical for technical for technical professionals. These are long professionals. These are long professionals. These are long tasks, large tasks, large tasks, large amounts of data, where amounts of data, where amounts of data, where you can you can you can use use use Unix functions and Unix functions and Unix functions and pipelines, such as pipelines, such as pipelines, such as redirecting redirecting redirecting output to a file, tail or output to a file, tail or output to a file, tail or head. This is where CLI really head. This is where CLI really head. This is where CLI really starts to show its
-
starts to show its starts to show its best. Okay best. Okay . That's actually all I . That's actually all I . That's actually all I wanted to say. We have an wanted to say. We have an wanted to say. We have an Airbyte booth, so Airbyte booth, so Airbyte booth, so come visit us and come visit us and come visit us and join the join the join the work. Thank you.
Summary
The main theme is the creation of the Airbyte MCP agent and CLI for AI agents. Key subjects include data movement, SaaS tools integration, and a context store for searchable data. The takeaway is that these interfaces provide secure authentication and the ability to search, read, write, and act across integrated systems, making data accessible for AI.