
从概念到云部署:使用Cursor与Heroku MCP Server构建应用程序 原创
我一直在尝试将Cursor作为开发工具使用,它在日常工作中意外地带来了显著帮助。它不仅会编写代码,还能理解上下文,在合适的时机给出建议,甚至预判我接下来的操作意图。
在看到Heroku MCP Server的公告时,我不禁心生好奇。也许Cursor不仅能够编写代码,还可通过聊天提示词和响应来构建应用并部署至Heroku?我决定试试看。
本文中,我将演示如何使用Cursor结合新的MCP集成,构建一个简单的SvelteKit应用并部署到Heroku。那么,整个流程否可行又是否顺畅?我打算通过实测来探究答案。
模型上下文协议(MCP)是什么?
MCP是一种开放标准,允许大语言模型(LLM)以结构化的编程方式与外部工具交互。除了基于上下文生成代码或文本外,MCP支持让AI系统执行真实操作——例如发起API调用或执行命令——且完全遵循用户请求。
在实际应用中,这使得Cursor不再只是AI增强的代码编辑器。通过MCP支持,Cursor变成了指挥中心。我们可以通过聊天提示词直接创建云基础设施、查询数据库或搭建新项目。
Heroku MCP Server为Heroku平台引入这项能力,让我们能够要求Cursor执行创建Heroku应用、扩展dyno或附加插件等操作,全程无需离开编辑器或打开终端。
使用Cursor构建SvelteKit应用
我想让Cursor尝试用SvelteKit构建一个待办事项单页应用,后端使用PostgreSQL。这个任务对Cursor来说应该足够简单,也能帮我这个Svelte新手节约大量时间。以下是操作步骤:
在新项目文件夹中打开Cursor
我从~/project下的一个空文件夹开始。面对空白画布,我已准备好让Cursor开始工作。
描述任务
我向Cursor解释了需求。为了帮助它理解Svelte,我还专门为大模型提供了相关说明文档。
我想用Svelte/SvelteKit构建一个“待办事项”单页应用。Svelte文档地址: https://svelte.dev/llms-full.txt
我的应用需要支持列出待办事项、添加新事项、标记完成/未完成状态以及删除事项。
其中应使用PostgreSQL数据库。
最终我会将这个应用部署到Heroku并附加Postgres插件。但我也想本地测试。我的本地PostgreSQL实例正在运行。所以,我可以提供本地数据库凭证,或者在附加插件后使用Heroku的连接字符串。
请在当前文件夹中创建我的应用。
这是Cursor的响应,因此我提供了一些偏好指引。
Cursor开始创建应用并添加必要依赖项。当遇到障碍(如过时的命令行选项)时,它会自行解决。
开始编程
现在轮到Cursor开始实现应用了。此时距离我启动Cursor仅过了约两分钟。
几秒钟内,Cursor就生成了代码并保存了应用所需的文件。
设置本地数据库
接下来,Cursor提供了设置数据库的相关步骤。
在这个步骤中,我向Cursor求助。
请给出创建数据库和运行架构的命令。还要为我创建.env文件。我的本地PostgreSQL运行在localhost:5432,用户名和密码都是postgres。
我可能需要源码控制。请为项目初始化Git仓库。
Cursor顺利设置了.env文件并提供了所需的 psql命令。
Git Repo初始化
Cursor继续为项目设置源码控制。
应用程序本地测试
Cursor表示已准备好在本地开发服务器测试。
真的?所有代码都写好了?下面马上点击Run command开始测试。
接下来,我打开浏览器访问http://localhost:5173测试应用。
至此,Cursor已完成应用开发。从开始到现在仅用了约五分钟。接下来准备部署到Heroku,现在要用到Heroku的MCP Server了。
在Cursor协助下部署至Heroku
Heroku本身的设置和运行已经很简单了。我迫不及待想看看通过Cursor自动化Heroku任务能如何提升效率。
配置Cursor使用Heroku MCP Server
这里需要将Cursor与Heroku MCP Server对接,具体步骤如下:
步骤1:获取Heroku授权令牌
在终端中,首先确保已通过Heroku CLI认证,然后运行:
Shell
$ heroku authorizations:create
Creating OAuth Authorization... done
Client: <none>
ID: 03aff7da-87a9-4f9b-9400-5387164390e9
Description: Long-lived user authorization
Scope: global
Token: HRKU-1a2b3c4d-5e6f-7890-abcd-abc123def456
Updated at: Thu Apr 17 2025 12:04:14 GMT-0700 (Mountain Standard Time) (less than a minute ago)
这将是唯一一次需要在终端执行此操作。未来所有Cursor项目均可复用此令牌。
步骤2:创建mcp.json文件
在项目文件夹中,我创建了名为.cursor的子文件夹,并在其中新建 mcp.json 文件,内容如下:
JSON
{
"mcpServers": {
"heroku": {
"command": "npx -y @heroku/mcp-server",
"env": {
"HEROKU_API_KEY": "HRKU-1a2b3c4d-5e6f-7890-abcd-abc123def456"
}
}
}
}
步骤3:启用新MCP Server
保存 .cursor/mcp.json后,Cursor会自动检测到此文件。
这里点击Enable。
使用Cursor构建并部署应用
配置完成后,我只需向Cursor发出指令。
请将我的应用部署到Heroku,命名为my-svelte-todo-list。
看起来不错,下面点击 Run tool。
接下来,Cursor要添加Postgres插件。这里出了点小问题:Cursor不清楚底层插件的正确名称,但很快自行解决并继续执行。
Postgres插件成功运行,我要求Cursor继续推进。
你已创建应用和PostgreSQL数据库。
帮我初始化数据库,然后部署代码。
Cursor通过MCP工具接入Heroku的Postgres插件(在Heroku CLI中为heroku pg:psql),并创建了表。
接着,Cursor检查了部署所需的所有设置。
之后,Cursor发现Git repo尚未完成远程Heroku设置,于是协助处理了这个问题。
请注意,Cursor需要运行bash命令来设置远程。看来 heroku git:remote在Heroku MCP Server中尚不可用(相信后续会解决)。
即将完成部署,但若要通过MCP工具(deploy_to_heroku)而非手动执行git push heroku main,项目还需要 app.json文件。我提醒了Cursor:
我认为还需要app.json文件才能用Heroku MCP工具部署。
Cursor顺利创建了该文件。
现在,Cursor准备通过MCP工具部署到Heroku。
几秒钟后,Cursor显示:
这就部署成功了?这么简单?我访问Heroku应用URL进行了确认。
没错,部署顺利完成!
Cursor与Heroku MCP Server的其他集成功能
Cursor报告部署成功后,询问是否还有其他需求。
建议检查应用状态或者查看日志?当然可以。
Cursor使用MCP工具检查dyno状态并汇总近期日志。干得漂亮!
写在最后:前所未有的构建方式
Cursor不仅帮我搭建了项目框架,还为我不太熟悉的框架编写了前端代码。更重要的是,它推动我的项目从概念一路推进至云端部署。这感觉很棒。Heroku本身已让部署变得相当简单,在将Cursor和MCP Server结合之后,整个过程几乎实现了完全自动。
这不仅节省了时间,更改变了我与现有工具的互动方式。无需切换上下文,直接从“我想构建……”到“已上线!”的流畅体验令人兴奋。毫无疑问,两款工具的结合之力值得在未来更复杂的项目中深入探索。
也祝大家编程愉快!
原文标题:From Concept to Cloud: Building With Cursor and the Heroku MCP Server,作者:Alvin Lee
