摘要:在过去几周里,MCP(Model Context Protocol,模型上下文协议)在许多 AI 相关的在线社区和论坛里大火。开发者和技术人员都在热议这个东西,但说实话,包括我自己在内,很多人都对 MCP 究竟是什么、它能做什么以及为什么我们应该关心它感到困惑
Cursor + MCP + Supabase. 图片来自作者
在过去几周里,MCP(Model Context Protocol,模型上下文协议)在许多 AI 相关的在线社区和论坛里大火。开发者和技术人员都在热议这个东西,但说实话,包括我自己在内,很多人都对 MCP 究竟是什么、它能做什么以及为什么我们应该关心它感到困惑。
为了弄清楚这个问题,我花了一些时间研究,并整理了一个真实案例,来展示 MCP 在构建 AI 工具驱动的 Web 应用时到底有多大影响力。具体来说,我会演示 MCP 如何让你轻松地将 Supabase 数据库直接连接到 Cursor IDE。
设置完成后,Cursor 代理就能自动访问你的 Supabase 数据库。这意味着你每次与 AI 助手交互时,不需要手动提供数据库上下文。这对使用 Cursor 和 Supabase 构建全栈 Web 应用的开发者来说,简直是个巨大的优势。
在正式进入教程之前,先让我简单介绍一下 MCP 是什么。
什么是 MCP?
模型上下文协议(MCP)本质上是一种标准方式,允许 AI 代理安全地访问外部数据源或上下文,而不需要每次都编写复杂的自定义代码。可以把 MCP 想象成一个万能适配器:你只需要设置一次,它就能让 AI 驱动的工具连接到几乎任何外部数据库或资源。
如果你曾尝试让 LLM(大语言模型)在现实世界中发挥作用,你可能会很快遇到一个大问题:几乎所有有用的服务,比如 Slack、GitHub,甚至是本地文件系统,都有自己独特的 API。这意味着你需要编写大量的自定义代码,让 LLM 单独适配每个 API。想要添加一个新工具?又得写一堆额外的代码。这很快就会变成一场噩梦。
[MCP 结构示意图](Image from Matt Pocock)
MCP 作为 LLM 和所有这些 API 之间的一个中间层。与其为每个工具单独编写自定义代码,MCP 允许你定义一组 LLM 可以调用的“工具”。
[MCP 运行示意图](Image from Matt Pocock)
你可以选择将 MCP 服务器远程托管,或者在本地运行。无论哪种方式,你的 LLM 只需要直接连接到 MCP 服务器,并调用它提供的工具即可。MCP 服务器会处理 API 调用,让交互变得无缝衔接。
现在,让我们从理论转向实践,尝试使用 MCP 将你的 Supabase 数据库连接到 Cursor。
如何在 Cursor 添加 MCP 服务器
进入 Cursor 设置页面,在 MCP 选项卡下,点击“Add new MCP Server”(添加新 MCP 服务器)按钮。[Cursor MCP 服务器添加界面](Screenshot of Cursor IDE using MCP. Image by author)
给你的 MCP 服务器起个名字,比如“Supabase database”,然后将类型(Type)设置为 command。[Cursor MCP 服务器命名](Screenshot of Cursor IDE using MCP. Image by author)
在“Command”栏粘贴以下 CLI 命令:npx -y @modelcontextprotocol/server-postgres
你可以在 Supabase 项目中获取 connection-string,方法是点击控制面板顶部的“Connect”按钮。
[Supabase 项目设置](Image of Supabase project settings. Image by author)
在“Connection String”选项卡下,你会看到“Direct Connection URI”。复制它并粘贴到 MCP 命令的“Connection String”部分。[Supabase 连接 URI](Screenshot of Supabase connection string. Image by author)
注意:URI 里有一个 YOUR-PASSWORD 部分,作为参数。你需要把它替换为你的实际数据库密码。你可以在 Project Settings > Configuration > Database > Database password 里找到数据库密码。
你的 MCP 服务器参数应该像这样:[Cursor MCP 服务器参数](Screenshot of Cursor IDE using MCP. Image by author)
确认无误后,点击“Add”按钮。你会在 MCP 服务器旁边看到一个状态指示器,一旦它变成绿色,就说明一切正常
MCP 连接故障排除
MCP 服务器未激活?o 检查参数,确保连接字符串(connection string)里 没有 标签,密码 也没有 标签。
还是不行?o 你可能需要手动创建一个 mcp.json 文件,放在本地系统 .cursor 文件夹下。
[mcp.json 文件示例](Image by author)
mcp.json 文件的内容如下:
{
"mcpServers": {
"supabase": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", ""]
}
}
}
确保用正确的连接字符串替换 。完美!现在我们可以测试 MCP 服务器了。
测试 Supabase MCP 服务器
要验证我们的 Supabase MCP 服务器是否正常运行,打开一个新的 Chat Agent,并运行以下提示:
Prompt(提示):
tell me what tables have in my Supabase database

如果 MCP 服务器正常工作,Cursor 的 AI 代理就会从 Supabase 数据库中提取并显示表的列表。是不是很酷?
为什么 MCP 很重要?
MCP 受到关注的原因是,它简化了数据库(比如 Supabase)和 AI 开发环境(比如 Cursor)之间的集成。如果没有 MCP,每次你和 AI 代理交互时,都必须手动输入数据库上下文。
最近,我开发了我的第一个 Web 应用 LogoToAnything,在这个过程中,我用 MCP 让 Supabase 数据库连接到了 Cursor IDE。相信我,这省去了很多时间、算力消耗(token)和不必要的麻烦。
有了 MCP,AI 助手始终可以访问数据库上下文,这意味着:
✅ 更快的响应速度
✅ 更轻松的调试体验
✅ 更快速的开发周期
这也是为什么开发者们如此兴奋 —— MCP 让复杂的集成变得简单,让你可以专注于 构建,而不是 配置。
来源:墨码行者