Install HubSpot MCP Server and Ship Faster with Agents

HubSpot's Developer MCP is a locally-run service that connects your IDE to HubSpot's APIs and AI tools. In the demo, Claude builds and deploys a new app card in minutes using just prompts, then connects it to a Vercel API that generates outreach copy with OpenAI. The MCP now has 20 tools and can diagnose and fix build errors automatically.
Chapters
So welcome everyone to the first mini cohort, the Developer MCP Product Showcase. We'll give it another minute or so while folks finish joining, but today is about seeing what's possible when HubSpot's developer, tooling and AI agents are connected in a meaningful way. So here's where we're headed. I'll start with quick context on the developer Platform group and how this work fits into HubSpot's broader platform strategy. Then we'll introduce the team. You can see them here. We'll define what the developer MCP is, what problems it solves, and then we'll spend the bulk of our time in a live demo. We'll close with next steps and resources. Really important, there's no Q and A today. The next event is a dedicated ama, so save deeper product questions for that session and SJ should have a link in the chat for that. If you do have questions and you want to add them to the AMA ahead of time, feel free. So before we get to the demo, I want to zoom out for just a minute. What is the Developer Platform Group? The Developer platform group, or DPG, is the team at HubSpot responsible for the core developer platform. They build and evolve the foundation that both HubSpot teams and external developers use to create apps, integrations and custom experiences on top of the CRM. If you've ever built on HubSpot rather than just in HubSpot can, you're using something DBG owns at a high level. DBG focuses on four things. First, platform foundations and extensibility. This is the infrastructure that makes it possible to build everything from simple customizations to complex AI powered solutions. Second, developer experience that includes onboarding documentation, CLI tools, and making it faster to go from idea to working solution, whether you're writing code or using low code tools. Third, app frameworks and APIs. DPG owns the core frameworks for UI extensions, backend services, events like webhooks, and HubSpot's public APIs. Not all of them, but we're going to oversimplify here. A big focus here is consistency, quality and making these APIs AI native and secure. And finally, security and data safety. DBG sets and enforces platform wide standards so apps and integrations are safe, compliant and trustful in partnership with our Eco Quality team and many others. But at a very high level. Okay, all of this matters because DBG is what makes HubSpot a platform, not just a product. HubSpot isn't just adding features, it's investing in extensibility. A Strong developer platform lets HubSpot teams and partners innovate faster, solve more complex customer problems, and adapt as technology changes, especially with things like AI and new development patterns. The demos you're about to see are a direct result of this work. They show what's possible when the platform is designed to be powerful, consistent and genuinely enjoyable to build on. So with that context, I'll hand it over to Judd and Brandon to introduce themselves and their roles on dpg.
Thanks, Jennifer. Hey everyone, I'm Brandon. I'm a tech lead on the Developer Experience front end team. I've been at HubSpot for about eight years. I think a little over that now and started over on the CMS side of the world working on the page editor and all of the web dev tooling stuff. And then since then I've moved closer and closer towards the dev Persona and now I work on a team that owns all of the developer tooling and basically anything that makes it easy for you to get your code into HubSpot. So mainly that's the HubSpot COI and I work closely with my PM, Judd.
Hey everyone. Nice to meet you all. My name is Jud. I am a product manager. I work alongside Brandon on all things developer experience. Brandon touched on most of it already, but we own a lot of those dev tools, the cli, the dev MCP that we're going to talk about today, a lot of the various environment management tools and CICD tools that you might interface with on a daily basis. So really excited for, for this session and talking about dev mcp and thank you again for joining. So I just want to provide some quick background. I imagine many of you are familiar, at least with the concept of our developer mcp, but we want to talk about what it is and why we built it so at a really high level. Um, and, and again, I, I assume most of you are familiar with the MCP concept, the model context protocol, but if for any reason you're not, the way I like to describe it is sort of taking model context protocol and thinking about it backwards protocol context model. Right, A protocol, a standard for providing context to a model. So our developer MCP essentially provides the HubSpot developer context to many of the models that we integrate with directly. We'll talk about what some of those IDE environments and AI assisted coding tools are that we integrate with in a moment. The developer MCP currently runs locally, so it's securely connected again to your IDE or your AI assisted coding tool. All of the processing and the MCP itself is running locally on your machine. So it's highly secure. It's very efficient in its ability to parse your file system and gain context around the projects and the content that you're building. At a really high level, we think of the value proposition around the dev MCP as helping speed up development and the software development lifecycle and reducing the time it takes to troubleshoot and debug if and when you run into those problems. So if we go to the next slide again, just to talk about, like some of the IDEs and the AI assisted coding tools that we integrate with, you can see the full list here and in a moment I'm going to demo the install process so you can see how you can actually add the dev MCP into these tools. But whether it's VS code, cursor, windsurf are some of the primary IDEs that we integrate with, or the AI assisted coding tools Claude Code, Codex and Gemini. We have your basis covered after today's session. If you're using a different IDE or coding assistant, please let us know. We're very responsive to customer feedback and want to provide HubSpot developer context where you work and build. So please let us know if you have other recommendations for tools to integrate with some of the high level problems that this tool solves that developer MCP solves. In doing initial research prior to building this tool, we talked to a lot of developers that were constantly context switching, right? They were in their ide, they had a question or were unfamiliar with a new concept or component that they were adding to their project. They would have to toggle to their web browser, search and parse the docs manually. That had its own share of complications. They were again between their file system and the CLI and docs and forums and our support community having to manage all of this and toggle between them just to develop and move forward with their project. So that was very complicated in and of itself. Also out of the box. A lot of these agents were able to access the Internet and view our documents and pull in context. But mileage would vary when it did that. Sometimes it would pull in CMS content when you were trying to develop apps, or vice versa, or it would provide context on a previous platform version that wasn't relevant to what you were doing. So we recognized that there was a need for more guardrails and more control over the context that was being provided when you were building. Also, debugging was a huge problem. It didn't really help with debugging and when it did again, it was very generic feedback. It didn't really help you solve those problems quickly. And then finally, again, the how around, figuring things out. The educational component, learning about new features and components that are introduced to the HubSpot developer platform is kind of not great at doing that either. So that was another reason that we developed this mcp. I touched on this earlier, but really high level. The value proposition of the dev MCP is that it increases your velocity, helps you build faster, and then it decreases that time. Debugging and troubleshooting, less banging your head against the wall, trying to figure things out, more time building. So at this point, I'm going to take over the screen share and we are going to do a demo here
while we get that set up, because it's going to take just a second to swap things over. There's a couple things that you can think about while we are going through this. SJ is going to drop them in the chat, but we want to think about what context the MCP provides automatically and where you'd normally need to leave your code editor to do some of these things manually. So, like, start thinking about those things as you see the demo. And then Anton Judd, this is where the. The chat comes in. I guess Anton shared that it did get pushed live. It's happening in real time right now. So if you want to touch on that before you jump into the demo, feel free.
Yeah, absolutely. Thanks for bringing that up. Was planning to mention that along the way, but we just released the dev MCP in GA, so it's been in beta since September, since inbound 2025. We have iterated on the tool since then. I think we started with about a dozen or so tools. We've expanded that. We have 19 different tools. And again, we'll get into the details in just a moment here. We collected a bunch of feedback from you all along the way and now we have confidence in this tool to bring it ga. So rest assured that it's been tested and put through the motions over the past six months and now it's ready for primetime. So very excited to release that ga. And again, to dive into the details and show you what's possible today. Prior to today's session, both Brandon and I were talking about some ideas that we could showcase to demonstrate the value of the developer mcp. We settled on this idea, this app idea for, for an outreach strategy app card. So today, in real time, we're going to build an app card that we will add to a contact record. We're going to Render it on a contact record, and that app card is going to utilize some of the available metadata from that given contact, pass that metadata to an LLM. In today's demo, we're going to use the OpenAI SDK, but you can imagine using any LLM of your choice to do this in the initial prototyping. Here, again, as the product manager, I'm going to prototype the idea, then I'm going to pass it to Brandon, who's going to bring that idea to life and sort of make a production version of that. Brandon's actually going to stand up the back end, create the API, pass all of that data to OpenAI so that we can then get a response with this outreach strategy that we can render on that contact page. Is this the next big Marketplace app? It might be. We'll see. But today, again, we're just going to do this for demo purposes, so be too critical of the idea. As I go along here, keep in mind, I'll do my best to call out all of the tool calls. So this is any time that the HubSpot developer MCP is invoking a tool to pull in context to help you and the agent move along and move the project forward. So I'll make note of calling that out every time we see a tool call. That is time saved. That's time you don't have to toggle back to docs or support forums or the Slack channel or anything like that. I'm going to start by installing our dev MCP here, but before I do that, I did just want to call out that we recommend that you're on the latest version of the cli, so always good to check the dev MCP is compatible with any version later than 7.6, but to maximize the utility of the dev MCP, we highly recommend that you're always on the latest version. As of today, that's 8.0.0. It is as simple as running HSMCP setup to install your mcp. As of today, again, there's no gating. We're not in a beta anymore. Everyone has access to this. It's as simple as running this HSMCP setup command. For today's demo, I'm going to run this in Claude code. I'm going to install and run it in cloud code. But you can see all of the IDEs and coding assistants that we talked about earlier are available directly using this. This CLI command. So I'm going to install it into claude code, and it takes no more than two or three seconds. It's now installed, it's now running. I'm going to run Claude and then once CLAUDE is up and running, I'm just going to do a check. Forward slash MCP. We see the HubSpot dev, that's sort of the short name and the alias for the HubSpot developer MCP. It's connected, it's running, it's ready to go. So super excited about that. We can always click into this. We can see, we can view the tools here. We have 20 tools. I was mistaken, I said 19 earlier. But we have 20 different tools. They cover a variety of different areas. So everything from like basic cli, guidance on how to use our CLI project based commands, uploading a project, validating a project, creating a project, cms. I imagine many of you on the call focus on the CMS side. We have dedicated tools for cms. We have tools for logs to pull in context so that agents can debug and troubleshoot on their own. You pull in those logs for say a failed build and it has context as to why that build failed and can debug on its own. There's a lot you can do here for any of you that manage your own marketplace app publicly. We actually have API usage patterns and app info that you can pull in, so you can actually track usage directly from the dev mcp. So a lot you can do with this tool and we're going to demonstrate some of that here. So if I just go back to the initial CLAUDE prompt here, as I mentioned, Brandon and I settled on this idea for this outreach strategy app. We actually used AI throughout this entire process. So we had about a 20, 25 minute conversation about this idea. We recorded the conversation, we took the transcript, fed it to AI. AI came up with an initial prompt, a very structured prompt of our conversation, far more structured than I could probably come up with on my own at a very high level. It covers everything I already talked about. It talks about the idea that we, that we want to pursue this outreach strategy app card, some of the core functionality, some of the basic UI requirements, like how we should approach reaching out to this person, some of the key talking points, the recommended approach channel and maybe an opening line that we can copy and paste into that channel. Right. An introduction to that person for the initial pass. Here again, I'm just prototyping as the product manager. Brandon's going to bring it to life, but we're going to. We have a mock API response here. Again, this was generated by AI as well, based on all of the context it had from Our conversation. We have some basic design design guidelines here. Just keep it minimal, keep it clean, keep it intuitive, and then some implementation steps to maximize the potential for success here. So order of operations of how to think about this problem and tackle this problem in real time. So what I'm going to do is I'm actually going to take this entire prompt and just paste it into Claude and we're going to let it work. It's worth noting a few things here along the way. It's going to check in, it's going to ask me to execute certain tools. So right off the bat we're seeing this HubSpot dev create project. This is our first tool call. So Create Project is a tool as part of the developer mcp. This is the first time I've installed it and run it. So I want to sort of remember that it can always run this tool, that it always has access, so that it's not prompting me every time. It's also worth noting, if you look at my file system in the top left, I don't have any directories or files related to a HubSpot project just yet. So as I allow the dev MCP to work in conjunction with Claude code, we're going to start to see that directory and all of those associated project files created in real time. Right now we see this outreach strategy card and we start to see some of the components that were specified in my initial prompt. CLAUDE continues to work. I expect that we are going to edit some of the config files and then get into the core of the card itself and editing that as we move along here. Again, it's prompting me to make code changes here. I'm going to remove that so you can see this a little bit better. But we're changing the name of the card, the entry point again, first time here. So on an ongoing basis, you shouldn't have to, you know, you know, provide approval every time you want to do this if you want to. Essentially one shot, a prompt where you give it to Claude once and it does everything autonomously without checking in. That is certainly achievable once you've allowed it to invoke all of these tools and make these code changes on its own. As it works through here. I just want to call out in the top right here. Brandon and I created a portal for today's demo. You see that there's no existing project in there today, so we don't have any pre canned projects uploaded or anything like that. As we move along here, we're actually going to upload that project and install it into this portal. So you can see now that it's actually starting to add some of the relevant scopes to what we're looking to achieve. So again, in that initial prompt, we're looking to read some of that context from the, from that contact record and it's providing the appropriate scopes to do that. Now we're at a point where it's built and scaffolded, sort of a basic project here. Based on my initial prompt, it's looking to execute this validate project command, which is yet another developer MCP tool. And if we allow it to do that again, it's just another check in the system to make sure that it's building in the right way every time we're invoking a tool. Again, this is one less step in your traditional software development lifecycle where you're not having to reference the docs or forums or file support tickets. It's all done autonomously, saving you time, helping you build faster. So I have a confirmation here. It says project is valid before I upload it, asking some questions about profiles. We're going to skip that process right now and I'm just going to say something super generic upload and see how it handles it. Hopefully it looks at my default, my standard account here, which happens to be this portal that I created with Brandon earlier. I'm just going to say no profile. And again, this is all non deterministic. So as we go along here, some of this is new. Sometimes it's asked me these questions before, sometimes it hasn't. I'm just going to say yes, upload project. This is yet again another dev MCP tool. So it's doing this on its own. And hopefully in a few seconds we should see that the project starts to, to build and deploy into our portal.
Hey, Judd, can you pull your terminal up just a little bit so we can see more of it?
Yep. Yeah, absolutely.
Cool.
So right there, I don't know if you noticed that in the top right, I had our portal open there, but it built and successfully deployed this outreach strategy card. So now I'm going to dig into this card and I want to, you know, render it and see how my prototype looks before I pass it off to our technical team to Brandon Again, for this initial pass, we just use mock data, so keep that in mind. But I'm actually going to install this into one of my contact records. So I'm going to go to distribution. I'm going to go and I'm going to increase the size of this, I'm actually going to full screen it just so we can all see. I'm going to install now. So again, this was the, you know, this was the project that was created with Claude in real time here. I'm going to authorize this install and great, we've successfully installed this app. Going to view app details and now I want to actually configure it and render it on a contact record. So I'm going to manage locations. We have the contact page here, default view. I'm going to select Outreach Strategy and save it. And now again, just to check that everything looks good, fingers crossed here, I'm going to go to my contacts, I'm going to pick a random contact and if I've done everything correctly, and if Claude and the dev MCP have done everything correctly, I should see an Outreach Strategy card rendered. Amazing. So again, if you think back to that initial prompt that we created that was AI generated based on the conversation I had with Brandon, we have this Outreach Strategy card. It's got an approach summary, it's got key talking points and it's got an opening line here with copy to clipboard so I can copy that again. All of this is mock hard coded data, so I'm seeing that it's not set up in the right ways at this point. I'm going to pass it to Brandon, who's going to bring this project to life. We're going to debug some of these issues in real time as well. So that'll give you a. A sense for how you can use the dev MCP to actually troubleshoot and debug as well. So Brandon, off to you.
All right, sweet. Now to make it work for real share. Pretty awesome though. I mean, it's just mocked out data, but that's still. If you take out all the explanation of everything, that's still a fully working project with a card in what, minus the explanation, like five minutes, That's a pretty sweet. So, all right, now I'm in that same portal over here and I think the first thing I actually want to do is create a new tab just to pull it to the top. So as we're making changes to it, we can just see it faster. We'll just call it like local, just call it demo the card. Oops not Discover. What was the name of it? Outreach. There it is. Yep.
Cool.
Okay, now we should have that. All right, cool. All right, so now we have it isolated. That just makes it a little easier to work on. So what we're going to do now is we're going to hook this up to actually reach out and hit an API that I have stood up. And like Judd said, the API just takes customer data. It has the personal access token for your app configured in it. So it can take a user email, it can reach into your HubSpot account, it can fetch all the information, just the metadata that we have for the user, and then it's just going to pass that off to an LLM. And after it does that, the LLM is going to just generate an outreach strategy that we can return to the card and the card will render it. So that is the plan ahead of time. I just spun up a really simple Vercel page that just does basically what I said. It can fetch into HubSpot account and it can do all those things just to pull back the curtains a little bit on that, similar to what Judd was saying before. So we were just chatting about the specs of this and again just used Claude to help generate the plan for it. And the output of this is basically just this prompt that I gave it and I can quickly run through the details of it. But we're describing what we want it to do. So we want a next JS app on Vercel that generates AI powered outreach strategies. I have this that I use on my machine. This is just a HubSpot specific thing. We have pretty aggressive internal tooling and CLAUDE configurations that try to take over. And since we're doing something completely external to HubSpot stack, they kind of just get in the way. So ignore that. But we talk about the tech stack in here, we talk about the environment variables that it's going to have access to. So that's the open API key and HubSpot access token, which we don't have yet because Judd just created the app. So we're going to have to actually get this uploaded into Vercel. So that's going to be part of our TO dos and then it also has just the API specs. So this is the endpoint that we're going to expose it on and also the JSON structure that we want it to return so that our card can anticipate what the shape is going to be. So this. I just ran through Claude yesterday and it spun up this. I had to go back and forth just a little bit to actually get it to look nicer. Now it just like looks super. Honestly, it looks super vibe coded. But whatever, that's not really the point here. Now that we have that up, I can start building the actual card and start iterating on that. And the first thing I need to do before I can do that is I need to actually download the project onto my computer. So I can do that with the CLI project download command. Download. So that should find the project in the account and download it to the machine. And then once I have that up, I can just open it up in VS code. Cool. All right, so we're all set here. This is the project. So on this side is my HubSpot project and then over here is the very, very simple Vercel project. Have it open because like I said, we're going to need to run some commands on it. But I think I'm going to hold off on doing that until we get started on the HubSpot side of it. So we have this open and we need to actually configure it to hit the API that exists. And what we're going to do to do that is use another prompt that we built that basically just tells Claude how to connect our card that currently has mocked out data to the API. So it has things like it's going to ask me for the domain of the Vercel app because it needs to know where to reach out to. I had talked about all sorts of like loading states and everything. I don't know why I started on the bottom of this, but now I'm committed to inverse reading it some technical requirements. And this is just like back and forth from Claude. It actually used our Doc search MCP to recommend some of these suggestions. We have the JSON structure as well. So anyways, this is everything that we're going to need to be able to connect the existing card into Claude. So just like Judd did, I'm just going to copy this and we're going to pop open a terminal, start plot up, and we are just going to paste it and let it start working on that. So it should be able to connect everything that we need it to connect. And while it does that, well, let's see how fast it goes. Actually, depending on how long it wants to take, we could try to multitask a little bit. But I also don't want to be doing too too many things at once because I think we have plenty of time to kind of run through this. So it's taking a little bit to parse through the plan. See, actually here's an example of it trying to read HubSpot internal stuff, but that shouldn't. All right, cool. So this is what I was hoping would happen. So it Recognizes that we're operating on HubSpot project and it needs more context about how to build on HubSpot. So this is great. I'm just going to give it full access. It's going to search the docs and then after it searches them and finds matching doc pages that reference the things that we're working on, it's going to then fetch those docs and then apply those to the context. So this is the fetch right here. So it's going to call the Fetch doc mcp. And now it should have everything it needs to get started on building this. I can open this a little bit so we can start to watch it go. I assume most of the edits are going to happen in here. Okay. So it recognized in my prompt that I asked it to ask me for the Vercel domain. So it's actually aborting here for a second because it needs to get this. So I can pop over here into my Vercel configuration and I can just copy this and then we can head back in here and I can say, here's the domain. And now that it has that, it should just start building. I think that's the only other thing it needs for me. All right, we'll let that keep cooking over here. I'm going to put that there. Should go pretty quick because there's not a whole lot that it actually needs to do. We can allow all edits a session and just let it go run wild. And while it's doing this, I know that I'm going to need my access token for my private app in my account, because I have to give that to my Vercel server so that it has access to reach into my HubSpot account. So I can just start looking for that now. That's going to live over here in the development tab under Projects. Here's the project that Judd built. And then if you hop into the app itself right here, you can go to distribution. And then here's the access token. So I'll wait a little bit before I actually start this, just because I don't want to be running too many things at once. But I'm going to give this to my. I'm going to start up a Claude code instance in my Vercel project, and then I'm going to use that to actually upload the environment variable. And that'll just give the chance to show some other MCP tools too. Vercel has one and also a cli and it makes it really easy to interact with your Vercel deployments. That's what I actually used to build this one. So that's pretty cool too. All right, so we finished here. Let's see what it did. So it says it imported the use CRM properties hook, which is great. That's how you get the contacts email that's expected. It made sure that it's actually making a HubSpot fetch call and it's passing the email. It should understand the shape of the data that it's going to get. In response, it added some loading states, some error handling. It actually fixed some typescript issues that I didn't even ask it to do. And so on card load, all that should happen. Next steps, we actually have to upload the project. So to upload it, I can just use our MCP tools. I can say upload it. Yeah. So we're not using profiles, so we can just say no profiles. All right, so it's going to use upload project, give that full access. That should upload, build and deploy it, and then we should be able to see it load over here. But it's still not going to work because we have to do the changes that I was talking about in Vercel. And while it's doing that, I'm going to just start inching closer and closer towards this over here. So this is back over in my Vercel project on this side. So I'm going to spin up another Claude instance, and in this one, all I'm going to do is just give it my access token for my private app and just tell it to upload it to my environment and it's going to use the Vercel MCP to get that into there. So this is actually all fully uploaded, so we're good on this side. So I'm actually going to hide this behind other things for now, just so it's not overwhelming on the window. So I can take this, take the access token, which you all now have. Screenshot this. And now I can say I want to upload my HubSpot access token to Vercel. The value is. There, So this should use the Vercel mcp. Let's see. It actually looks like it's not. It's trying to use the CLI directly, which is still valid, but I would have expected it to actually use the mcp. But as long as this gets us to the same place, I guess it doesn't matter. Okay. Yeah, it said it. Cool. Okay, so that's set. And now we need to deploy it, though. And this time I'm actually going to tell it to use the mcp because I'm not entirely sure why it didn't the first time, but if it gets to the right spot, I guess it doesn't matter so much. There we go. That's what you'd hope to see. All right, so that's going to deploy this and we can actually see it working in Vercel and we can double check that the API is actually functioning before we try to actually load it in the card, just in case there's any issues on the API side. We can just narrow down the problems, but I'm hopeful that it should still. It should work first try. Let's see. So we need to get an email first, so I'm going to copy this one. I'll let this finish applying. Any second now. There it goes. Okay, so that should be live. So if we refresh here, in theory, we should see this. Take the email, use it to reach. Oh, oops, sorry. I just activated Siri on my phone when I said that. Right, nevermind. So where was I? So it's going to take the email, use it to reach into HubSpot, and then it's going to get all the metadata, and then after it's done that, it's going to reach out to the open API and use that to generate. It passes in a prompt that just says, like, take this metadata and generate the strategy. So hopefully all that works. We'll see. Cool. Okay. Yeah, so this is all working. Has all sorts of neat things and very, very, very vibrant colors. Kind of burns the eyes, but it works. So that means if we head back into the card, now that the card is deployed and built in HubSpot and we're hitting that same API, if everything has been built correctly, should be good. But it's totally possible that we are hitting some errors.
So.
Okay, so we're back on this. This is the card. It looks like we're getting a 403, which is okay, because one thing I want to show is just the ability for the MCP server to help as a debugging tool. So we actually don't need the Vercel project anymore. So I think I can just. We'll kill this because we know that that works and it's done. All right, so we'll pop over here. This is the HubSpot project again, and I'm just going to continue using the MCP server to try to help me get around this problem. So I can say my HubSpot fetch call is failing with a 403 is there any other configuration that I need to set in my project? All right, let's see if we can just take this fairly ambiguous question just like, hey, I have this error and figure out what's going on. I would hope to see it do Doc search here. But let's see. Oh, it didn't. But it's still. I think this is still the correct. Let's see. Found the issue. Your app configuration only allows fetching API.HubSpot.com you need to add your Vercel domain to the permitted URLs fetch. So that's the correct fix. It didn't actually reach out to Docs, but also our documentation just is public, so it has access to everything that's public. It's not as targeted as the MCP Docs search tool, but sometimes it can still get the job done if you really want to force it to use the MCP. Sometimes you can just say, Use HubSpot MCP to do this and you'll probably end up getting a better answer. But in this case it's totally fine for this to happen. So just to show you where the config was changed, that's over here in the app JSON, there's a permitted URL's object, and this basically determines the set of domains that your card is allowed to make fetches out to. And we didn't have our Vercel domain set here, so it just wasn't able. It's just like a full hard blocker there. So now that we've added this, and I think it was proactive and recognized that it needed to upload the changes. Let's see. Yep. So it auto uploaded, so I think we're set there. Nothing left to do there. And it says build three deployed. And it even has some testing steps and why and explanations for why the problem is happening, which is really cool. So it's kind of a like education tool as you're going along. So in theory we should be able to refresh this now. All right. This is a legitimate outreach strategy for Christopher Davis. It says leverage Christopher's role as VP of Sales to discuss innovative solutions that can enhance sales efficiently and streamline operations in the manufacturing sector. That's a lot of big words, but it seems legitimate. Cool. Yeah. So just to quickly recap what this was. So we went from having nothing at the beginning of this, basically just a conversation between me and Judd. We used AI to take that full transcript and turn it into a series of plans. Judd was able to scaffold out a Fully working, but with mock data. HubSpot project with a card in give or take five minutes. And then I could take that, spin up a Vercel API very quickly, which I did ahead of time just because this is a HubSpot demo, not a Vercel demo, and then wire up the card to actually hit the domain in. I think it was two prompts. It was one prompt to get it working and then another prompt to fix the 403. So really, really powerful what you can do with that. And I also, I wanted to show. Actually I'll quickly pause if. Just to see if Judd has anything else he wants to put in. But I was going to show some other MCP tools as well.
No, I think we kind of covered it. So yeah, if we have a little extra time, let's take it a bit further.
Yeah, we can definitely do that. I just want to say like the chat is blowing up at this. Like minds are blown. You guys have done an incredible job of showing what's possible. Love. We have about 15 minutes left and we only need about five minutes to wrap up with next steps. So if you want to use the next 10 minutes, we'd love to see more.
Cool. All right, let's do it. All right, so one other neat tool that we have lets you debug projects from failed builds in your portal. So let me actually set up an example of it just to show you what I mean. So if we hop back over into the project, this is projects ui. Here's the project we're building. What I want to do is purposefully create a build that's going to fail so that we can use the tool to try to like self diagnose. So let me. I'm going to. I don't know if I'm moving Windows too much or not, but. Sorry, I'm going to actually exit out of this. And I'm going to purposefully break this project and I'm just going to do it by adding a scope that doesn't actually exist. Okay. So this is not a real HubSpot scope. So this is going to fail to build, but it's going to still allow the project to upload. So I'm actually just going to manually do this one. So HSP project upload. Yep, that's going to fail. And the scope, some random scope, could not be recognized. Check your scope and try again. So the way that I'm going to do this is potentially a little bit contrived, but I'll explain why it actually could be useful. So Imagine I'm working on this with a team of people. If I were to upload this myself, I would just see right here in my cli that this was the error and I wouldn't need to worry about how to fix it. But say I'm working with a team of people and somebody else uploaded this problem, and all I see in my hubiswap portal is just that a build failed. And I don't want to go digging through the logs in here, which I certainly could do if I wanted, but I don't have to because now there's AI and it does everything for you. So let me show you how you can use the MCP server to fix that. So if I spin Claude back up. Let's pull it to the top. There we go. I can tell it to help me debug the latest failed build in this HubSpot project. So what this should use is we have a. I forget the name of it. Get build status. There it is. So this is a tool that will go and fetch all of the recent builds that you have, or maybe just the most recent. Nope, the five most recent. And then it's going to find the one that's the latest failed, and it's going to identify that. And then after it does that, I think there's another tool that will go and actually fill the. Fetch the contents of that field build. There it goes. Yeah. Oh, actually. And that's in one tool call. So this must actually return some metadata as well. And this gives you the full problem. So I found the issue build number four failed. That's correct. The scope, some random scope, cannot be recognized. Check your scope and try again. And then it also identifies the problem. So you'll notice the theme here is like, okay, it's fixing it, but then it's also giving really thorough explanations for why things are going wrong and how to fix them, and then also how to test them after it's done fixing them, which is super helpful because not only am I getting the problem solved, but I'm also starting to learn more and more about the HubSpot stack as I go. So what's it asking me here? Do you want to make this edit? Yes, I do. Fixed. There we go. And now we can just say upload the fix. Yeah, hopefully. This is like showing the. The power of what you can do here. Between me and Judd, we have a fully working project and we haven't written a line of code. Well, actually, I did. I wrote one. Exactly one line of code to break it. So this is calling the upload project tool, and then that's going to create build 5, which. I did fail with something. Let's see what it failed with. It's asking for a package lock. All right, we'll try. I don't think package lock is the problem, but we'll let it go. Oh, there it goes. Yeah, sorry. I was wrong. It was right. Cool. Okay. So, yeah, we're good there.
So, Brandon, we have a couple minutes left. You know, I'm kind of rethinking the design of this. This whole app. Can we just, like, maybe change it aesthetically somehow?
Yeah.
Yeah.
I do kind of hate this.
Yeah, it's just. It's not enough emojis and it's not fun enough.
All right, let's see. I hate the UX of this. Say, make it look better. Like, how many wise? Like, way better.
Yeah, that should do it.
Let's see what this does.
Make it pop. Exactly.
Yeah. Hopefully Way better is descriptive enough for what I want. It's using the tools. All right. It's got the full arsenal. Oh, man, the suspense. Let's see. What are the guesses? Do you think it just throws a bunch of emojis in here? Yeah.
What is. What does everyone think?
I'm sorry, y'. All. There was any background noise. I think it's going to throw definitely some. Some emojis. What was the prompt? I'm sorry, I can't. I didn't see it. What was it? It was way better. Oh, interesting. Yeah. To see what way better looks like, I might simplify it too.
It's doing something. I feel like we're cheating by seeing what it's doing here.
Just a very deterministic prompt.
Yeah. Yeah. The quality of the input determines the quality of the output. And this is a plus input.
This that is in the resources is our best practices quality of prompt. So we'll see what way better does.
A perfect example of it.
Yeah.
How to do it right.
Oh, there we go.
Oh, here we go. Okay. Enhanced UX with a sparkle. Let's see what that means. This is about to be the best looking CRM card that anybody has ever seen.
I kind of want to get the Jeopardy Theme going or something. Yeah.
It's equally likely that it just broke it, but let's see. All right, we're live and we're deployed. Let's see.
Whoa.
Way better. Okay.
Cards and cards. Way better.
This seems like maybe HubSpot's definition. Way better. Added a little color. I think you're going to have to be More expensive, explicit. If you want emojis.
Yeah, I know. I think I've maybe successfully proved that the quality of the output is determined by the quality of the input. You got an opening line or maybe, who knows, maybe this is just like the new design standard and we just don't like it yet.
Well, this may be the perfect segue into next steps and just a quick run through of some of the resources we have. Thank you both so much. This was absolutely incredible. Loved having you here and doing this. I've learned a lot and am excited to see what the participants of this mini cohort are able to do now, especially since it's not just troubleshooting or checking the docs. I think that this really opened up the possibility. So couple little housekeeping things before we close out. When you close the zoom, there's going to be a brief survey that's going to help us with building future programming. So if this format was valuable for you, please, please, please complete the survey. Next steps. We have the AMA. It's on March 26th. Judd won't be there. He's going to be out of the office on that time period. Brandon, I think maybe joining us and we've got five panelists. Yes, we've got five panelists for you that are from DPG and Devrel that will be answering your questions live. If you can't join us, we have the Google form where you can submit your questions in advance. I strongly encourage you to test the developer MCP for yourself. Ask those questions, get them to us so that we can help you to take advantage of this incredible tool. Next steps. You guys know this. Set up the developer MCP with your preferred IDE test and explore prompts. If that's all you do, you will make me so happy. Please, please, please discuss the prompt ideas with your mentor and mentee during your next one on one session. So take advantage of being in this mini cohort and having a mentor and a mentee that are there to work with you and together and join the group. Loop chat. So we have had Yasmeen, we've had Anton Arno, quite a few people jumping into the chat. Definitely share what you're learning and what you're testing. And if you run into questions or problems, I may be able to bug these guys. If we run into any major hiccups or you run into something that is like very broken, please let us know. Otherwise, we'll save your questions for the ama, which is your last step, submitting those questions. Because the AMA is going to be really boring if we don't have questions. So we're going to do that. And in the last four minutes I'm just going to do a quick run through of some of the resources just so it's on record. They're here for reference. I'm going to share the deck and the recording. You can revisit everything. Best Practices I'd be remiss to say that the Dev MCP only works with 2025.2. That means if you're using 2025.1 and serverless functions, you're not going to be able to use it for this. So please make sure that that is on your radar. Set up a test account, use 2025.2 to explore this. The choice of model matters. High quality models equals better results. Thank you Brandon for demonstrating that so clearly with the UX change. Provide specifics and prompts when you have multiple options for the agent to choose from or you have a strong opinion about the preferred option. So if you wanted emojis, be explicit, say that you want emojis and maybe even very clearly what those emojis are. Make sure to preserve the agents MD and CLAUDE MD files and there is a run through of the available tools Judd mentioned. There are 20 of them. I've got them listed out just for reference. And then we also have some example questions. These are the kinds of prompts that work well. They're clear, actionable, specific requests tied to real development workflows. So start to use them and thank you, thank you for joining. We're excited to see what you build with this and we'll see you at the ama. And that is all. Thank you so much.










