This session focuses on FrontMCP, an open source platform that is a secure MCP platform for Javascript developers. The demo shows how developers can spin up a full TypeScript based MCP server in minutes, add authentication through any OpenID Connect provider, plug in caching, connect legacy back ends, and ship real tools into AI platforms.
Learn more about AgentLink:
Welcome, Aviad.
Good to see you. Wow. You’re all white and glowing over there.
The lights in the office is, crazy, crazy, crazy.
Yeah. Yeah. That’s good. That’s good.
So, you know, just a recap of the last few days.
It’s been, you know, super exciting over here.
We get all those responses coming from customers, from the industry about the release.
And I have to say that, you know, I’m stoked.
We introduced just, you know, to give a short recap, we introduced Frontegg AgentLink, a platform that allows you to securely open your product up to AI platforms, to any agent access.
And, you know, you don’t need any other tool, basically. So we saw that you can just take whatever it is that you have out there and connect it to to to, to Claude, and any agent that might connect to your application.
You can define policies on that. And, you know, I promise today I won’t do slides anymore. Right? So I won’t do slides, and we’ll have a more open conversation and more technical session.
But I do want to recap for a second what we’ve done without slides, what we’ve been able to achieve. Right? So here you can see the Frontegg AgentLink dashboard already connected to the expense application that we presented, receiving the request, showing the tools that we have, and data protection control. So we made sure that all emails are masked for US users, and we created policies that define what type of expenses are not allowed at all, if they’re too big, or what type of expenses are expected to be stepped up. So AgentLink will verify that indeed we are who we claim to be and send us an email or an SMS for additional identity verification.
And for other types of requests, we also need the approval of somebody else within our organization, so we defined all of that.
We mentioned the monitoring. So everything is audited, and you can get full information over every request that was made, full roll data observability on the request so you can troubleshoot if something is not working properly as expected. We can define approval flow. So yesterday, we defined an approval flow through a super admin.
And after a few minutes with an AI native experience of onboarding, we managed to spin up this enterprise grade MCP on top of our SaaS application.
And, also, Aviat joined me alongside our wonderful guests and presented what we’re going to do with AgentLink and kinda how we look at it, what’s the vision.
And I think, you know, at the end of the day, the fact that we’ve been able to connect everything so fast and to interact with our product through the AI platforms, It’s, you know, it’s just tremendous.
We spent a lot of time on this product. And, you know, during the building out the product, we then you know, there was something that was raised by one of our architects on the questions that might come from customers when we talk to them. Right? Because we’re not new in this business. We’re six years into this journey.
Usually, we speak to CTOs, to architects, to team leaders, to developers, and we deal with existing businesses. Aviade, you and I spoke about it yesterday that the types of companies that we work with are companies that they have, you know, they have something to lose. They have existing applications, and they can’t just afford not to give something out that is totally secure, you know, just to give you a sneak peek without bragging, but these are the type of names we’re talking about. Right?
We’re talking about companies like Siemens, like Palo Alto Networks, like NVIDIA, like eBay, and fast growing startups that can’t afford to damage their brands. Right? So these are the types of companies. And what typical what they would ask us typically is, you know, that’s all good, but what if I need more control?
Right? You take an opinionated approach over things, and that’s amazing. We did it with SaaS. We’re doing it now with AI usage.
But what if I need more control? What if I want to write my own stuff? What if I want to get into the code? Right?
And we kinda observe this new market that is happening with building AI native products and companies like Bolt, like Lovable, right, Base forty four, you start with a no code experience, but then once you’re ready, you can also tap into the code. And we sat together, and we tried to understand, okay, how are we kinda combining those experiences? So from one hand, making it super easy to hook up your product and open it up externally. But on the other hand, if you need more control, what are you doing with it?
So one of the options was, okay. Let’s just allow everything on the no code platform. But then an idea came up to also do something that is not natural for us for we haven’t done it for the last six years at least, and is to provide a product that is totally open source, has, you know, all the capabilities that we presented in the enterprise product. And but you can start your journey through the open source, and you can, you know, spin up everything you need over there.
And to be honest, I was hesitant at the beginning. Right? It’s something that we haven’t done before. But the Viad, you took control over it together with David Anton, our chief architect of UI and JavaScript.
And you created this, you know, amazing thing that you claim. It’s, you know, an amazing thing. And here, I will, you know, I will let you prove that indeed anything that we could have done that are presented along these two days that’s already used by, you know, amazing companies, that you can achieve all of that and more. That’s what you claim with the open source version. So, you know, it’s a challenge.
It’s a challenge. Challenge accepted. Yeah. I’ll just say that, you know, there’s one hand of being flexible in open source.
And I think, you know, one of the items that I do wanna highlight, David, was the responsibility for the JavaScript community. So every other open source tool, and I blogged about it a few days ago, every other open source tools for MCPs is completely Python based.
And we had the responsibility because we are native JavaScript company providing, you know, what is necessary for our friends within the JavaScript community and our colleagues within the JavaScript community. And I took the challenge and provided a way to make sure that whatever, you know, we are doing over here, you showed a few days ago, right, how easy it was for you, like, within a few minutes to spin up an MCP server.
I’m gonna take the challenge. I’m gonna do it through code and through you know? And then what I’m gonna show here is our front MCP by agent agent front. Agent front is our open source version, and Fronteggcp is our open core for agent think. And we’re gonna show how within two minutes, you’re gonna spin up an MCP server. So are you ready for it, Siggi?
I’m stoked. You know? Let’s do it. Let’s do it. And you also chose to do a live demo. No videos.
No, I’m doing a live coding demo.
Unplugged. Completely unplugged. I’m gonna do several copy pastes. Okay? Because I don’t wanna bore you with my printing.
So Frontend CP is going back. Okay? So agent front Frontend CP already started. That’s an open source SDK.
It has all of the code here.
You are more than welcome to contribute. It’s Apache two two point zero license.
You know, if you have an issue, if you have anything, pull request, whatever, just feel free to contribute. Okay?
So the way to start is like you do with, you know, React create app or or Next. Js create an app. So you do n p x front MCP create. I’m gonna create an ecommerce app. Okay? That’s gonna be the highlight of the day, creating an ecommerce app. All I have to do is just click on my MPX.
There you go. We have our ecommerce app.
I’m gonna install it, complete the live demo.
And the next thing, I’m gonna run it.
I don’t know if it took time, Sagi.
I have to say that was pretty fast.
Yeah. And that yeah.
Let’s see what we have. Okay? So we have a hot reloading server, an MCP server running on you know? So that’s our MCP server.
It is tied with a front front MCP. Okay? That’s from the front MCP SDK. I’m gonna remove authentication from now.
You know what’s gonna happen next. Don’t worry.
I’m gonna remove authentication now. We’re gonna plug it in yet. Next, I’m gonna have a calc up. That’s what the application that we are gonna expose to the MCP server, which has one add tool.
Okay? A tool is gonna combine input schema with a and b and gonna return a z for a number. We know how developers like to test stuff. Right?
We are developers. We know how developers think. Developers like to think and to test stuff as they code it. So this is why we implemented the live coding and the hot reloading.
And then on top of that, we have implemented an inspector powered by the MCP inspector.
So I’m running the MCP inspector.
I’m able to connect, list my tools. I got the add tool. Oh. I’m gonna do two and two. Sagir, do you have an idea what’s gonna be at two numbers?
I need to check with my. Give me a second.
Okay.
That’s probably it. It says it’s probably four unless it’s, you know, hallucinating.
Yeah. It’s not hallucinating.
It is an AI joke.
Yeah. It is for so we got our MCP server up and running. How long did it take us?
It’s pretty fast. I have to say.
It’s very rough. It’s even faster than your cloud version. Right?
It was faster than the cloud version.
Cool. Cool. So we are good to go. We have our server up and running, but there is one problem.
That server is named as an ecommerce MCP, but it exposes and calculates our application.
So let’s start fixing that. Okay? The first thing I’m gonna do is I’m gonna name it an ecommerce app. Okay?
And I’m gonna name everything with the ecommerce app to be an e-commerce app. Okay? And then everything on the main server is an e-commerce app. But the problem is that we still have the ad tool over here.
And e-commerce Oops.
Yeah. So I’m gonna remove my ad tool over here, and I’m gonna create a tool which is relevant for the ecommerce tool. So we’re gonna create a search products tool.
So search products, Sagi, I don’t know. You know, you probably built several ecommerce stores. You know, I know from your history, you built an ecommerce website. So search products, search based on category, returns a product, and executes the search. It all happens in memory. Okay?
That’s it’s interesting, you know, to pause for a second and and and just mention that what you’re doing here is you’re actually building a product. And, you know, we hear a lot about those MCP startups, this new thing that is emerging. Right?
You’re not just connecting to an existing tool yet. You’re actually building a back end a full back end to a new MCP startup that you can launch in a few minutes.
Totally correct. I’m using the tool by the Frontend MCP SDK.
I’m wrapping it around my class, okay, which extends our tool context, and it has an execute function. I’m getting the category over here. Okay? I’m filtering products based on category. Obviously, for now, I’m using an in memory. Okay? But, you know, we obviously gonna connect it to a database at any you know, when we go to production.
So I have an execute function. I’m filtering as any product would do. Okay? But, yeah, I’m building from scratch, and the only thing I’m left to do is just put my search tool over here to expose it, and I’m good to go.
So if I’m gonna rerun my MCP, reconnect to it, list my new tools, I get search product tools, no more ad tools. Okay? I’m able to run.
I get my three products over here, and let’s filter by category, and I get only electronics products. So so good. I mean, that’s the you know, it’s been ten minutes, and we already built our new tool using the Frontend CP SDK. Okay? Being able to filter, get a schema, output a schema, and that’s really strongly typed.
That’s that’s that’s great. So now we have this, you know, Seldo back end.
You know, show me some real stuff that we can do with it.
Yeah. I can share your stuff. Up until now, we did get. Right?
Let’s extend. You know, obviously, most of the applications today, whether it’s MCP, RESTful, etcetera, they’ll do both search and post and a user repository for it. Let’s implement our own repository. Okay? So I’m gonna introduce a product repository. Okay?
So on the product repository, you know, I’m gonna introduce the product interface and a product repository. Again, still in memory, but now we are not able. So it exposes you to get all, get by ID, get by category, obviously, search and ad, etcetera.
But now we are not able to just do it. Let’s introduce a new tool, if you may. So let’s introduce a create purchase tool. So we wanna not just get products. We wanna build new products and create new products. So I’ve created a new tool, which is called a create purchase tool.
It gets an input schema for the type of product you wanna buy, and it returns it. But now this create purchase tool is using this product repository in order to create this.
Sergey, I don’t know when was the last time you coded?
Actually, I have been trying to code lately to fill this vibe coding that is happening.
Okay. When was the last time you didn’t Vibe code it, but you actually coded?
Many years ago.
Many years ago. Do you see any problem in this code?
Oh, wow.
I see something okay.
Let’s go. Let’s go. Yeah.
Go ahead.
Yeah. You’re challenging me now.
You challenge me. I have to challenge you back. Come on.
I think that, you know, one of the problems that I start to see is that everything is still opened up, you know, and everybody can call everything.
That’s okay. And we’re gonna close it in a second, but one of the problems is that this create purchase tool is using a product repository. Correct me if I’m wrong.
If I go to the search tool, it still has an in memory.
So that’s an architecture format.
So the performance is not going to be great, and we’re going to lose a lot of stuff long term.
Small finger source of truth for Yeah.
What is the product? So I created a product repository for both of them. I’m gonna run it, and guess what? It’s not gonna work. You know why?
I’m gonna reconnect. I’m gonna lift my tools, and I still only see one tool. So the reason for that is in order for a tool to appear within the front end MCP, you have to kinda declare that you’re exposing it. So that’s the way I’m doing it now. So within my ecommerce app, I’m declaring the tools that I wanna expose to the out you know, to the outer world. So I’m declaring that I wanna expose my search products tool and my create products tool.
And then if I reconnect and leave my tools, I have both of them. I’m gonna search for our products. I have four different products.
Let’s buy an iPhone Seventeen. Okay?
Let’s do it.
Yeah. That’s seven ninety nine, last time I checked, for electronics.
Okay. Did buy me an iPhone seventeen. Okay, man. I’m so happy.
And now I have my iPhone seventeen. Sagi, when are you gonna ship it to me?
It’s on its way. So tell me for a second, so what are we using here for, you know, for data management?
Are you hooking it up to a database? What’s the long term plan here, and how are we kinda, you know, building it step by step?
So that’s a great question. For now, we are connecting it completely to the product repository. Product repository can’t currently live, like, in memory. We plan to connect it to a database, but there is one crucial security piece missing in order for us to connect it to a database.
We kinda need to know which user is connected and when.
So that’s when we are kinda that’s where we are currently stuck.
No user management at all.
No user management. And now it’s published.
Yeah.
If you take a look, when we run our MCP server, it even says Okay. It warns us about the tools that are basically opened up to Correct.
Anybody.
Correct. So I think maybe now is the time to kinda think about authentication.
Let’s think about authentication.
So I don’t know. I mean, do you know any good authentication providers, IDPs, whatever you know?
I happen to know one that is that they say that it’s pretty good. It’s called Frontegg.
Frontegg?
Yep.
Never heard of it.
But that’s a founder’s joke.
Yeah. Let’s try it out. It’s important to mention that the front MCP supports any OpenID Connect MCP. Okay?
So any OpenID Connect IDP. So it can be Frontegg, it can be Okta, it can be Azure, and track similar ID. What you know, if you’re providing an OpenID Connect IDP, we got you covered. Okay?
But as my cofounder suggested, we’re gonna use Frontegg for now. So I’m, now, adding an environment variable over here, and all I have to do in order to use that is go to my server and just add my auth claim. So I’m gonna use a remote auth based on OpenID Connect with an OpenID Connect base URL, which is the Frontegg URL.
Let’s rerun.
I’m gonna rerun my inspector as well.
Okay. Okay. So now we are going to reconnect.
Voila. We are being redirected to our OpenID Connect provider.
I’m gonna log in.
Nice design.
Thank you. And do you happen to know why there’s no password presented?
Because I believe that, you know, the right approach is passwordless.
Thank you. Thank you.
Thank you. So we got our six digits code going back, and we are authenticated.
Yeah. I have two tools. I’m authenticated. Do you trust me?
I trust you. That’s a customer identity joke.
Yeah. Yeah. So other customers I talked with, they do not trust me. You know why?
Why don’t they trust you?
Because they don’t trust anyone. Okay? So in order to prove them wrong, I had to implement a tool. So I’m gonna show you, okay, how to implement a tool that actually uses the authentication that we just showed. So I implemented a tool called me.
Okay?
That’s so on the me tool, we’re gonna declare it a me. Who am I? And it’s gonna return my name, my email, and the roles that I have within. Okay?
Now this tool won’t work, if you remember, until I Not declared.
Yeah. So I declare it, and then I’m gonna rerun it.
So now when I’m logged in, going back, reconnecting, listing my tools, I have a new tool called me.
And there we go. I’m Aviad with Frontegg, good IDP, and I have an admin role.
So tell us a bit about the admin role. Where have you received it from?
So the admin role actually propagates from the remote IDP. It can be a Frontegg IDP, but any IDP that is passed through Frontegg, k, if you map the claims correctly, okay, we’re gonna get the roles into it.
And that’s important because we’re gonna use the roles, and we can use the roles in order to propagate different authorization plugins and adapters on top of it.
Wonderful.
Yep. Cool. So we have a completely secured IDP.
That’s, that’s actually pretty great. Tell me a bit how extensible is that? You know, where can we take it in terms of performance? And is it really something I can use in my production? Yeah.
That’s pretty extensible. Before, you know, we were talking about extensibility. You know?
When you presented the demo two days ago, we had a remote REST API server, right, that exposed tools. And then all we had to do with agenting was just connect the open API, and, you know, we were serving as some kind of, you know, a proxy within the way. Do you remember that?
Yes.
Cool.
So we even have a diagram to show that.
Perfect. So in order to mitigate, you know, and to achieve that, we had to build something in Frontegg called an MCP adapter.
And that part is completely open code as well.
So you know, I have a remote server running over here on port eighty eighty. Okay? If I’m gonna go to my eighty eighty local host I’m gonna run slash products. I’m getting products. That’s a complete rest API, you know, express based, ancient, old legacy system. Okay?
But, you know, considering that the product manager of this system won’t do any changes to adapt to MCP, we had to do changes in our ecommerce MCP to adapt to it.
In order and in order to get to it, we actually built an adapter. So if I’m gonna go to my ecommerce store, you know, I’m gonna create an, you know, an ecommerce adapter.
And I’m actually going. What I’m gonna do is I’m gonna connect my open API adapter to this localhost eighty eighty. So now I have my localhost eighty eighty as the server. Okay?
It has two paths: the list of products and the create purchase, and I’m gonna expose it.
And the last thing I’m gonna do is, as you probably remember, Sagi, is just exposing it on the ecommerce app. So as we expose tools, we’re gonna expose adapters.
That’s a very interesting approach. So, basically, adapters are something that you can connect to, and you basically act kinda like an orchestrator to do everything. This is the approach?
Correct. This is this is a very good, you know, distinguish of approach because you can connect as many servers as you want to the same app because your your app might be distributed between different microservices, but you can still join all of these microservices on single MCP and expose all of these MCP’s as one MCP to the world. So that exactly is the tool, and then you can, you know, add your own custom tools on top of it.
Nice.
Okay? So going again to this Yanderv, going back to my MCP inspector, reconnecting, and listing my tools.
I have my search products. This is the tool that I implemented, but now I have my legacy tool, and we can see that the remote server got invoked one time.
Let’s invoke it again, and there we have it again. So the same MCP server, different tools, different types of tools are being executed on one endpoint.
That’s super cool. What other types of adapters do you see in the future?
So we do see GraphQL adapters and any other type of adapters converting to even XML SOAP. Okay?
And and we would love the community to to to join us and, you know, anyone that is using our front MCP, you know, and need to adjust to its own legacy system, feel free, you know, to to just contribute and and and go ahead and add your own tools and your own adapters into it.
Nice. Love it.
K. Wow. Tell me more. What else can we do with it? Tell me more.
Yes. So you ask about, you know, how extensible is that. Okay?
One of the questions that we got asked when we were building AgentLink and where we talked, you know, with our providers is, you know, how can we make you know, MCP gets, you know, a lot of requests within, you know, a second.
So AI adoption is going crazy. We all know that. So what we wanted to achieve is a way first to divide to to develop plug-ins, and the first plug in that we developed is a caching plug in. So, for example, Redis, you know, obviously, for caching is one plug in that we develop. I have a local Redis house running on my Docker over here.
And then all I have to do in order to implement the cache plug in is to go to my app, import my cache plug in. That’s a default plug in that we developed as part of my front end CP plug-ins. Okay? And then all I have to do is just add an annotation of plugins just below the adapters. So I have a plugin. I’m anything but a cache plugin. So we are using a Redis plugin.
We’re providing it with the Redis host.
And then on our search products, okay, let’s imitate a very long request. So what we’re gonna do is we’re gonna implement the cache on our search tool.
And the first time it’s gonna be called, we are simulating a delay for two and a half seconds.
And then, you know, let’s see what happens. Okay? So, again, Redis cache is provided by default within the front MCP. So going back to my MCP inspector, I’m gonna search your product.
This is my two and a half seconds.
Next time I’m gonna search for it, I’m getting a cash result.
So that’s our way to contribute to the way that, you know, responses are being cached for MCP, so there is no overload on database, etcetera, or any specific logic on top of that.
That’s great. I know. I wanna take it a bit even maybe step one step forward on making it really enterprise grade. And, you know, you showed us that you get the role of the user that’s connected.
I’m sure that, you know, you can write code to kinda make sure that somebody can do something if they have a specific role or stuff like that because you know the scope of the session and the user, and that’s great. But what about, you know, creating a more structured way of guardrails into your application? So we showed yesterday how we define policies on the no code enterprise product. Can you do the same kind of things on open source as well?
Yeah. Sure thing. So, you know, we just showed a plug in that came out of the box with Frontend CP. Correct?
Let’s see how extensible this is. I’m gonna create my own plug-ins. Okay? So I’m gonna create two plug-ins.
The first plug in I’m gonna create is my authorization plug in.
This authorization plug-in is gonna run on my list tools. Okay? So I have an authorization plug in.
It’s called authorization, obviously, as you can imagine, and it runs on the list tools flow. Okay? What this authorization plugin is gonna do is gonna return only the tools that the user is authorized to see based on its required roles. Okay?
I’m gonna add this authorization plugin, obviously, as we do every time to our list of plugins.
Okay. And now let’s do the search plug in. On the search, I’m gonna do authorization, and I’m gonna use the admin as a required role. So running it real real quick, that’s what you showed yesterday.
Right? We have an RBAC based on that. I’m gonna reconnect. I’m gonna list tools. I have a search product, and I’m reminding you that I’m an admin.
And the search product is requesting an admin role. If I’m gonna go to an owner role only for a search product and I’m gonna reconnect Yeah. Sorry. Let me run my inspector once again.
K. I’m gonna list my tools. I don’t see a search product over here because I’m an owner, and I’m not an owner. I’m an admin going back to admin, listing my tools again, and I have a search product.
But, you know, that’s for the list tools. One of the, you know, one of the things that we’ve seen yesterday is for dynamic control over, you know, things that can happen. Defining guardrails for dynamic based on dynamic properties.
So let’s purchase guardrails. Okay? You showed yesterday that if an amount exceeded fifteen hundred bucks, this you know, it needs to go to approval or blocked. Okay?
Right. So I’m trying to imitate the same log logic through a pouch purchase guardrail plugin. So it’s called purchase guardrail. I’m providing it with a max price.
Okay? And it runs on the tool call. So when a tool is called, I’m checking if the price that I was given is exceeding my max price on the guardrail, and then I’m locking it.
Okay? And as you can imagine, in order for this to work, what should we do?
Yeah. We should include it over here.
Then we’re gonna do it on the create purchase tool. I’m gonna do a purchase guardrail, and I’m gonna do a max price of five hundred bucks.
Easy. Yeah.
So running it again.
Reconnecting.
I have my list of tools. I can run such products.
Two and a half seconds. I have a cache. We are all good. Now let’s buy some stuff. So I’m gonna buy some candies, okay, for fifty bucks.
We call it sweets. That’s the category, and I’m good to go. So I have candies. I can search. I got candy.
Now let’s try to buy an iPhone Seventeen.
So we said an iPhone seventeen is seven ninety nine with electronics.
Okay. Reminding you that the purchase guardrail is for a max price of five hundred. I’m running the tool, and I’m blocked because of a guardrail policy. Right. Yeah. So if we are fixing the error here, no worries. But that’s the idea of adding more and more guardrails within code on top of your tools.
And I assume that in the future, you can use a kinda hybrid approach. Right?
Some of the tools that you want to include or the plug-ins could come from a paid service, and some of them will go from open source. So full flexibility on that.
The idea of plug-ins is that they are completely customizable and completely extensible. So you can implement your own plug-in, you know, if someone from the industry wanna support, you know, and wanna contribute plug-ins even if it’s paid. You know, that’s the way of doing it. We have our own method, and the idea is that everything is extensible and it runs as an annotation on top of any tool within the Frontend CPU SDK.
Yeah. This is right now with the interceptor, and it’s super cool.
But, you know, I think that the sweet spot yesterday was around the chat interfaces, and I got a lot of comments after that. Oh, wow. Like, I want to be listed as well. So we had this rush of interest yesterday because I think that everybody understands that at the end of the day, this is the future of SaaS.
Right? If you’re building an application, you know, you just have to be in the ecosystem. Yeah. Can you connect that to the chat interfaces as well?
Yeah. Obviously, you know, what we build is a fully compliant MCP server. Okay? So no secrets over here. So the fact that the MCP inspector could connect, means that Claude can connect. And for that, what we did, you know, is I’ve connected, you know, our local host to, and let’s go to Claude.
Okay. So I’m in my cloud now. I’m gonna go to connectors, and I’m gonna add a custom connector. Gonna call it an e-commerce app.
And that’s the NG rock URL that is pointing to my address.
I’m gonna connect to it.
Let’s see.
It listed my tools, so I have my tools over here.
Let’s open a new chat.
Okay. Who am I?
Who are you? Yeah.
That’s a question I’ve been asking myself.
That’s a deep question you asked there.
Yeah. That’s a question I’ve been asking myself for quite a while now.
Yeah. And it uses the ecommerce app. Me, and we’re able to see the call right over here, and that’s what it returns. We see that the client’s name is Claude, and I have admin access. Okay. So we’re connected. Yeah.
Search for any electronics products should trigger the same action.
But I think at this point, you get an idea. This is a complete m MCP server, you know, available. So, you know, Claude wants to use the search product from ecommerce app, and we’re gonna see the call over here.
Okay. That’s the result that has been invoked, and there we go.
So Incredible. Yeah.
That’s super exciting. We took, you know, an approach into it in twenty, thirty minutes. You set up with explanations, by the way, so way to go, while coding, spin up a full TypeScript enabled MCP server.
You added authentication by Frontegg. You could have added any OpenID Connect.
You connected an OpenAPI adapter. Right?
Correct me if I’m Correct.
Correct. Correct. Yeah. Open API adapter.
You connected the Redis to it.
So every second request would be, you know, twenty x faster.
Then you connected role based authorization. You showed us how you can use role based. So if I’m an admin, I can do stuff.
And then you connected some business logic kinda enabled guardrails, right, with the policies that we had yesterday.
And everything is also logged. You connected it to the chat interfaces. So in a you know, you kinda build an MCP startup out there, which becomes a very popular thing, and you did it very, very fast.
You know, I think it’s great.
And, you know, once I’m I build this and let’s say that I want to use the approach of actually taking it to the cloud. So, you know, at the beginning, I’m playing with it, and that’s awesome. I can you know, it’s even nice for me to kinda control everything.
But then I want to take it to the cloud.
Are we planning any connectivity between AgentLink and front MCP?
Yeah. Totally. So, obviously, you have two options. You can deploy it and host it yourself and maintain it yourself and, obviously, code it yourself, etcetera, which is a way that you can choose if you have spare time.
And then another way is to kinda take it to production. And then if you don’t wanna build, like, approval flows and step up, etcetera on, you know, yourself, within the next couple of weeks, you’ll be able to add a remote MCP in Frontegg agent in cloud. Okay? So you’re gonna deploy your agent MCP powered by this tremendous open source and then add all of the interpreters enterprise guardrails on top of it by Frontegg by just, you know as I did with Cloud Desktop by, you know, hosting an NG rock.
Okay? You’re gonna be able to do it in Frontegg by just proxying from Cloud to your remote MCP. One other thing that we just mentioned two days ago is that we are planning to implement code based tools within the Frontegg MCP cloud. So you’ll be able to kinda migrate away and pull some of your logic from open source to cloud as well.
So, you know, we are trying to be as flexible as we can. So every developer can choose its own poison, as I like to call it.
And then every developer can choose, you know, everything on their own.
That’s great. And we have everything up and running on agent front dot dev. We have the repo on agent front dot dev slash front m c p with a quick start here exactly with the stuff that that you mentioned, a full explanation over the core components and the authentication that we have here and the extensibility with the providers and adapters and plug ins and the the logging mechanism and how to actually build it for production usage.
And more more stuff is coming in the next few days and weeks.
So super excited to see everything else. You definitely proved that we can do, you know, a lot of stuff if we wanna code.
And, obviously, you can also do all of these things in kinda like a vibe coding approach, right, because this is the new way to code.
And, you know, it’s super, super exciting.
I think that we have a few questions from the crowd. So yeah.
So first, how can it be used in the utility sphere? So it’s getting more AI oriented in the last few years, and they will get AI agents very soon. How dangerous is it, security wise?
So, you know, in the utilities sphere, I mean, I believe it’s like everywhere else on propagating the right guardrails and propagating everything.
You know? We discussed yesterday and everything around making sure that we first expose the least tools that we have and then gaining the agent’s trust in order to get more tools in there.
So I know that it’s getting more AI. It’s not a bad thing, Ilona. It’s a good thing that it’s getting more AI because it means more proficiency on top of that. But what you know, eventually, what I’m saying is that security wise, providing more and more guardrails is the wiser thing to do assuming that the agent credits call is valid.
Yeah. I agree. And we spoke about it yesterday with Nir.
I think that everybody understands that this is happening. It’s going to happen.
It’s already happening in you know, for some products that release their new connector to the marketplace, to some AI marketplace.
And I think that the challenge here is to really provide an easy way to start with something even if it’s a small portion that you start to allow to open up to AI and do it in a safe manner so you can control the data that is going out to the models and to your customers. You can control the authorization.
You know, if you’re a multitenant product, then you also have the data segregation to protect. You know, you don’t want somebody to ask questions about a different tenant.
And we need to remember that we’re dealing here with those very pleasing creatures of LLMs that are trying at all cost to, you know, to please the users that are asking the questions. Right? And if they can do it one way, they will try to do it another way. So I think it’s important not to try and reinvent the wheel, but really go with things that are tested out and with solutions that can protect against bad stuff like we’re hearing over the last few weeks on some MCP interfaces.
Any other questions?
Okay. Aaron is asking. You mentioned using other IDPs besides Frontegg. A lot of them are saying they help with AI. What are you doing that they are not doing?
Yeah. So, you know, I get it that they’re saying that they help with AI. You know? All of the IDPs pretty much, you know, on the base level, like, the same with exposing, OAuth two point one and dynamic client registration, which is the basis, in order to support, AI workflows. Obviously, Frontegg does the same and other IDPs.
What we kinda do that they don’t do is provide this cloud based no code guardrails on top of MCP calls, which is the granular authorization level that is required.
We just talked about it yesterday, providing the tenant level policies and providing everything to make sure that AI adoption is being provided safely. And, you know, when AI adoption is being done, it’s far beyond just the login process, which is, you know, you know, other IDPs are taking it on the login process and authentication part.
We are trying to make sure that even after the authentication, the agent interactions are securely being proxy to the remote IDP remote API.
And I opened this blog, Viad, that I know that you invested a lot of effort in writing, and you’re going to write more more things soon. So I think it’s, you know, it’s really covering the bits and bytes of starting out with opening up your product.
And, you know, I want to really, really thank you.
It was awesome. Can’t wait to see what’s coming next in the next few weeks. And I know that, you know, now it’s on both fronts. Right?
It’s on the AgentLink and on the open source and the connection between the two. We’re already getting a lot of requests for presenting some of those interconnectivities between the methods, and it’s going to happen. So, really, thank you. Thanks to the team.
It was an amazing three days off. And, yeah, you know, it’s an exciting time we’re we’re we’re we’re living in, getting to, you know, to AI native, helping companies to become AI native, changing the way SaaS is being consumed. Very exciting. Yeah.
And we’re up for the challenge.
And I would just say if you think you’re gonna wait, you know, a few months until the next release, you know, don’t. It’s gonna be much faster.
So Thank you so much.
Thank you, guys. Everybody.
Bye.
The Complete Guide to SaaS Multi-Tenant Architecture