July 30, 2025
Making ERDDAP Accessible to AI Assistants
Bob Currier, Data Scientist/Product Developer
Run time: 1:00:54
00:00:00:00 - 00:00:25:14
Mathew Biddle
So just a little preface. The, these are this. Welcome to this month’s — we're in July, almost August — DMAC Tech webinar. So these webinars are an opportunity for the IOOS community to come together to discuss topics related to data management and cyberinfrastructure approaches and different activities going on within the Regional Associations, different projects and partners within the IOOS community.
00:00:25:16 - 00:00:40:23
Mathew Biddle
Some of these can be technical, like what Bob's going to talk about today, others can be higher level. So if you have something of interest and you'd like to talk to the broader community, feel free to reach out to myself or Micah or Laura or anybody at the IOOS office, and we can schedule a slot for you.
00:00:40:23 - 00:01:14:16
Mathew Biddle
This is for everybody. So, please feel free to hop in if you have something of interest. So what do we have for you today? So this month, we have, Bob Currier from the Gulf, GCOOS, I’ll stay with GCOOS. He's going to be presenting on ERDDAP2MCP. And now ERDDAP2MCP allows users to search datasets, retrieve metadata, and analyze variables through natural language queries using MCP rather than manual URL construction.
00:01:15:05 - 00:01:30:15
Mathew Biddle
With that, I'll let Bob, take the take the wheel and run us through this. So — and I want to say thank you so much, Bob, for hopping in last minute and joining us and being willing to present here. It's really amazing. And, fantastic timing.
00:01:30:15 - 00:02:00:18
Bob Currier
Thanks, Matt. Yeah, I'm happy to, happy to step in. It was fortuitous timing that I had just really, wrapped this up, and I admit I've been slack. I haven't done a DMAC webinar in a while, so it was time that I get back on here. And before I get started, I may be the one that's talking about this today, but I am truly just the dude that likes to play with new stuff and see if I can make things that work.
00:02:00:20 - 00:02:24:02
Bob Currier
And I'm standing on the shoulders of giants, you know, Bob Simons, the whoever, the ERDDAP-ee or the ERDDAP-pi, I've never been sure, you, how you're supposed to pronounce that. Shane from Axiom, you know, the Anthropic team, everything it takes to build this. You know. Somebody else made the Legos, and I'm just snapping them together, trying to make something that looks cool.
00:02:24:04 - 00:03:03:18
Bob Currier
So this is definitely, a team effort across a lot of different, areas of expertise. So what we're going to talk about today is ERDDAP2MCP and the cover slide, it symbolizes — on the left, you've got an hourglass. So that's either the time wasted, that you can spend by manually hunting around for what you need or the time you're going to save by using a tool like this, enabled by our, nice shiny, you know, Terminator, basically, AI friend rising up from the murky depths here.
00:03:03:20 - 00:03:30:03
Bob Currier
So that was that was Midjourney, by the way, which is is now doing a really good job of doing that. So I know most everybody knows this, but, just in case there's folks on here because I, I announced this in a couple of, non-DMAC-specific areas. What ERDDAP is, as I said, created by Bob Simons, simple, consistent access to scientific datasets.
00:03:30:05 - 00:03:54:09
Bob Currier
Lots of different protocols. Basically, the, the engine that powers our oceanographic data distribution. We all know it. We love it. You know, it's an amazing package. It's been around for a while. And I, I don't really know what we would do if we didn't have ERDDAP. So, you know, there's a huge shout out to the ERDDAP team, for their continued support for this and for...
00:03:54:11 - 00:04:17:13
Bob Currier
...because it's outside of our community, it's not that widely known, but when I pour the Kool-Aid and hand it to somebody, and they drink it. They, they usually get it. So thank you again. So what's MCP? A lot of talk in the press recently about that. And Matt and I were talking pre-meeting about how quick everything changes.
00:04:17:15 - 00:04:40:20
Bob Currier
And, MCP dropped early December last year. So it's six months, and our world as we know it has changed. So it was developed by Anthropic, you know, the creators of Claude and Claude Code. But it standardizes LLM to application communication, meaning, LLMs originally were just, you know, they were text engines. They still are. You know, you could ask them a question,
00:04:40:20 - 00:04:58:10
Bob Currier
you know — who is, you know, what is IOOS, who is NOAA? You know, what's GCOOS? And that'll give you a good answer. But if you tell it, originally you could say, you know, go get the weather for me for today, it would say, I'm sorry. You know, I was trained on January 1st, 2024. I don't know how to do that.
00:04:58:12 - 00:05:22:18
Bob Currier
And people started building hooks and, internally to make that happen. And then Anthropic said, well, we . ...protocol. Think of it as ERDDAP for, for AI, but a way for lots of people to write to this. So it gives, Claude access to your internal tools and data. They like to say it's usb-C for AI.
00:05:22:18 - 00:05:50:04
Bob Currier
I'm not real wild about that. A lot of people aren't. A better thing is: we give the LLMs hands. So now if you have a tool and you build an MCP server or someone's built one for you and you install it, then you start giving the...your chat interface the hands, you know, the ability to reach out and do web searches, to go through your Gmail, your calendar, to hit ERDDAP servers, to do whatever you can conceive of.
00:05:50:06 - 00:06:14:05
Bob Currier
And there's a diagram down here. I won't go into great detail and how the protocol works. My brain has bled enough over the past few weeks trying to figure that out. But why did I do this? Love ERDDAP, but a lot of my, my researchers in the, in the GCOOS area, whenever I would say “Hey, it's on ERDDAP, just go find it,”
00:06:14:07 - 00:06:31:06
Bob Currier
I‘d get a blank look and, or they, they go try it and come back and go, “never mind.” And, and, they just, it was they didn't have time to learn how to use it effectively. Which, once you do, it's pretty straightforward. You get your data, but if you're not used to it, it can be a little confusing.
00:06:31:06 - 00:07:03:08
Bob Currier
And then all of a sudden MCP came along and I was like, well, why can't they just ask, you know, hey, what kind of datasets do you know about? So, I started working on it and MCP comes in theoretically in two flavors — Anthropic lies, and I'll get more into that in a minute. The original implementation was local, so I used a standard I/O, and just basic local, standardized compside communication techniques for the LLM to talk to the tools.
00:07:03:10 - 00:07:26:07
Bob Currier
In my case, there's four core tools. It's deployed on your machine. But to install it, you've got to do, git repo clone, you know, a pip install for dependencies and make a change to a config file. It works, but it's different on windows than it is on Mac. It can be a little hard for someone that is more of a user rather than a DevOp to get it going.
00:07:26:09 - 00:07:45:21
Bob Currier
So Anthropic started pushing remote MCP servers, and if you use, Claude Desktop, you'll see they have a bunch of connectors in there, which is what they're calling it for, you know, Gmail and Canva and Calendar and all this other stuff. And they made a lot of noise about supporting remote MCP. So I thought, I need to do that too.
00:07:45:23 - 00:08:11:02
Bob Currier
That way I can just deploy it on the cloud. Nobody has to install anything locally. Well, like I said, Anthropic lied. I converted it to a remote compliant architecture. And when Shane gave his presentation, I think he demoed the, MCP inspector tool. So I use that, to validate that this was 100% working MCP server, which it was.
00:08:11:04 - 00:08:36:15
Bob Currier
Put it out on the cloud. Did the config the way that Anthropic said — wouldn't work. Continuously wouldn't work. So multiple days of trying to figure this out and going, “why is it working for Gmail and all the other built in stuff?” So, I went back to a past life, where I was, the director of data communications at Duke University for 20 years and said, fine.
00:08:36:17 - 00:08:56:21
Bob Currier
Yeah, I'm going to fire up Snort and IP traff, try and dig into every packet that this thing is sending out and see exactly what's going on. And lo and behold, all of the working remote servers, from the Claude client are not remote. They're hidden behind Cloudflare, and they're using this magic trick that I found in a Cloudflare document.
00:08:56:23 - 00:09:18:18
Bob Currier
So there's a local proxy that makes the, the chat bot think that your tool is local, which is the MCP remote proxy. So, right now that's the way it all works. I think that's going to change pretty quickly. So hopefully the remote truly will be remote. Anthropic is just, you know, everything changes every week.
00:09:18:20 - 00:09:38:15
Bob Currier
Some of the docs I was using were literally updated the night before I read them. So, you know, this is this is bleeding edge stuff. But it is working remotely now, both tools available on both servers. So we've got list servers and you don't need to worry about any of this. The chat bot, just does it for you.
00:09:38:17 - 00:10:00:18
Bob Currier
But there's four key tools. And there is no — and because I know I'll get asked — there is no “please go get me the source file” tool. I, I built that, it worked really well. And then I heard from the ERDDAP team that, maybe that was not a superpower that I wanted to give to users that didn't understand what saying
00:10:00:20 - 00:10:31:24
Bob Currier
“Yeah, give me the global dataset for x, y, z,” might do to a production ERDDAP server. So, you know, to respect that, I pulled that back out and that that really goes against what ERDDAP is for anyways. You only want to subset your data. So that got pulled back out. If you're interested in, the technical bits, local, as I said, is standard I/O, so it's pipe communications, direct process bonding by Claude. Because it's running local
00:10:31:24 - 00:11:05:06
Bob Currier
it’s really, really quick. But it's just for you on a single machine. And again, the configuration differs depending on whether you're Windows, Mac, or Linux. The remote servers originally were SSE, which is server side event. Now they're HTTPS streaming, with JSON remote procedure called protocols. They support, Oauth2 authentication. And ... although I'd say 90% of the remote servers that are out there don't.
00:11:05:08 - 00:11:24:13
Bob Currier
And if you're curious as to why you might need it, think about, you're, you're you're a developer, you're in a company, you want to build an MCP server, you think, “wow, it'd be really nice if I could build this to hit my SIP system so that I could pull in my invoices and, and do all of that through natural language query.”
00:11:24:13 - 00:11:44:06
Bob Currier
Well, to do that, you got to put all of your, credentials in there, and then you deploy this out in the cloud and somebody finds it. And guess what? They've got your credentials too. So authentication is something that really needs to be taken into account when you're building remote servers. Network latency really isn't a big deal.
00:11:44:08 - 00:12:06:12
Bob Currier
But the advantage is it's multi-user. You don't have to install much locally, and it does work quite nicely. So, you know, these are, these are in the Readme file on the GitHub repo. I'll just I won't read them out. I'll just touch on it briefly. So for the local server, as I said, it's a pip install.
00:12:06:14 - 00:12:28:08
Bob Currier
There's a little bit of set up in Claude Desktop if you're using a virtual environment, then your command is going to be, you know, your path to your virtual environment. Python. And then the path to whatever server that you're, you're working with. Windows users, same thing, different day, different configuration format.
00:12:28:10 - 00:12:58:11
Bob Currier
And and then you restart it. Jorge, I told you I was giving that...Jorge’s pinging me because I'm supposed to be on the GCOOS staff call, even though we just talked an hour ago... It's like, I'm not going to be there! So now let's go into, into usage examples. And we will do a live demo at the end of this, but, I, I've been burned way too many times doing live demos, so I wanted to make sure that I had something that wouldn't break, as we walk through this.
00:12:58:13 - 00:13:19:14
Bob Currier
So, let's walk through a few slides and then we'll go into the live demo. So list available ERDDAP servers. So show me the servers you know about. And these are built in, I know there's a lot more out there. They were just the ones that I baked into it. That's changing. There'll be a much bigger list soon.
00:13:19:16 - 00:13:35:20
Bob Currier
But there's a way to add more, which I'll show. If you're, say, like, PacIOOS, who I was working with this morning, and you can just say, here's the URL for PacIOOS, please use that. And that works fine. So now I go down and say “search for glider datasets on GCOOS ERDDAP.”
00:13:35:22 - 00:14:10:23
Bob Currier
Well I found 26. Here are some examples. So, Stommel, Sam and Mote. And this is to me what really gives the, the Claude, the chat interface and the MCP server is the power, because not only does it get the raw data, it, formats it and conceptualizes and augments it for you. So it's not just here's three datasets, it’s “oh, this it is from USF, this one's from Mote, etc., etc., etc.” and now search the GCOOS ERDDAP server for datasets created by me.
00:14:11:00 - 00:14:32:22
Bob Currier
It goes off and does that. I found 26 gives me all the list. And again it tries to give you a little bit more information than just the list. The naming convention, the usages. And then do you want me to get more information or would you just like to see the full list? And, and this is, these are screengrabs from the actual, the conversation,
00:14:33:02 - 00:14:58:08
Bob Currier
so pardon the grammatical and spelling errors, but use this dataset ID, do a test, give me detailed output so I can show my colleagues how cool this is. And, it just went out and grabbed this. It got the mission overview USF Sam, part of GOMIX, 12 days. The coverage, the geographic span, the lat long range, the location, the instrument package and everything in there.
00:14:58:08 - 00:15:24:24
Bob Currier
And there was a lot more that I cut off. But just from that, here's the dataset ID, talk to me about it and then a little bit, this is kind of an abrupt transition, but, the the queries that led to this, were fairly lengthy, so I didn't want to actually include it. But the gist of it was I'm interested in global ocean currents, particularly in Asia.
00:15:25:01 - 00:15:40:22
Bob Currier
Find me some servers that have information like this. And it went out and search and came back with, I'm pretty sure it was PMEL. The PMEL servers that I said, well, the Rama data, the Rama network looks like it has what you need. What do you think? It's like “well, what do you have in the in the Asian area?”
00:15:40:24 - 00:16:04:20
Bob Currier
Well, I've got the Indian Ocean Rama deployment. It's like, yeah, that'll work. Is it real time? Let me check. Yeah, it's real time. So great. Go build me an interactive heatmap of, ocean current speeds from this dataset. And it went off and it pulled the data and it chewed along and in 3 or 4 minutes as an artifact on the side.
00:16:04:22 - 00:16:30:08
Bob Currier
It will not display maps in the interface, you got to save it and open it. But this is an HTML file that gives you the heat map, shows the vectors, and does all of this. So I went from not knowing what was available to something I'd happily use in a presentation or a publication in 20 minutes. And, and that to me, that that's just a really powerful thing.
00:16:30:10 - 00:16:58:06
Bob Currier
So as we move on to well, this is all great, but what's coming next because I'm kind of getting on a roll here. So there's a lot of data that was not specifically in ERDDAP servers. So I went after the Copernicus Marine Toolkit and put a lot of time into that. That's built, it's working. What we do now is, is query the, Copernicus data cache once a day.
00:16:58:08 - 00:17:25:23
Bob Currier
That's stored locally. And by locally, I mean now it's locally for me. And it'll be in the cloud soon. But that that speeds up the, the queries remarkably, because you're hitting cached data, not an active search on the Copernicus side. It's got smart downloads, so it'll subset from ten gigs down to six megs. Spatial and temporal subsetting visualizations, like I'll show you in a minute, automated workflows.
00:17:26:00 - 00:17:47:09
Bob Currier
It's got an API so you can hit it that way, or you can just work with it through the interface. So a lot of different example applications, I'm MCP’ing it right now. It's pretty much there. There's a few things I need to do, before I actually deploy it. And when I do, the interface will be just like I'm showing with ERDDAP2MCP.
00:17:47:11 - 00:18:13:00
Bob Currier
But now here's the problem with, with AI: hallucination. So or as, we call it hallucination station. So when I was working with Copernicus, trying to build what I'll show you in a minute, I was looking for, density, and I was trying to build a plot of, the surface density in the Gulf of Mexico, and I had my catalog, and it,
00:18:13:01 - 00:18:32:14
Bob Currier
I said, what dataset should I use. And I spent probably an hour fighting with it, and it was giving me different answers, and I finally figured out it had no clue. And I asked it, and it's like, well, I actually I've just been making everything up. I don't really know what the variable names are because that column's empty in your data,
00:18:32:16 - 00:18:52:02
Bob Currier
dataset. And I'm like, you should have told me that. And now when you do this, it gets reported back to Anthropic. So hopefully, they'll fix it. But I spent a good hour and a half wondering why this wasn't working. Because it will happily make stuff up, you know, because they really try to be helpful.
00:18:52:02 - 00:19:16:13
Bob Currier
So my point being that, you know, trust but verify, if you're actually pulling data from ERDDAP servers that you trust, it’s probably going to be right. But it doesn't hurt to give it a second look because, you know, every now and then, they just they make mistakes still. So I rewrote the code. Now we have every variable name and all 303 Copernicus datasets.
00:19:16:15 - 00:19:47:19
Bob Currier
So it should know about it. And I said, you know, I rewrote it, try it again, and then it got a little bit, spicy with me here. And it was like, oh, shit, now I can actually see it. And it ripped right down through and found everything. Tried to figure out which datasets had the best, value for me, and then finally settle on, a couple, and I see we're getting some, some comments, which will be great, to follow up on.
00:19:47:21 - 00:20:26:15
Bob Currier
And then this turned into that. So I went from, you know, hey, search Copernicus for the latest, salinity and sea surface temperatures. Combine them together and give me a density plot, because, it was a real question during a meeting, we had a PI that was deploying a glider in the Gulf of Mexico, and they had ballasted for 1022, and they wanted to see where the gradient was to make sure that, they actually got far enough out, so that they deployed where they had ballasted from and once we figured out what the problem was, not having variable names, then all of these came together in five minutes.
00:20:26:17 - 00:20:35:13
Bob Currier
So not only can you search ERDDAP, you can search, Copernicus and combine, you know, the models and the real time
00:20:35:15 - 00:21:05:03
Bob Currier
with it. It's if you're interested, the remote servers hosted on fly.io, which is a cloud hosting service for usually for what they call ephemeral servers. I won't go into it. That's a whole nother DMAC webinar. But the idea behind that is it's completely, programmatically controlled. And I've got another, tool site that I built called shardrunner,
00:21:05:05 - 00:21:29:15
Bob Currier
that basically, you log in, you point it at your GitHub repo, you import it, it configures everything, it drops it on fly.io, spins it up, gives you the URL that you can put into your, your cloud config and your you've just deployed your remote MCP server as a Docker container on fly. And the beauty about fly is that it has a global DNS network.
00:21:29:15 - 00:21:52:00
Bob Currier
So all of their, URLs — in this case, it’s ERDDAP2MCP.flydev.io, I think, or fly.dev — that's handled by them. So if a user is in Korea and they run an ERDDAP query, and the server is, you know, an Asian server, it knows to route it, it'll route it to the closest, server in there.
00:21:52:02 - 00:22:13:10
Bob Currier
So it just balances the load really nicely. And I think that's enough on that, so, we can move into a live demo. I like to call it Schrödinger's demo, because if you're familiar with Schrödinger's cat, you know, the act of observing something changes it, you can't tell if the cat's dead without opening the box.
00:22:13:12 - 00:22:35:22
Bob Currier
So it works. The demos always work until you show someone, and then it's a matter of, you know, will it work? Will the cat behave? Not really sure. So let me, let me stop sharing PowerPoint.
00:22:35:24 - 00:22:39:15
Bob Currier
WebEx.
00:22:39:17 - 00:22:45:12
Bob Currier
There we go. Stop sharing PowerPoint.
00:22:45:14 - 00:22:53:19
Bob Currier
Fire up Claude.
00:22:53:21 - 00:23:08:09
Bob Currier
Make sure I don't have any... bad stuff. Hang on one second, close that. Go to...
00:23:08:11 - 00:23:19:07
Bob Currier
Okay. All right. Share. Go to Claude. Can you see that, Matt?
00:23:19:09 - 00:23:20:19
Mathew Biddle
Yep. Looks good.
00:23:20:21 - 00:23:42:13
Bob Currier
Okay. So long as it's visible for everybody. So, I did this this morning, so, let me hang on. Let me do one, one thing because I'm not sharing this. Where is my...
00:23:42:15 - 00:24:03:04
Bob Currier
No. Hang on one second. Sorry. The, might be easier to do it this way. It was a good example of avoiding, there we go.
00:24:05:21 - 00:24:33:21
Bob Currier
Okay, we're going to use PacIOOS, I want to use the PacIOOS ERDDAP server. The, URL is... Let's see if it can find it.
00:24:33:23 - 00:24:46:22
Bob Currier
Yeah. And I know what it gave me. Give me, summary of the
00:24:46:24 - 00:25:37:16
Bob Currier
For tiger sharks, which it did find. This morning, when I searched this morning, I gave it the wrong URL. I gave it the, the PacIOOS website URL, and it dug into that and figured out, the right URL for the ERDDAP interface. So now it's found, found all these datasets. So yeah, let's the 204416 is, give me a detail summary, including tables, of 204416.
00:25:37:18 - 00:26:01:20
Bob Currier
And it's going to ask permission, which is a good thing.
00:26:01:22 - 00:26:10:04
Bob Currier
So, that's, you know, there you go. That's
00:26:10:06 - 00:26:36:09
Bob Currier
pretty detailed information, with the links, working links, and all that. And then you can, I won't do it because it takes a while to, to build. I asked it to create a map and plot it, to give me some of the temperature plots and all that, and it'll do that, on this, this artifact side, it's, now, I can switch and say using the IOOS GDAC server,
00:26:36:11 - 00:27:12:01
Bob Currier
tell me how many glider datasets Rutgers has.
00:27:12:03 - 00:27:21:05
Bob Currier
Which PI has the most datasets?
00:27:21:07 - 00:27:33:08
Bob Currier
I didn't say Rutgers. Yeah. Well, doesn’t matter! I'm not surprised.
00:27:33:10 - 00:27:53:10
Bob Currier
Scott and Oscar — oop! Hey, I'm number three.
00:27:53:12 - 00:28:04:10
Bob Currier
Yeah, I did get an error message on my, here's the ranking. Alright, it recovered.
00:28:04:12 - 00:28:27:15
Bob Currier
So there we go. Yeah. In terms of, you know, reporting, I use this to summarize the, GAN- the complete history of GANDALF, and, you know, deployment missions and all that for a report that I just did. So I'm going to wrap it up here. Unless somebody, Matt, if anybody has anything, they want me to ask it, to see if they can break it.
00:28:27:15 - 00:28:31:20
Bob Currier
We can, we can give it a whirl.
00:28:31:22 - 00:28:37:21
Mathew Biddle
Yeah. I dropped something in the chat about looking for water level data to see if you could see the tsunami.
00:28:37:23 - 00:29:04:03
Bob Currier
Alright, let me see. Where do I get, where is the, I am so not used to, How do I get to the chat? Sharing my screen. Well, it... Can you read it to me? I have. No, no,
00:29:04:04 - 00:29:12:10
Mathew Biddle
I didn't, I didn't, I just said water levels for tsunami, but, um, yeah, I don't, I don't know what we would frame the question as.
00:29:12:12 - 00:29:59:12
Bob Currier
Oh, yeah. And, and, it obviously, unless it's been adjusted recently, it won’t know about it, But sure, we can say, do you have any, water level data that specifically relates to tsunamis available? You can search all servers that...
00:29:59:14 - 00:30:20:11
Mathew Biddle
And there are a couple questions in the chat coming through. Roy's asking about how long it does it take to, go to a plot? He would be interested in taking a look at that, if we do have the time. And the other question is...oh, go ahead.
00:30:20:13 - 00:30:44:17
Bob Currier
Yeah, I'm getting the...there we go. I got a little error, it’s searching. I yeah, I can do a quick demo, probably on on, on something simple. It only takes a minute or two, but I, I didn't want to bore people with having a...writing code while we sat here and watched it. And it's... I don't know what's available out there, so it's doing its best.
00:30:44:19 - 00:30:53:21
Bob Currier
There we go. Tidal gauge data from Hawaii.
00:30:53:23 - 00:31:00:15
Bob Currier
There we go.
00:31:00:17 - 00:31:07:08
Mathew Biddle
It figured out DART, that's interesting.
00:31:07:10 - 00:31:12:20
Mathew Biddle
How did it connect to DART?
00:31:12:22 - 00:31:29:03
Bob Currier
And I'll stop it in a minute.
00:31:29:05 - 00:32:02:09
Bob Currier
So that's the, UHSLC. Alright. To answer Roy's question, can you give me a quick plot of the most recent 24 hours of data from the ... what is it? UHSLC.
00:32:02:11 - 00:32:24:03
Bob Currier
Just pick a sample gauge.
00:32:24:05 - 00:32:45:14
Mathew Biddle
So one of the, we just got access within NOAA to Gemini as a chat client, and I've been using it to write code. One of the nice parts about it is that it has an option to expand over open ... to explain how it's thinking through the process. And it has a whole explanation description before it gets to the answer.
00:32:45:14 - 00:32:50:02
Mathew Biddle
Does this, does Claude provide something like that?
00:32:50:02 - 00:33:15:13
Bob Currier
Yeah. You can ask it to explain. And there's there's a lot of ways of, of getting that. And some of it's helpful and some of it isn't. Honestly, I haven't really found the need because it, it's, it's so good as you watch it dig down and it found DART and, and did stuff.
00:33:15:14 - 00:33:38:07
Bob Currier
It does a lot of what I'd be looking for in the, “well how are you getting this” and the end result is good. But yeah, I get your point and you can tell it to be, now it's doing multiple stations. Oh, I, I should have just said Honolulu. Blah-de-blah.
00:33:38:07 - 00:33:45:22
Mathew Biddle
While it's going through, one of the other questions that came in in the chat is what is the cost of Claude, and does it charge by request?
00:33:45:22 - 00:34:15:18
Bob Currier
Good question. So yeah, I should have started out by saying, there we go. So, hallelu. Why it put Galapagos in there, I have no idea. But I guess it's in the dataset. So, there's, you know, there's Honolulu. Whoops. I zoomed in, Reset.
00:34:15:18 - 00:34:19:06
Mathew Biddle
Over to the right. One more, one more.
00:34:19:08 - 00:34:19:18
Bob Currier
There we go.
00:34:19:19 - 00:34:20:05
Mathew Biddle
There you go.
00:34:20:05 - 00:34:39:00
Bob Currier
Finally. So, you know, probably not the best example, but it gives you an idea. So you can you can tell it to give you a quick and dirty plot. And there it is, and whether, and then you can go up and, you can download it as HTML and then you can run it locally or you can, you know, snapshot it here and say that is the PNG.
00:34:39:06 - 00:35:03:15
Bob Currier
But to answer your question, yeah, I'm a Claude superuser. So I've got the $200 a month max subscription because I live in Claude Code. You know, 12 hours a day, seven days a week. So the MCP tools, as far as I know, they work with the free. Now, originally you had to have the $20 a month.
00:35:03:17 - 00:35:38:00
Bob Currier
They're limited, you know, you're you're rate limited depending on your, your level. Average users, either the free or the $20 a month plan is going to be more than, sufficient. So for people using this, it's covered in whatever your subscription price is. If I, for me as a developer, then, I’m trying not to break my $200 a month usage allocation, which, knock wood, I haven't yet, and I've been beating on it pretty hard, but, let's say for the, agentic
00:35:38:00 - 00:36:10:23
Bob Currier
GANDALF, which is tied into the the Anthropic API. Now to do all this stuff in GANDALF with a non-Claude interface, it's baked into GANDALF. So I hit the API and then I'm charged a number of tokens. So it's a separate subscription for the API. But again, if you're, if... your average user’s not going to care, but for the developers on the call, it's $5 million, $5 million, $5 for 5 million tokens.
00:36:11:00 - 00:36:35:00
Bob Currier
Yeah. Sorry little inversion there. Five bucks for 5 million tokens. And I beat the heck out of it getting AI Gandalf going, to where now, you know, I can, I wish we had time to show it, because it's it's it's still Anthropic and and remote servers, but, I can go on to that and bring up the gulf.
00:36:35:02 - 00:36:59:12
Bob Currier
Say drop the oil platforms on there and then say show me the five closest oil platforms to this particular vehicle. If we're trying to thread our way through, it gets all the vehicle information locally, it sends it out to the API. It formats it right. And then it sends it back, to some baked in formulas that I have because LLMs are non-deterministic,
00:36:59:12 - 00:37:20:18
Bob Currier
and the math isn't consistent. So it does the harvesting and all that stuff using a fixed formula. And then, it draws circles around the, the platforms on the map and starts 'em blinking for the closest five. So within 3 or 4 seconds you can say, hey, where do I need to worry about? And boom, just draws it on the map for you.
00:37:20:18 - 00:37:35:13
Bob Currier
So those kind of calls, we incur cost. But Jorge’s not yelled at me yet, so I guess we're we're we're doing okay. Hopefully that answered the question.
00:37:35:15 - 00:37:50:18
Mathew Biddle
Yeah, it sounds like it. So Micah also put something in the chat about, for ERDDAP specifically, it might be interesting to see some of the queries it's running to generate a response in the way of an explanation. Is that possible?
00:37:50:18 - 00:38:30:11
Bob Currier
Yeah. I've never I've never actually tried that. Please show me the actual query you would use to search the IOOS GDAC for contributors named “Bob Currier.”
00:38:30:13 - 00:38:37:14
Bob Currier
Okay.
00:38:37:16 - 00:38:49:08
Bob Currier
Yeah. Don't tell me you're doing it. This.
00:38:49:10 - 00:39:12:23
Bob Currier
Yeah. It's, I could I could dig deeper into it. It's it's trying to be helpful without showing the exact, code. But let's try again. No, I want to see the actual
00:39:13:00 - 00:39:24:14
Bob Currier
URL or call. I forget what it calls it.
00:39:24:16 - 00:39:47:09
Micah Wengren
I was thinking, Bob, like more so for some of, like, some of the complex questions that you're asking of it, like, just to get a sense for, like, you know, how many ERDDAPs it might be hitting, or like the actual, or like a summary of the, the URLs that it's, it's actually querying, anyway, not not critical, though, just thought that’d be interesting from like a nerdy standpoint.
00:39:47:09 - 00:40:07:19
Bob Currier
Yeah. Yeah, yeah it is. And and I probably should have done that. But it, it just returned valid results. Yeah. Okay. Now it's... we hurt it's feelings. And I said URL, which confused it, which, I didn't mean to put that in there. Roy just called me out on that. So, let's see if I can stop it.
00:40:07:21 - 00:40:36:09
Bob Currier
I said URL and I meant to say, I'll apologize. Sorry, I meant to say show me the exact ERDDAPy call you used. I didn’t mean to say URL. We'll see if that helps.
00:40:36:11 - 00:40:43:24
Mathew Biddle
Do you get a better response if you put those conditionals in there about being sorry and I didn't mean to say that?
00:40:44:01 - 00:40:58:11
Bob Currier
Yeah, yeah, yeah. So, now that was that was quick. So yeah. It's not going to pull up the, the code. It's just saying that “e” is the, the ERDDAP, ERDDAPy kit.
00:40:58:11 - 00:41:34:03
Bob Currier
So it's e.search with a query of Bob Currier and all. There's, you know, there's more in there, but, this is so there we go. There's a, a sample URL. So. Yeah, if you ask it the right question, it'll give you good answers. But you're you're right. The trick is figuring out the right question and setting the context and sometimes, generic context, like who's the the top PI on the IOOS GDAC server, that works great.
00:41:34:05 - 00:41:54:11
Bob Currier
Other times, like we found with the, the, tsunami, it's a multi shot step where you're like, go find this data. Okay. Well let's use DART. Well, let's use this station. Now show me what you have in the station. Okay. Do this. So, and it's really easy to pick up, and I do it.
00:41:54:14 - 00:42:25:20
Bob Currier
Yeah, I freely admit, I'm bad about doing it during the coding and asking it. Maybe being a little bit too vague, and then, it doesn't do what I want. And so I've included a lot of the very specific things into my, well, we could go on for hours about this, but Claude Code has got, it's another new feature called agent, so I've got a, like, a rock star PEP 8 compliant Python backend agent, a UI/UX agent, a DBA agent, and then a code review agent.
00:42:25:22 - 00:42:55:22
Bob Currier
And so, all of those, have very specific rules about the way I want my code structured. And so I call each agent to do a certain task, but it's basically formalizing what you just said, which is setting your context, making sure that you're asking good questions. And then in this case, with the agents, not having to repeat it every time you you fire it up and start writing code again, it knows how I want it to behave.
00:42:55:24 - 00:43:19:01
Mathew Biddle
That's interesting. That was a lot of stuff I'd never heard of. So thank you for sharing that. There's, there's another question in the in the chat about: in the long term, do you see MCP servers like this as continuing to be a separate tool, or do you think similar AI friendly APIs will be integrated into ERDDAP and other data servers?
00:43:19:03 - 00:43:26:15
Mathew Biddle
But I think that's an open question to everybody. To chime in with, with your thoughts.
00:43:26:17 - 00:43:50:14
Bob Currier
I guess I'll start and I'll, I'll start by saying I'm I'm not definitely not speaking going to speak for the ERDDAP group, but, you know, the, the idea behind MCP is, it's it's an interesting question, but the whole idea is, to not necessarily have to do that.
00:43:50:16 - 00:44:14:20
Bob Currier
But there are certain requirements, you know, you need the sites to have an API, or a way of actually getting to them for the MCP server to do its thing. Like you've seen with the ERDDAP MCP servers, so people developing the applications. Yeah. Thinking about, well, I want to make this MCP tool friendly.
00:44:14:22 - 00:44:41:11
Bob Currier
If I'm building something new, then — ah, I see somebody is already thinking about that, so that's that's a good way to think. How can we make this easier, for that? And then. Yeah, I'm seeing, like. Sorry, I'm getting distracted by the the chats popping up. But but again, there are so many things out there, and what you said, you know, the big dogs are already doing it.
00:44:41:13 - 00:45:17:02
Bob Currier
You know, Google, Canva. Yeah. All the connectors out there that are already baked into the Anthropic, connectors API. Chat, ChatGPT supports MCP now. You've got to do a couple of things and jump through hoops. But basically, Yeah, I think I covered it. So I think people building sites definitely should keep in mind that, as the title slide said, that humans may not be your biggest user of the site anymore.
00:45:17:07 - 00:45:37:05
Bob Currier
You may find that your biggest users are agentic tools, and in that case, using fast API and making sure that, you know, your site is, you know, really configured to support that, will definitely make it a lot easier for these tools. So great question.
00:45:37:07 - 00:45:54:18
Mathew Biddle
I see the chat was starting to blow up. If anybody else has comments, feel free to unmute and and go for it.
00:45:54:20 - 00:46:21:09
Mathew Biddle
I'm not seeing questions. I'm seeing more statements in there or yeah, yeah. So so Chris John is the, the ERDDAP technical lead? The technical director now. So so he's, it sounds like he's looking into how MCP can be integrated into it.
00:46:21:11 - 00:46:32:22
Bob Currier
There we go. Now I can see interesting. But,
00:46:32:24 - 00:47:09:24
Bob Currier
Yeah, I just read the question about, the skill necessary from, Kevin. Yeah, I agree. And, what I... ERDDAP2MCP is, will be continually evolving. So, and again, this this is all new. So, just today, you know, through the demo, I've learned a few things. So, you know, baking a lot of that in, to, to context that when you fire it up is initialized so you can say, hey, I don't know how to use this.
00:47:10:01 - 00:47:43:21
Bob Currier
Can you tell me the best query for getting this? And making it easier and easier, for the end users is important. So, yeah, another, thanks, Kevin, for that, because it's easy. As I said in the beginning, I don't claim to be an ERDDAP expert, but I've been using it for a while. And compared to my neighbors whose eyes roll back in their head, if I even say ERDDAP, I think I'm a little bit more qualified to use it, but, the easier we can make it for the general population, the better,
00:47:43:23 - 00:48:07:10
Bob Currier
the better ir will be, because I'm specifically targeting, you know, resource man- people that aren't traditional ERDDAP users, you know, resource managers, you know, small lab PIs, undergrads, you know, whatever. K through 12. You know, you know. So ChatGPT here, Claude in front of, you know, sixth or seventh grader now, and they're going to they're going to know what to do.
00:48:07:10 - 00:48:27:09
Bob Currier
They're going to be interested in red tide off the west coast of Florida and have animated plots up in three minutes. But the more help and, context suggestions, we can provide, the better it'll be.
00:48:27:11 - 00:48:47:07
Mathew Biddle
So we got ten more minutes. Well, we we technically have 40 more minutes, but we can end it at the top of the hour if if there's not much more conversation. So if you want to raise your hand, unmute, drop questions in the chat. I will, I do have a question about, you have it limited to a couple of ERDDAP servers now.
00:48:47:07 - 00:48:58:22
Mathew Biddle
What if you pointed it to the awesome ERDDAP JSON file that has all of those ERDDAP servers? What what's going to happen there? And is there a reason we haven't you haven't tried that yet.
00:48:58:24 - 00:49:13:22
Bob Currier
Yes. Because I've been, trying very hard to be nice and a good citizen. And I wanted to get all the bugs worked out with, you know, these few, and, yeah, I, I know PMEL, I think I saw Eugene on here,
00:49:14:03 - 00:49:32:06
Bob Currier
so if I did something bad and, and and broke PMEL, Eugene would not have a problem, dropping me a message, and the GDAC the same way. So before I said, hey, here's all 5351 ERDDAP servers in the known universe, go have fun with it, I wanted to make sure that we were there.
00:49:32:06 - 00:49:46:11
Bob Currier
And then before I did that, you know, I'd want to talk to the community and Roy and whatnot and say, hey, you know, I'm I'm thinking of rolling this out. What do you guys think before I actually do this? It was a safety issue.
00:49:46:13 - 00:49:53:11
Mathew Biddle
Okay. And it sounds like Roy's got another one on ERDDAP servers.
00:49:53:11 - 00:50:27:14
Bob Currier
Alright, Roy, does that mean that, you can, you can supply it to me and you're okay with, me adding that to, to the production code? Or would you prefer that we we wait a bit. Roy?
00:50:27:16 - 00:50:47:24
Mathew Biddle
So, and that was one of the things I was thinking of is one of the... in the later efforts of, Bob updating ERDDAP, he got more restrictive with the amount of calls that you can do. So would it automatically be kicked back and kind of have those safety nets already there?
00:50:48:01 - 00:50:52:10
Bob Currier
And, sorry, rephrase the, I didn't quite get the question.
00:50:52:10 - 00:51:07:16
Mathew Biddle
Yeah, sorry. I guess with the default ERDDAP, was, it would deny, you know, a lot of repetitious requests to one server, right? It would play with blacklist your IP address or things like that.
00:51:07:18 - 00:51:08:00
Bob Currier
Yeah.
00:51:08:00 - 00:51:14:18
Mathew Biddle
So I wonder if it's already somewhat baked into the default settings.
00:51:14:18 - 00:51:23:07
Bob Currier
Yeah, I, I've not, you know, I've been watching for that. I haven't really seen any signs of that.
00:51:23:09 - 00:51:49:12
Bob Currier
And again, that was one reason I kept it pretty limited. I didn't want to start getting blacklisted. That, I yeah, now that I think about it, I probably can be, I should be more specific in the, to initial contact, the get set up, in terms of, defined good behavior, when querying servers.
00:51:49:12 - 00:52:14:15
Bob Currier
So, if there's a long enough lag that I don't think we'll have any issues, but I'd prefer to have that, built in, as well, just so that it will not allow bad behavior. Otherwise, I'm going to be getting an awful lot of unhappy emails from people telling me that they've been blacklisted after using this tool.
00:52:14:17 - 00:52:16:22
Mathew Biddle
Yeah, go for it, Micah.
00:52:16:24 - 00:52:49:22
Micah Wengren
Yeah. That's it. That's that's a very interesting topic. And I don't want to get us too, too far in the weeds, but, I might not have understood when you were describing the two deployment options, Bob, but, it seems like if you were to, you know, say you were to deploy this on a as a service for, like, multiple users if, like, you know, any, any quad, you know, user could access potentially an ERDDAP, you know, the ERDDAP2MCP, then you might run into issues with, you know, wherever that service is being hosted, being blacklisted.
00:52:49:22 - 00:53:01:08
Micah Wengren
But if each user, say, wants to like and you know, ERDDAP-enable their, their Claude desktop client and then it's more of a, you know, case by case or user by user basis. But...
00:53:01:08 - 00:53:01:18
Bob Currier
Exactly.
00:53:01:23 - 00:53:24:09
Micah Wengren
I also I wondering too like, you know, because it's based on ERDDAPy under the hood, you might, like, it could potentially, could potentially be a problem for like, you know, for ERDDAP administrators, like, say hypothetically, you know, like, you know, like they're getting spammed by, requests from a tool like this,
00:53:24:09 - 00:53:36:06
Micah Wengren
they might blacklist like, ERDDAPy as, as a, as a user agent or something, because you can you can do that on a web server level. So anyway lots, lots, lots to consider, so.
00:53:36:06 - 00:53:57:01
Bob Currier
And that those are all really good points. And that's why I, when Matt reached out to me and, and asked me if I wanted to present, I jumped on that because, yeah, I, I wanted this this feedback. And, also, I've been doing this on, the agentic GANDALF.
00:53:57:01 - 00:54:26:06
Bob Currier
Doing it on a limited fashion on this, but I'm going to ramp it up. But basically, this answers two questions, which is, anonymizing but keeping a record of all queries, and then the responses that Claude is giving back, and as well as any potential, you know, blacklisting type situations, but basically anonymizing the usage data, so that we can analyze it and go, what are people asking?
00:54:26:11 - 00:54:51:10
Bob Currier
Are they getting effective answers back? How can we make the, you know, the initial set up easier to use? And is the tool, continually doing things that are, causing problems for people? So, I want to be able to look into the past, and drill down to a particular question that triggered, triggered the...
00:54:51:12 - 00:55:15:16
Bob Currier
Yeah. Sorry. I was reading Roy's message. It made me want to run and hide in the other part of the house. Yeah, it was a really fast tool. Just one of those things you build a tool is like, I can download, you know, 350 files in 12 milliseconds, and, like, oh, I just melted the entire ERDDAP server, so probably best not to deploy that.
00:55:15:18 - 00:55:38:04
Bob Currier
But in any case, yeah, we're, I’m instrumenting this so that, we can, go back later. And that's an interesting... to me, that's a whole paper and a research topic, particularly with people that know more about, the natural language analysis and context research than I do and saying, how do we tune this based on all the queries we've seen?
00:55:38:09 - 00:55:55:17
Bob Currier
What is an effective answer, or is it, you know, the least number of steps to get what they want? Is the most accurate information. You know, there's just there's so many things that we can can dig into that. Yeah. 24/7.
00:55:55:19 - 00:55:57:18
Mathew Biddle
Yeah, Jim, go for it.
00:55:57:20 - 00:56:19:10
Jim Potemra
Yeah. Thanks, Matt. Not to open up a whole new can of worms, but is this the type of metric that the IOOS program office is, is, is looking for? I mean, you know, our our servers were getting pounded by some of these mostly foreign countries that were, you know, developing these, these models.
00:56:19:10 - 00:56:39:17
Jim Potemra
And, and we just had to blacklist them. So on the one hand, you know, it's it is a client and it's causing our stats to go through the roof. But at the same time, Matt, I'm not really sure it's the type of usage that we're looking for, right?
00:56:39:19 - 00:56:49:14
Mathew Biddle
I wish I could turn my video off. I don't know the answer. But, yeah, I don't, I don't know, I don't know, Micah? I mean, yeah,
00:56:49:16 - 00:56:55:13
Micah Wengren
Me neither necessarily, but, it's it's definitely worth thinking about. We'll have to get back to you probably.
00:56:55:13 - 00:56:57:15
Jim Potemra
We’ll put it on the agenda for the, spring meeting.
00:56:57:17 - 00:56:58:20
Mathew Biddle
There you go.
00:56:58:22 - 00:57:02:08
Jim Potemra
Ethics of.
00:57:02:10 - 00:57:10:08
Bob Currier
And, Matt, I see somebody... Linus, asked if we can use this with and LLM, or if it's specific to Claude.
00:57:10:08 - 00:57:32:16
Bob Currier
Yeah, it it was developed by Anthropic, so it works easiest with them, as far as I know. And I, you know, I, I haven't done a couple of things I haven't actually done, the windows install and tested it locally because I'm a mac and Linux guy, although I do have a windows laptop, unfortunately.
00:57:32:18 - 00:57:57:15
Bob Currier
And, it it'll work with GPT. I just haven't taken the time to, to do it. But they do support it now, and I think it's in their $20 a month and up program. But they they were pretty much forced into getting on board with it. I'm not sure about any of the others, but most of the others are not in CONUS and we probably shouldn't be using them.
00:57:57:17 - 00:58:18:23
Bob Currier
So I'm not going to worry about, anybody other than Anthropic and OpenAI, I think, for right now. I don't think our, our federal colleagues would be using DeepSeek, and, and being approved to do it. I'll stick to OpenAI and Anthropic.
00:58:18:23 - 00:58:46:06
Mathew Biddle
Like I said, we just got on Gemini, but we don't have API access or anything like that. It's just a chat client. All right, any questions? We can keep going. We have until 30 minutes after the hour, but, I don't want to, I know folks have meetings, folks have things to get to, so I don't want to keep you if you don't need to. I'll leave it up for six seconds.
00:58:46:08 - 00:58:55:07
Bob Currier
And I just want to say thank you again, you know, to Roy and and to the ERDDAP team for being so gracious and and working with me on this.
00:58:55:07 - 00:59:25:22
Bob Currier
And everyone has been, pretty supportive. So, I've had a lot of fun. And, like I said, we've got Copernicus. We've got a bunch of other, other things coming. I think it's really the way of the future. Even though the future may only last six months or 12 months because it changes so quick. But getting IOOS and NOAA, you know, up on the bleeding edge of of AI, I think is important right now, given the, the current climate to show that, you know, we're, you know, we're not old fashioned.
00:59:25:22 - 00:59:40:14
Bob Currier
We're doing leading edge stuff. You know, we're we're there were important we we matter. And, you know, we need, we need to be here. So again, thanks to everybody, everybody at NOAA.
00:59:40:16 - 00:59:46:21
Mathew Biddle
Yeah. And thank you so much, Bob, for coming in on the short notice. And thanks for everybody for hopping in on this short notice as well.
00:59:46:23 - 01:00:04:20
Mathew Biddle
We had almost up to like 60 people at one point, so it was a really good turnout. Thank you so much for for coming in. I do want to give a shout out to Courtney. Thank you for for recording and, we'll share this out at the end of the meeting. But there is an open slot for August 28th.
01:00:04:20 - 01:00:16:05
Mathew Biddle
If anybody has a fun thing, they want to talk about and bring up to the IOOS community, feel free. You're more than welcome to come in. And just thanks again, Bob. I really appreciate you hopping in and and giving this presentation.
01:00:16:05 - 01:00:25:05
Bob Currier
Yeah, and I am, I am I'm always available so, you know, if anybody if you got if you're trying to bring this up locally and you’re stuck, reach out to me.
01:00:25:07 - 01:00:41:19
Bob Currier
If you've got concerns about the tool or want to dig into the things we talked about today, reach out to me. You know, this this is open. This is for everybody. You know, it's not me. It's a it's a community. It's, Yeah. Please reach out.
01:00:41:21 - 01:00:49:05
Mathew Biddle
Awesome. Well, thanks again and we will see you all potentially next month or in the following months.
01:00:49:07 - 01:00:50:21
Bob Currier
Sweet. Thanks, Matt.
01:00:50:23 - 01:00:54:07
Mathew Biddle
All right. Thank you everybody. Have a great one.
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
Secure .gov websites use HTTPS
A lock or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.
