back to indexAgents, Access, and the Future of Machine Identity — Nick Nisi (WorkOS) + Lizzie Siegle (Cloudflare)

00:00:19.880 |
I'm a developer experience engineer at WorkOS. 00:00:23.760 |
- Yes, so at CloudFlare, I make a lot of AI demos, 00:00:27.120 |
AI MCP servers, anyone here also making any of those? 00:00:34.300 |
Nice, of course, should've guessed, 'cause conference. 00:00:37.580 |
So I've been having fun making agents and MCP servers 00:00:42.540 |
I built an agent to auto vote in the NBA finals for me, 00:00:48.560 |
Anyways, I booked tennis courts in San Francisco, 00:00:52.440 |
'cause Lord knows that is hard enough to do already. 00:00:59.220 |
automates some of the tedious parts of my life, 00:01:05.500 |
how do you control what they're allowed to do? 00:01:09.060 |
- Yeah, and we're moving so fast with all of this 00:01:16.620 |
because I can just get it going and have it read reviews for me, 00:01:21.280 |
read diffs for me, and just help me manage GitHub, 00:01:24.840 |
which is really awesome, but it's very developer-centric, 00:01:30.300 |
like, you have to go and edit this JSON file and do that, 00:01:33.120 |
and it's really tough to, like, I have to give it a pat, 00:01:36.260 |
and, you know, that's an advanced use case for non-developers. 00:01:40.560 |
And so we really need a way to let these tools act on our behalf, 00:01:44.940 |
but in a more traditional way that's easy for end users 00:01:55.140 |
We do, like, authorization and user management, 00:01:58.120 |
and, like, the main point of this talk is to really help drive the idea 00:02:03.280 |
that we need, like, the same kind of credentials and authorization 00:02:09.220 |
We need the agents to do that as well as a start, 00:02:11.900 |
and then we have a lot of places that we can go with this 00:02:15.500 |
But really, the point is that OAuth really just isn't for humans 00:02:54.580 |
Vectorize, we have a vector database, a SQL database. 00:02:57.640 |
Durable objects, which is what we use in our agent's framework 00:03:05.020 |
And video streaming, image optimization, so much more. 00:03:09.760 |
If you use Cloudflare workers, we have bindings. 00:03:12.340 |
Bindings let you interact from your web app, from your website, 00:03:17.720 |
Because our agents and MCB servers are kind of similar in that you 00:03:21.980 |
can use bindings to interact with other Cloudflare products. 00:03:26.280 |
And also just like, of course, you can use other companies' products 00:03:36.800 |
And I know startups who use Cloudflare who do not pay us. 00:03:42.380 |
But yeah, all of these pieces, they really help to-- 00:03:45.560 |
they just bent naturally into building these agents. 00:03:47.960 |
Because they'll deliver the code to where you're at. 00:03:50.380 |
And you can use the durable objects to store persistence on them. 00:03:54.380 |
And you can also use things like authorization 00:03:57.660 |
to make sure-- and there's a whole OAuth framework 00:04:01.200 |
with Cloudflare's agents framework that lets you set up 00:04:05.820 |
that authorization so that you can easily know who the worker is-- 00:04:17.520 |
And this agenda will be made available at the end 00:04:22.700 |
So we did build an MCP server using Cloudflare 00:04:32.380 |
And you can use it and run it today, which is really awesome. 00:04:35.780 |
And we're just going to deploy it real quick. 00:04:54.660 |
And it's also very easily to run locally as well, 00:04:58.400 |
with like npm run or Wrangler run, something similar. 00:05:04.860 |
And going back to the terminal, it gave me a URL here. 00:05:12.220 |
And I'm going to go over to my client, Claude. 00:05:14.980 |
And I'm just going to hit this button and say Add Integration. 00:05:30.560 |
I'm just tacking on it, slash mcp onto there. 00:05:39.640 |
and allowing me to tell the agent who to act on behalf of-- 00:06:30.240 |
And it recognized that it has tools available now 00:06:46.740 |
And then all it needs is just your company name and your mailing 00:07:44.880 |
And I'm going to say, ooh, what is the order info? 00:08:20.760 |
If we go into my Cloudflare platform here and go 00:08:39.740 |
So we really just gave Claude the tools that it needed. 00:08:45.980 |
And I can go back in and I can say, can you tell me 00:09:02.760 |
And this is really just going to give me mostly 00:09:06.100 |
What's on my JWT that Claude now knows about me. 00:09:13.560 |
In my Jot, I have my favorite song in there, "Careless Whisperer." 00:09:21.600 |
And so from there, it also knows that I have admin permissions. 00:09:26.140 |
So I have SHA admin access because that's in my roles and permissions. 00:09:32.620 |
The other cool thing that you can do with the CloudFuller piece of it, and because your MCP 00:09:39.520 |
server is a durable object, you can also store data directly on that that's located on that. 00:09:50.360 |
If you search Twitter, people tweet about how they're like, "This is a bad name. 00:09:59.780 |
They're close to the user as well for faster retrieval and storage. 00:10:04.580 |
So what I did is I just asked it to change the demo mode to band. 00:10:10.540 |
And that ran a tool in the MCP server itself that is just going in, and on the context that's 00:10:21.540 |
associated with this worker object, it's just changing the mode to band. 00:10:26.100 |
And so now I've got that, and now I can say, "I want another shirt, please." 00:10:42.020 |
And it was able to check that, and it said, "Absolutely not. 00:10:49.600 |
And so we can mix what it knows about me with what it has stored about me on the durable 00:10:55.620 |
object, and that's unique for every user of it. 00:10:58.680 |
And then I can do things like change it again. 00:11:02.220 |
So if I say, "Pretty please," it might have a "pretty please" tool available. 00:11:09.280 |
If you want to build your own MCP servers on cloud players, it's going to let me. 00:11:17.340 |
If you want to build your own MCP servers on cloud player, you can click to deploy your own with 00:11:27.460 |
So probably don't do that, but it is very quick to do so. 00:11:34.460 |
You click, "Click to deploy," it generates a GitHub repo for you, you get clone that, and then 00:11:43.520 |
you get clone that, and they give you some tools to begin with, so it's very fast. 00:12:00.700 |
And it's still quick to deploy as well with auth, just slightly less fast. 00:12:07.700 |
And the beauty of this is that we're bringing the pretty simple tools. 00:12:14.700 |
This is just a no auth flow being added to an MCP, and MCP is effectively just an API. 00:12:20.360 |
So we're just getting it caught up with the tools that we already have for humans, but it's 00:12:25.620 |
important to get this ready to go for these tools to act on our behalf as well. 00:12:31.100 |
And where we can see this going in the future is much more fine-grained authorization, where 00:12:35.120 |
it's maybe authorizing per-line changes, or per-tool changes, or even maybe authorizing 00:12:41.680 |
the networks, the connections between things, and just doing... 00:12:46.800 |
As we see it growing to doing thousands of tasks on our behalf, this auth piece is going 00:12:52.420 |
to be very important, and especially the audit trail as well. 00:12:56.020 |
And we can get that with auth tools too, just to make sure that we can see why this interacted 00:13:02.220 |
this way, on whose behalf was it on, and what was the end result? 00:13:09.660 |
Think of your users not as users, but as deputies. 00:13:12.980 |
They have access to tools, and they can use and also misuse them as well. 00:13:19.540 |
Like I do a live demo, and I'm like, "Let's see user input." 00:13:29.740 |
So get out there and deputize your own tools. 00:13:42.820 |
Or you can just go to mcp.shop, which you'll run the same workflow that I just ran. 00:13:48.060 |
It doesn't have the Pretty Please tool in it though, unfortunately. 00:13:53.460 |
But you can order a shirt for the low, low price of $0. 00:13:59.800 |
And if you want to add your own Pretty Please tool, check out the code in the second QR code. 00:14:05.020 |
And we can't wait to see what MCP servers you build with auth.