Agreed

On Fri, 30 May 2025 at 15:18, Jarek Potiuk <ja...@potiuk.com> wrote:

> 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
> > >> > > > > > > > > > > > > >
> > >> > > > > > > > > > > > > >
> > >> > > > > > > > > > > > >
> > >> > > > > > > > > > > >
> > >> > > > > > > > > > >
> > >> > > > > > > > > >
> > >> > > > > > > > >
> > >> > > > > > > >
> > >> > > > > > >
> > >> > > > > >
> > >> > > > >
> > >> > > >
> > >> > >
> > >> >
> > >>
> > >
> >
>

Reply via email to