Yeah, I think none of us want to just publish the code and be "done" with it ... There is a real work to be done to make MCP much more useful and "AI friendly" and the examples you gave Brian are cool, because I think we need to (and this is mostly the ask from maintainers for the users to come and participate in the design phase of what the MCP can do). It looks like that "backbone" of the MCP and the glue between the REST API and MCP can be done in a simple (and easy to maintain) way. But the added value is indeed in figuring out what would be useful missing things - starting from what broad use cases we want to address - and whether some help for the agent can be described as prompts, better description of the API and examples or maybe we need more aggregated, new APIs (maybe simply new REST API calls we need) that will allow the agents to reason better and faster. All of that is possible.
J On Fri, May 30, 2025 at 11:29 AM Kaxil Naik <kaxiln...@gmail.com> wrote: > You can easily add as many tools you want: > https://gofastmcp.com/servers/tools > > I would be surprised if there is a thing you can't do with FastMCP 2.0+ > that you can do with the MCP Python SDK. > > Like I said earlier: This is a simplistic example :) but the gist is we > should be using the newer abstractions which I am happy to comment during > the development phase too. Like everything else we need to ensure > maintainability is worth the value we create. > > > > On Fri, 30 May 2025 at 14:48, Kaxil Naik <kaxiln...@gmail.com> wrote: > > > Btw we don’t need to use FastMCP just for create MCP from OpenApi spec. > > Many of you mighht already be aware - FastMCP 1.0 was adopted in the > > official mcp python sdk since 1.2 and is recommended high-level server > > framework. > > > > Check: > > https://github.com/modelcontextprotocol/python-sdk/releases/tag/v1.2.0 > > > > @Bryan Coder: I will be surprised if you can’t do the use-case you > > mentioned with FastMCP - either the one donated to MCP Python SDK or > > FastMCP 2.0 - have you tried that? It isn’t just a wrapper! > > > > On Fri, 30 May 2025 at 13:16, Avi <a...@astronomer.io.invalid> wrote: > > > >> Yeah FastMCP is nice, I didn't select fast mcp for this specific reason: > >> - The sheer number of tools that are created using OpenAPI spec doesn't > >> need to be passed to AI every single message. > >> - Instead, we can do a hierarchical tool discovery based on categories. > >> And > >> let AI select a particular category and then get tools only for that > >> category. > >> > >> python3 -c " > >> > import json > >> > with open('path/to/openapi.json') as f: > >> > spec = json.load(f) > >> > > >> > tags = {} > >> > for path, methods in spec['paths'].items(): > >> > for method, details in methods.items(): > >> > if 'tags' in details: > >> > for tag in details['tags']: > >> > tags[tag] = tags.get(tag, 0) + 1 > >> > > >> > print('Tags and their counts:') > >> > for tag, count in sorted(tags.items(), key=lambda x: x[1], > >> reverse=True): > >> > print(f'{tag}: {count}') > >> > " > >> Tags and their counts: > >> Task Instance: 19 > >> Asset: 13 > >> Connection: 8 > >> DagRun: 8 > >> Backfill: 7 > >> DAG: 7 > >> Pool: 6 > >> Variable: 6 > >> XCom: 4 > >> Config: 2 > >> Event Log: 2 > >> Import Error: 2 > >> Plugin: 2 > >> Task: 2 > >> DagVersion: 2 > >> Login: 2 > >> DagSource: 1 > >> DagStats: 1 > >> DagReport: 1 > >> DagWarning: 1 > >> Extra Links: 1 > >> Job: 1 > >> Provider: 1 > >> DAG Parsing: 1 > >> Monitor: 1 > >> Version: 1 > >> > >> My last attempt to do a hierarchical discovery with FastMCP didn't go as > >> expected. > >> But this could be short term. There is something cooking in the model > >> context protocol repo for search of a tool. Ref: > >> https://github.com/modelcontextprotocol/modelcontextprotocol/pull/322 > >> > >> I'll give this a try with FastMCP to see if I can get the > >> hierarchical discovery working. > >> > >> - Avi > >> > >> On Fri, May 30, 2025 at 1:33 AM Bryan Corder <bryancor...@gmail.com> > >> wrote: > >> > >> > In order to bring value, we might want to think beyond just wrapping > the > >> > API. As Kaxil just showed, it's easy to create something with 10 lines > >> of > >> > code and FastMCP. > >> > > >> > However, the Airflow API was made for Airflow operators' consumption, > >> not > >> > necessarily for LLM consumption. When you have an endpoint called > >> "Delete > >> > DAG" with a description "Delete a specific DAG" that's very easy for > any > >> > user who has already navigated to the Airflow API spec to understand, > >> but > >> > maybe not the best tool description for an LLM. I think we'd want to > >> either > >> > exclude that or add additional context for the LLM to know it's > >> > destructive. > >> > > >> > In addition, LLMs can struggle with tool selection when you give it 80 > >> > tools to work with. Things in the middle sometimes get lost in the > >> context. > >> > There are ways to customize the FastMCP ( > >> > https://gofastmcp.com/servers/openapi#custom-route-maps) to cut down > >> the > >> > list of options, should you choose. > >> > > >> > However, it may be better to create something more tailored to LLMs. > >> > Thinking about the use case of getting LLM assistance with debugging a > >> > failed run, one of the things my teams do is put the "run book" for > prod > >> > support in the doc_md notes right with the DAG, so if a file never > >> shows up > >> > they know exactly what to do in that situation (potentially, do > >> nothing). > >> > We also include other information like, "xx task can be flaky. If you > >> get > >> > this error, rerunning it will usually resolve it." The goal is for any > >> > engineer armed with the stack trace and the run book to be able to > solve > >> > any error. My team has all that information right in the UI. To get > that > >> > information, the LLM would need to know to hit the DAG Details > endpoint > >> for > >> > one minor attribute amongst several for the doc_md and get the correct > >> dag > >> > id, run id, task id and try number to grab the stack trace from the > >> failed > >> > run. It would then need to go elsewhere to find the DAG code to > debug. I > >> > think it would be better to just create a "debug_failed_task" tool an > >> LLM > >> > could call from an MCP server that would string those calls together > and > >> > serve them up to the LLM on a silver platter. The LLM could focus all > >> its > >> > "reasoning" efforts on solving the problem instead of figuring out how > >> to > >> > get the information it needs to even begin. > >> > > >> > Again, if we just want to wrap the API in FastMCP, we can share > Kaxil's > >> 10 > >> > lines of code in a Medium article and be done. I think the real value > >> is in > >> > providing an implementation of a limited set of more complex base > tools > >> > like debug_failed_task (described above), pause_all_active_DAGs > (because > >> > I'm about to upgrade!), describe_DAG (grabs only the description, > >> > dependencies, converts cron schedule to human readable if applicable, > >> etc) > >> > and giving people a way to extend the server. > >> > > >> > The above is tool focused. As Avi pointed out, there are also > resources > >> and > >> > prompts, but I've only personally worked with tools and have nothing > to > >> add > >> > there. > >> > > >> > With all the LLM tools quickly advancing on the development side (e.g. > >> code > >> > generation/review), it's great to see the community working on > building > >> > tools to help with the operational side. > >> > > >> > Bryan > >> > > >> > > >> > On Thu, May 29, 2025, 4:50 PM Kaxil Naik <kaxiln...@gmail.com> wrote: > >> > > >> > > One more comment: MCP SDKs have advanced quite a bit and I was able > to > >> > get > >> > > an Airflow MCP Server working with just the following code block. I > >> was > >> > > successfully able to pause/unpause a DAG from Claude and other MCP > >> client > >> > > as an example. So as much as possible we should utilize higher level > >> > > abstraction like FastMCP which allows creating client from OpenAPI > >> spec > >> > > <https://gofastmcp.com/servers/openapi#openapi-integration>: > >> > > > >> > > import os > >> > > > >> > > import httpx > >> > > from fastmcp import FastMCP > >> > > > >> > > token = os.environ.get("AF_ACCESS_TOKEN") > >> > > client = httpx.AsyncClient( > >> > > base_url="http://localhost:28080", > >> > > headers={"Authorization": f"Bearer {token}"}, > >> > > ) > >> > > > >> > > openapi_spec = httpx.get("http://localhost:28080/openapi.json > >> > ").json() > >> > > > >> > > mcp = FastMCP.from_openapi( > >> > > openapi_spec=openapi_spec, > >> > > client=client, > >> > > name="Airflow 3.0 API Server" > >> > > ) > >> > > > >> > > if __name__ == "__main__": > >> > > mcp.run() > >> > > > >> > > > >> > > > >> > > On Thu, 29 May 2025 at 20:32, Avi <a...@astronomer.io.invalid> > wrote: > >> > > > >> > > > @Shahar -- Yes. Definitely. Feel free to reachout if you need > >> anything. > >> > > > > >> > > > I totally agree, it to live as a separate repo. > >> > > > > >> > > > - Avi > >> > > > > >> > > > On Thu, May 29, 2025 at 12:50 PM Kaxil Naik <kaxiln...@gmail.com> > >> > wrote: > >> > > > > >> > > > > @Shahar -- Absolutely, I think you are driving it with this > email. > >> > So I > >> > > > > think you can lead it from here and whoever wants to join can > >> co-lead > >> > > or > >> > > > > join in development. > >> > > > > > >> > > > > Please feel free to drive :) > >> > > > > > >> > > > > On Thu, 29 May 2025 at 17:07, Aaron Dantley < > >> aarondant...@gmail.com> > >> > > > > wrote: > >> > > > > > >> > > > > > Hey All! > >> > > > > > > >> > > > > > I’d be grateful to be included in the AIP discussions to help > if > >> > > > possible > >> > > > > > too! Like Shahar, I’ve never worked on any of these items so > >> it’d > >> > be > >> > > > > great > >> > > > > > to see how work gets assigned and goes through a whole > >> development > >> > > > cycle! > >> > > > > > > >> > > > > > Looking forward to it! > >> > > > > > Aaron > >> > > > > > > >> > > > > > On Thu, May 29, 2025 at 7:32 AM Shahar Epstein < > >> sha...@apache.org> > >> > > > > wrote: > >> > > > > > > >> > > > > > > If it's ok, I would like to lead the AIP effort (or at least > >> > > > co-lead), > >> > > > > as > >> > > > > > > I've never written an AIP before. I could start drafting it > >> > during > >> > > > the > >> > > > > > next > >> > > > > > > week. > >> > > > > > > Avi - please let me know if it works for you. > >> > > > > > > > >> > > > > > > > >> > > > > > > Shahar > >> > > > > > > > >> > > > > > > > >> > > > > > > On Thu, May 29, 2025, 13:09 Kaxil Naik <kaxiln...@gmail.com > > > >> > > wrote: > >> > > > > > > > >> > > > > > > > Yes separate repo, please and we would need someone to > lead > >> > this > >> > > > > effort > >> > > > > > > on > >> > > > > > > > the proposal & development too. Avi - you are probably > well > >> > > > equipped > >> > > > > to > >> > > > > > > > lead it and I am sure more folks like Aaraon would be > eager > >> to > >> > > work > >> > > > > on > >> > > > > > > its > >> > > > > > > > development and on-going maintenance. > >> > > > > > > > > >> > > > > > > > Regards, > >> > > > > > > > Kaxil > >> > > > > > > > > >> > > > > > > > On Thu, 29 May 2025 at 15:25, Jarek Potiuk < > >> ja...@potiuk.com> > >> > > > wrote: > >> > > > > > > > > >> > > > > > > > > Yep. Having MCP is cool and drawing our implementation > >> from > >> > > > > > experiences > >> > > > > > > > and > >> > > > > > > > > usage of other MCP servers out there is even cooler > >> > (especially > >> > > > > that > >> > > > > > we > >> > > > > > > > can > >> > > > > > > > > have some insights how people already use them with > >> Airflow) > >> > - > >> > > if > >> > > > > we > >> > > > > > > can > >> > > > > > > > > bring together a few of those, put some nice, relevant > >> > Airflow > >> > > > > > prompts. > >> > > > > > > > > Ideally we could have some examples of how MCP can be > used > >> > > taken > >> > > > > from > >> > > > > > > > those > >> > > > > > > > > who are using airflow (the debugging example by Avi is > >> cool) > >> > > > > > > > > > >> > > > > > > > > I am not sure implementing it as provider is really "the > >> way" > >> > > > > though > >> > > > > > - > >> > > > > > > I > >> > > > > > > > > would rather see `apache-airflow-mcp" separate repo - > >> it's so > >> > > > > > different > >> > > > > > > > and > >> > > > > > > > > distinct from airflow it does not really require any of > >> > Airflow > >> > > > > > > internals > >> > > > > > > > > and code to be implemented - it makes very little sense > >> to be > >> > > the > >> > > > > > part > >> > > > > > > of > >> > > > > > > > > airflow "workspace" where we would develop it together > >> with > >> > > > > airflow - > >> > > > > > > > > because if it will talk over the REST api, all we need > is > >> the > >> > > > > > `client` > >> > > > > > > > that > >> > > > > > > > > might be just a dependency. And there is even no reason > >> for > >> > MCP > >> > > > and > >> > > > > > > > airflow > >> > > > > > > > > to be installed and developed together (that's the main > >> > reason > >> > > > why > >> > > > > we > >> > > > > > > > want > >> > > > > > > > > providers to be kept in monorepo. > >> > > > > > > > > > >> > > > > > > > > J. > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > On Thu, May 29, 2025 at 8:37 AM Amogh Desai < > >> > > > > > amoghdesai....@gmail.com> > >> > > > > > > > > wrote: > >> > > > > > > > > > >> > > > > > > > > > Seems like a promising area to invest in given the > >> benefits > >> > > it > >> > > > > can > >> > > > > > > > > provide > >> > > > > > > > > > to > >> > > > > > > > > > the users as mentioned by Shahar and Abhishek. > >> > > > > > > > > > > >> > > > > > > > > > Abhishek also has a promising talk submitted which i > am > >> > > looking > >> > > > > > > forward > >> > > > > > > > > to > >> > > > > > > > > > this year at the summit. > >> > > > > > > > > > > >> > > > > > > > > > In any case, this seems to be one of the first of the > >> very > >> > > few > >> > > > > > > > > > implementations of trying > >> > > > > > > > > > to integrate Airflow officially / unofficially with an > >> MCP > >> > > > > server. > >> > > > > > > > > > > >> > > > > > > > > > Thanks & Regards, > >> > > > > > > > > > Amogh Desai > >> > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > On Thu, May 29, 2025 at 2:56 AM Aaron Dantley < > >> > > > > > > aarondant...@gmail.com> > >> > > > > > > > > > wrote: > >> > > > > > > > > > > >> > > > > > > > > > > Hey! > >> > > > > > > > > > > > >> > > > > > > > > > > I also think this is a great idea! > >> > > > > > > > > > > > >> > > > > > > > > > > Would it be possible to be included in the > development > >> > > > process? > >> > > > > > > > > > > > >> > > > > > > > > > > Sorry I’m new to this group, but would appreciate > any > >> > > > > suggestions > >> > > > > > > on > >> > > > > > > > > how > >> > > > > > > > > > to > >> > > > > > > > > > > contribute to the MCP server development! > >> > > > > > > > > > > > >> > > > > > > > > > > Regards! > >> > > > > > > > > > > Aaron > >> > > > > > > > > > > > >> > > > > > > > > > > On Wed, May 28, 2025 at 2:57 PM Avi > >> > > > <a...@astronomer.io.invalid > >> > > > > > > >> > > > > > > > wrote: > >> > > > > > > > > > > > >> > > > > > > > > > > > Nice to see the idea to incorporate an official > MCP > >> > > server > >> > > > > for > >> > > > > > > > > > > > Airflow. It's been really magical to see what a > >> simple > >> > > LLM > >> > > > > can > >> > > > > > do > >> > > > > > > > > with > >> > > > > > > > > > an > >> > > > > > > > > > > > Airflow MCP server built just from APIs. > >> > > > > > > > > > > > > >> > > > > > > > > > > > A few things that I noticed in my experience: > >> > > > > > > > > > > > - The number of tools that the OpenAPI spec > >> generates > >> > is > >> > > > > quite > >> > > > > > > > huge. > >> > > > > > > > > > Most > >> > > > > > > > > > > > tools (*Claude, VS Code with GitHub Copilot, > Cursor, > >> > > > > Windsurf*) > >> > > > > > > > which > >> > > > > > > > > > > uses > >> > > > > > > > > > > > mcp-client limits it to a number of 100 tools. > (*The > >> > > > > read-only > >> > > > > > > mode > >> > > > > > > > > > > creates > >> > > > > > > > > > > > less tools in comparison*.) > >> > > > > > > > > > > > - MCP server are just not tools. There are other > >> things > >> > > as > >> > > > > > well, > >> > > > > > > > like > >> > > > > > > > > > > > resources and prompts. Prompts are super helpful > in > >> > case > >> > > of > >> > > > > > > > debugging > >> > > > > > > > > > for > >> > > > > > > > > > > > example. It is a way of teaching LLM about > Airflow. > >> > Say I > >> > > > > want > >> > > > > > to > >> > > > > > > > > have > >> > > > > > > > > > a > >> > > > > > > > > > > > failing task investigated. A prompt can be helpful > >> in > >> > > > letting > >> > > > > > LLM > >> > > > > > > > > know > >> > > > > > > > > > a > >> > > > > > > > > > > > step-by-step process of carrying out the > >> investigation. > >> > > > > > > > > > > > - Where do you run the MCP server? I wouldn't want > >> my > >> > > > laptop > >> > > > > to > >> > > > > > > do > >> > > > > > > > > the > >> > > > > > > > > > > > heavy processing, which would want us to go for > the > >> SSE > >> > > > > instead > >> > > > > > > of > >> > > > > > > > > > stdio. > >> > > > > > > > > > > > > >> > > > > > > > > > > > This is why I chose two different path of using > mcp > >> > > server > >> > > > > with > >> > > > > > > > > > airflow, > >> > > > > > > > > > > > which I intend to talk about at the summit. > >> > > > > > > > > > > > > >> > > > > > > > > > > > 1. AI-Augmented Airflow - This helped me add a > chat > >> > > > interface > >> > > > > > > > inside > >> > > > > > > > > > > > Airflow using a plugin to talk to an Airflow > >> instance > >> > > (read > >> > > > > > only > >> > > > > > > > > mode). > >> > > > > > > > > > > > > >> > > > > > > > > > > > 2. Airflow-Powered AI - Experimenting with this > has > >> > been > >> > > > > > totally > >> > > > > > > > > > magical, > >> > > > > > > > > > > > how powerful AI can become when it has access to > >> > airflow. > >> > > > > > Also, a > >> > > > > > > > > > > directory > >> > > > > > > > > > > > structure to maintain the DAGs, and it can write > >> DAGs > >> > on > >> > > > the > >> > > > > > > fly. I > >> > > > > > > > > > > totally > >> > > > > > > > > > > > see a need where LLMs eventually will need a > >> scheduler, > >> > > > > > although > >> > > > > > > a > >> > > > > > > > > > > complete > >> > > > > > > > > > > > airflow just for an LLM might seem a bit overkill > to > >> > the > >> > > > rest > >> > > > > > of > >> > > > > > > > the > >> > > > > > > > > > > > community. > >> > > > > > > > > > > > > >> > > > > > > > > > > > I chose to build this on top of open API is > because > >> > that > >> > > > was > >> > > > > > the > >> > > > > > > > only > >> > > > > > > > > > way > >> > > > > > > > > > > > to get proper RBAC enabled. > >> > > > > > > > > > > > > >> > > > > > > > > > > > I have so many points to discuss. Would love to > hear > >> > from > >> > > > the > >> > > > > > > > > community > >> > > > > > > > > > > and > >> > > > > > > > > > > > then take it forward. > >> > > > > > > > > > > > > >> > > > > > > > > > > > Thanks, > >> > > > > > > > > > > > Avi > >> > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > On Wed, May 28, 2025 at 6:32 PM Aritra Basu < > >> > > > > > > > > aritrabasu1...@gmail.com> > >> > > > > > > > > > > > wrote: > >> > > > > > > > > > > > > >> > > > > > > > > > > > > I definitely think there's potential to interact > >> with > >> > > an > >> > > > > > > airflow > >> > > > > > > > > MCP > >> > > > > > > > > > > > > server. Though I think I'd be interested to see > >> how > >> > > many > >> > > > > and > >> > > > > > > how > >> > > > > > > > > > > > frequently > >> > > > > > > > > > > > > people are making use of MCP servers in the wild > >> > before > >> > > > > > > investing > >> > > > > > > > > > > effort > >> > > > > > > > > > > > in > >> > > > > > > > > > > > > building and maintaining one for airflow. I'm > sure > >> > the > >> > > > data > >> > > > > > is > >> > > > > > > > > > > available > >> > > > > > > > > > > > > out there, just needs finding. > >> > > > > > > > > > > > > -- > >> > > > > > > > > > > > > Regards, > >> > > > > > > > > > > > > Aritra Basu > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > On Wed, 28 May 2025, 11:18 pm Julian LaNeve, > >> > > > > > > > > > > > <jul...@astronomer.io.invalid > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > wrote: > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > > I think this would be interesting now that the > >> > > > Streamable > >> > > > > > > HTTP > >> > > > > > > > > > spec < > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://modelcontextprotocol.io/specification/2025-03-26/basic/transports > >> > > >> > > > > > > > > > > > > > is out. I think in theory we could publish > this > >> > first > >> > > > as > >> > > > > an > >> > > > > > > > > Airflow > >> > > > > > > > > > > > > > provider that installs a plugin to expose an > MCP > >> > > > > endpoint, > >> > > > > > > as a > >> > > > > > > > > > PoC - > >> > > > > > > > > > > > > this > >> > > > > > > > > > > > > > becomes a much nicer experience than a local > >> stdio > >> > > one. > >> > > > > > > > > > > > > > -- > >> > > > > > > > > > > > > > Julian LaNeve > >> > > > > > > > > > > > > > CTO > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > Email: jul...@astronomer.io > >> > > > > > > > > > > > > > <mailto:jul...@astronomer.io>Mobile: 330 509 > >> 5792 > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > On May 28, 2025, at 1:25 PM, Shahar Epstein > < > >> > > > > > > > sha...@apache.org > >> > > > > > > > > > > >> > > > > > > > > > > > wrote: > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > Dear community, > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > Following the thread on Slack [1], initiated > >> by > >> > > Jason > >> > > > > > > > Sebastian > >> > > > > > > > > > > > Kusuma, > >> > > > > > > > > > > > > > I'd > >> > > > > > > > > > > > > > > like to start an effort to officially > support > >> MCP > >> > > in > >> > > > > > > > Airflow's > >> > > > > > > > > > > > > codebase. > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > *Some background * > >> > > > > > > > > > > > > > > Model Context Protocol (MCP) is an open > >> standard, > >> > > > > > > open-source > >> > > > > > > > > > > > framework > >> > > > > > > > > > > > > > > that standardizes the way AI models like LLM > >> > > > integrate > >> > > > > > and > >> > > > > > > > > share > >> > > > > > > > > > > data > >> > > > > > > > > > > > > > with > >> > > > > > > > > > > > > > > external tools, systems and data sources. > >> Think > >> > of > >> > > it > >> > > > > as > >> > > > > > a > >> > > > > > > > > "USB-C > >> > > > > > > > > > > for > >> > > > > > > > > > > > > > AI" - > >> > > > > > > > > > > > > > > a universal connector that simplifies and > >> > > > standardizes > >> > > > > AI > >> > > > > > > > > > > > > integrations. A > >> > > > > > > > > > > > > > > notable example of an MCP server is GitHub's > >> > > official > >> > > > > > > > > > > implementation > >> > > > > > > > > > > > > > [3], which > >> > > > > > > > > > > > > > > allows LLMs such as Claude, Copilot, and > >> OpenAI > >> > > (or: > >> > > > > "MCP > >> > > > > > > > > > clients") > >> > > > > > > > > > > > to > >> > > > > > > > > > > > > > > fetch pull request details, analyze code > >> changes, > >> > > and > >> > > > > > > > generate > >> > > > > > > > > > > review > >> > > > > > > > > > > > > > > summaries. > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > *How could an MCP server be useful in > >> Airflow?* > >> > > > > > > > > > > > > > > Imagine the possibilities when LLMs can > >> > seamlessly > >> > > > > > interact > >> > > > > > > > > with > >> > > > > > > > > > > > > > Airflow’s > >> > > > > > > > > > > > > > > API: triggering DAGs using natural language, > >> > > > retrieving > >> > > > > > DAG > >> > > > > > > > run > >> > > > > > > > > > > > > history, > >> > > > > > > > > > > > > > > enabling smart debugging, and more. This > kind > >> of > >> > > > > > > integration > >> > > > > > > > > > opens > >> > > > > > > > > > > > the > >> > > > > > > > > > > > > > door > >> > > > > > > > > > > > > > > to a more intuitive, conversational > interface > >> for > >> > > > > > workflow > >> > > > > > > > > > > > > orchestration. > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > *Why do we need to support it officially?* > >> > > > > > > > > > > > > > > Quid pro quo - LLMs become an integral part > of > >> > the > >> > > > > modern > >> > > > > > > > > > > development > >> > > > > > > > > > > > > > > experience, while Airflow evolves into the > >> go-to > >> > > for > >> > > > > > > > > > orchestrating > >> > > > > > > > > > > AI > >> > > > > > > > > > > > > > > workflows. By officially supporting it, > we’ll > >> > > enable > >> > > > > > > multiple > >> > > > > > > > > > users > >> > > > > > > > > > > > to > >> > > > > > > > > > > > > > > interact with Airflow through their LLMs, > >> > > > streamlining > >> > > > > > > > > automation > >> > > > > > > > > > > and > >> > > > > > > > > > > > > > > improving accessibility across diverse > >> workflows. > >> > > All > >> > > > > of > >> > > > > > > that > >> > > > > > > > > is > >> > > > > > > > > > > > viable > >> > > > > > > > > > > > > > > with relatively small development effort > (see > >> > next > >> > > > > > > > paragraph). > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > *How should it be implemented?* > >> > > > > > > > > > > > > > > As of today, there have been several > >> > > implementations > >> > > > of > >> > > > > > MCP > >> > > > > > > > > > servers > >> > > > > > > > > > > > for > >> > > > > > > > > > > > > > > Airflow API, the most visible one [4] made > by > >> > > > Abhishek > >> > > > > > > Bhakat > >> > > > > > > > > > from > >> > > > > > > > > > > > > > > Astronomer. > >> > > > > > > > > > > > > > > The efforts of implementing it and > >> maintaining it > >> > > in > >> > > > > our > >> > > > > > > > > codebase > >> > > > > > > > > > > > > > shouldn't > >> > > > > > > > > > > > > > > be too cumbersome (at least in theory), as > we > >> > could > >> > > > > > utilize > >> > > > > > > > > > > packages > >> > > > > > > > > > > > > like > >> > > > > > > > > > > > > > > fastmcp to auto-generate the server using > the > >> > > > existing > >> > > > > > > > OpenAPI > >> > > > > > > > > > > specs. > >> > > > > > > > > > > > > I'd > >> > > > > > > > > > > > > > > be very happy if Abhishek could share his > >> > > experience > >> > > > in > >> > > > > > > this > >> > > > > > > > > > > thread. > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > *Where else could we utilize MCP?* > >> > > > > > > > > > > > > > > Beyond the scope of the public API, I could > >> also > >> > > > > imagine > >> > > > > > > > using > >> > > > > > > > > it > >> > > > > > > > > > > to > >> > > > > > > > > > > > > > > communicate with Breeze. > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > *How do we proceed from here?* > >> > > > > > > > > > > > > > > Feel free to share your thoughts here in > this > >> > > > > discussion. > >> > > > > > > > > > > > > > > If there are no objections, I'll be happy to > >> > start > >> > > > > > working > >> > > > > > > on > >> > > > > > > > > an > >> > > > > > > > > > > AIP. > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > Sincerely, > >> > > > > > > > > > > > > > > Shahar Epstein > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > *References:* > >> > > > > > > > > > > > > > > [1] Slack discussion, > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > >> > > > > > >> > > > >> https://apache-airflow.slack.com/archives/C06K9Q5G2UA/p1746121916951569 > >> > > > > > > > > > > > > > > [2] Introducing the model context protocol, > >> > > > > > > > > > > > > > > > >> > > > https://www.anthropic.com/news/model-context-protocol > >> > > > > > > > > > > > > > > [3] GitHub Official MCP server, > >> > > > > > > > > > > > > > https://github.com/github/github-mcp-server > >> > > > > > > > > > > > > > > [4] Unofficial MCP Server made by Abhishek > >> Hakat, > >> > > > > > > > > > > > > > > > >> > > https://github.com/abhishekbhakat/airflow-mcp-server > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > > >