切换语言
切换主题

MCP实战教程:让Cursor直接查询数据库和调用API的完整配置指南

上周三下午,我正在写一个数据分析功能,需要查一下数据库里12月份新增了多少用户。按照以前的习惯,我得切到DataGrip,写条SQL,跑一下,复制结果,再粘回代码里。就这一个简单查询,来回切了三次窗口,浪费了两分钟。

然后我突然想:我每天都在用Cursor写代码,AI已经能帮我写函数、改bug了,为什么不能直接帮我查数据库?

配完MCP之后,现在我直接在Cursor里问:“帮我查一下12月新增用户数”,AI秒回结果。不用切窗口,不用写SQL,效率直接翻倍。

说实话,刚开始听说MCP的时候,我也懵了半天。什么Server、Client、Protocol,听着挺高大上,但网上的教程要么太理论(讲半天架构图),要么太简陋(Hello World就完事了)。我花了两天时间踩坑,才搞明白怎么配置。

所以这篇文章,我想用最直白的方式,手把手教你配置MCP,让AI能直接查数据库、调API。15分钟配完,立刻就能用上。

MCP是什么,为什么需要它

用人话解释MCP

MCP全称是Model Context Protocol(模型上下文协议)。听着很学术对吧?其实说白了,就是给AI配了个”工具腰带”。

以前的AI就像一个特别聪明的顾问:你问它问题,它能给你建议、写代码,但它自己啥也干不了。你得把它的建议复制出来,自己去执行。

有了MCP之后,AI变成了真正的助手:它不光能给建议,还能直接帮你干活。查数据库、调API、读文件,这些事它都能自己搞定。

传统方式 vs MCP方式

举个实际例子,你想知道上个月销售额最高的产品:

传统方式(没有MCP):

  1. 你:让AI写一条查询SQL
  2. AI:给你一段SQL代码
  3. 你:复制SQL,切到数据库客户端
  4. 你:粘贴SQL,执行
  5. 你:复制查询结果
  6. 你:切回Cursor,把结果贴给AI
  7. AI:基于结果继续分析

整个流程要在三个窗口之间反复切换。麻烦。

MCP方式

  1. 你:直接问AI”上个月哪个产品销售额最高?”
  2. AI:自动查询数据库,直接告诉你答案

一步到位。效率差了至少5倍。

核心概念(3分钟搞懂)

MCP的架构其实很简单,就三个角色:

MCP Client(使用工具的AI大脑)
就是你用的AI工具,比如Cursor、Claude Desktop。它负责理解你的需求,决定要不要用工具。

MCP Server(提供工具的服务员)
这是你配置的服务,专门给AI提供某个能力。比如数据库MCP Server让AI能查数据库,API MCP Server让AI能调接口。

Tools(具体的能力)
每个MCP Server暴露的具体功能。比如数据库Server可能有”查询表结构”、“执行SELECT查询”、“统计行数”这些工具。

类比一下:AI是个工人(Client),MCP Server是工具箱,里面有扳手、锤子(Tools)。你说要钉钉子,AI就知道从工具箱里拿锤子出来用。

懂了这三个概念,后面的配置你就能理解在干什么了。

实战案例1 - SQLite数据库集成

为什么从SQLite开始

SQLite最大的好处是简单:不用装数据库服务,不用配端口,一个文件就是一个数据库。最适合拿来练手。

等你熟悉了流程,换成PostgreSQL、MySQL也是一样的套路。

准备工作:创建测试数据库

先造点数据,这样才能测试查询效果。创建一个test.db文件:

-- 创建用户表
CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    email TEXT UNIQUE,
    created_at TEXT DEFAULT CURRENT_TIMESTAMP
);

-- 创建订单表
CREATE TABLE orders (
    id INTEGER PRIMARY KEY,
    user_id INTEGER,
    product_name TEXT,
    amount REAL,
    order_date TEXT DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

-- 插入测试用户
INSERT INTO users (name, email) VALUES
    ('张三', 'zhangsan@example.com'),
    ('李四', 'lisi@example.com'),
    ('王五', 'wangwu@example.com');

-- 插入测试订单
INSERT INTO orders (user_id, product_name, amount) VALUES
    (1, 'MacBook Pro', 12999.00),
    (1, 'AirPods', 1299.00),
    (2, 'iPhone 15', 5999.00),
    (3, 'iPad Air', 4799.00),
    (3, 'Apple Watch', 2999.00);

你可以用任何SQLite工具(DB Browser、命令行等)执行这些SQL,或者直接用Python:

import sqlite3

conn = sqlite3.connect('test.db')
cursor = conn.cursor()

# 执行上面的SQL语句
# ...

conn.commit()
conn.close()

配置MCP Server(重点来了)

这是整个教程最核心的部分。MCP的配置文件在两个位置,取决于你的需求:

全局配置(所有项目都能用):

  • Windows: C:\Users\你的用户名\.cursor\mcp.json
  • Mac/Linux: ~/.cursor/mcp.json

项目级配置(只在当前项目生效):

  • 项目根目录下的 .cursor/mcp.json

我建议先用项目级配置练手,确认能跑通了再搬到全局。

创建 .cursor/mcp.json 文件,写入以下内容:

{
  "mcpServers": {
    "sqlite": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sqlite",
        "--db-path",
        "D:/path/to/your/test.db"
      ]
    }
  }
}

关键点解释(很多人卡在这):

  1. mcpServers: 这是固定的字段名,别改
  2. "sqlite": 这是你给这个Server起的名字,随便取,AI会看到这个名字
  3. command: "npx": 用npx直接运行MCP Server,不用手动安装
  4. args: 传给命令的参数
    • -y: 自动确认安装
    • @modelcontextprotocol/server-sqlite: 这是官方的SQLite MCP Server包
    • --db-path: 数据库文件路径(必须是绝对路径!

Windows用户注意:路径要用正斜杠/或双反斜杠\\,不能用单反斜杠:

  • D:/projects/test.db
  • D:\\\\projects\\\\test.db
  • D:\projects\test.db (这会报错)

重启Cursor,验证配置

配置文件保存后,必须完全重启Cursor,不是关闭窗口,是退出应用。

重启后,可以在Cursor的设置里检查MCP是否生效:

  1. 打开设置(Ctrl+,)
  2. 搜索 “MCP”
  3. 应该能看到你配置的SQLite Server

或者更直接的方法:直接问AI一个数据库相关的问题,看它会不会调用MCP。

实战演示

配置成功后,你就可以这样玩了:

查询1:查看有哪些表

你:数据库里有哪些表?
AI:[调用MCP查询] 有两个表:users和orders

查询2:统计用户数

你:帮我查一下总共有多少用户
AI:[执行 SELECT COUNT(*) FROM users] 一共有3个用户

查询3:查某个用户的订单

你:张三买了什么?
AI:[执行联表查询] 张三购买了:
- MacBook Pro(12999元)
- AirPods(1299元)
总计:14298元

查询4:聚合分析

你:哪个用户消费最多?
AI:[执行 GROUP BY 查询] 张三消费最多,总计14298元

看到没?你完全不用写SQL,AI自动帮你搞定。这就是MCP的威力。

常见问题排查

问题1:MCP Server没启动
症状:AI回答问题,但不调用数据库
解决:

  • 检查配置文件语法(JSON格式要正确,不能有多余逗号)
  • 确认完全重启了Cursor
  • 看Cursor的输出日志,搜索”MCP”相关错误

问题2:找不到数据库文件
症状:报错 “cannot open database file”
解决:

  • 确认路径是绝对路径,不是相对路径
  • Windows用户检查斜杠方向
  • 确认文件确实存在(lsdir 命令检查)

问题3:权限错误
症状:Permission denied
解决:

  • 检查数据库文件的读写权限
  • Windows用户:右键文件 → 属性 → 安全,确认当前用户有读权限

调试技巧:在VS Code(Cursor)里打开”输出”面板(View → Output),选择”MCP”频道,能看到详细的错误日志。

实战案例2 - PostgreSQL数据库集成

进阶场景:生产环境数据库

SQLite适合学习和小项目,但真实工作中,你可能用的是PostgreSQL、MySQL这类生产级数据库。好消息是,配置套路是一样的,只是参数不同。

我这里以PostgreSQL为例,MySQL也是类似的。

配置差异:连接信息和环境变量

PostgreSQL是C/S架构,需要提供连接信息。但是千万别把密码直接写在配置文件里,这是最常见的安全错误。

正确做法是用环境变量。

先在项目根目录创建 .env 文件(记得加到.gitignore):

POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DATABASE=myapp
POSTGRES_USER=readonly_user
POSTGRES_PASSWORD=your_secure_password

然后配置 .cursor/mcp.json

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "--stdio"
      ],
      "env": {
        "POSTGRES_HOST": "${POSTGRES_HOST}",
        "POSTGRES_PORT": "${POSTGRES_PORT}",
        "POSTGRES_DATABASE": "${POSTGRES_DATABASE}",
        "POSTGRES_USER": "${POSTGRES_USER}",
        "POSTGRES_PASSWORD": "${POSTGRES_PASSWORD}"
      }
    }
  }
}

关键点

  • --stdio: 表示通过标准输入输出通信(本地方式)
  • env: 环境变量配置,Cursor会自动读取项目的.env文件

安全最佳实践(非常重要)

给AI数据库权限,安全是第一位的。我踩过的坑,你别再踩:

1. 使用只读账号

别给AI写权限!万一AI理解错了你的意思,执行了DELETEUPDATE,你就哭吧。

创建只读用户:

-- 创建只读用户
CREATE USER readonly_user WITH PASSWORD 'secure_password';

-- 只给SELECT权限
GRANT CONNECT ON DATABASE myapp TO readonly_user;
GRANT USAGE ON SCHEMA public TO readonly_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_user;

-- 确保将来新建的表也只有SELECT权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO readonly_user;

2. 限制访问范围

如果数据库里有敏感表(比如用户密码、支付信息),别让AI碰到:

-- 撤销敏感表的访问权限
REVOKE SELECT ON TABLE user_passwords FROM readonly_user;
REVOKE SELECT ON TABLE payment_info FROM readonly_user;

3. 生产环境用读副本

如果你真要在生产环境用MCP(我建议先别这么干),至少要连到读副本(Read Replica),不要连主库。万一AI的查询太复杂,把数据库拖垮了,至少不影响线上服务。

实战演示

配置好后,你可以做一些SQLite做不了的事:

复杂查询:多表JOIN

你:统计每个部门的平均工资
AI:[执行复杂查询]
SELECT d.name, AVG(e.salary) as avg_salary
FROM departments d
JOIN employees e ON d.id = e.department_id
GROUP BY d.name
ORDER BY avg_salary DESC;

结果:
- 技术部:平均15000元
- 产品部:平均12000元
- 运营部:平均10000元

性能分析:查看执行计划

你:帮我看看这个查询为什么这么慢
AI:[执行EXPLAIN] 发现没有用到索引,建议在user_id字段加索引

数据分析:生成报表

你:过去7天每天的新增用户数
AI:[执行时间窗口查询]
2024-01-10: 45人
2024-01-11: 52人
...

常见问题

问题1:连接超时
症状:timeout connecting to database
解决:

  • 检查数据库是否启动(pg_isready命令)
  • 检查防火墙是否允许连接
  • 确认host和port配置正确

问题2:认证失败
症状:authentication failed
解决:

  • 检查用户名密码是否正确
  • 确认PostgreSQL的pg_hba.conf允许该用户连接
  • 试试用psql命令行工具手动连接,确认凭据没问题

问题3:权限不足
症状:permission denied for table xxx
解决:

  • 这可能是好事,说明只读权限生效了
  • 如果确实需要查这个表,用管理员账号执行上面的GRANT命令

实战案例3 - API调用集成

应用场景:让AI调用外部服务

数据库解决的是内部数据查询,但有时候你需要的数据在外部API。比如:

  • 查GitHub仓库的star数、issue列表
  • 调用公司内部的微服务API
  • 获取天气、汇率等实时数据

有了MCP,AI也能帮你调这些接口。

配置HTTP类型的MCP Server

API调用和数据库不太一样,不需要安装MCP Server包,直接配置HTTP类型就行。

以GitHub API为例,配置 .cursor/mcp.json

{
  "mcpServers": {
    "github-api": {
      "url": "https://api.github.com",
      "headers": {
        "Accept": "application/vnd.github.v3+json",
        "User-Agent": "Cursor-MCP-Client"
      }
    }
  }
}

如果API需要认证(比如GitHub的私有仓库),加上token:

{
  "mcpServers": {
    "github-api": {
      "url": "https://api.github.com",
      "headers": {
        "Accept": "application/vnd.github.v3+json",
        "Authorization": "Bearer ${GITHUB_TOKEN}",
        "User-Agent": "Cursor-MCP-Client"
      }
    }
  }
}

同样的,把token放在.env文件里:

GITHUB_TOKEN=ghp_your_personal_access_token_here

获取GitHub Token的方法

  1. 打开GitHub → Settings → Developer settings
  2. Personal access tokens → Tokens (classic)
  3. Generate new token → 勾选需要的权限(repo、user等)
  4. 复制token(只显示一次,记得保存)

实战演示

配置好后,你可以直接让AI帮你调API:

查询仓库信息

你:帮我查一下 facebook/react 这个仓库的star数
AI:[调用 GET /repos/facebook/react]
React仓库目前有 218,345 个star,79,234 个fork

获取最新Issue

你:看看 facebook/react 最近有什么issue
AI:[调用 GET /repos/facebook/react/issues?state=open&per_page=5]
最近5个issue:
1. [Bug] useEffect在严格模式下执行两次
2. [Feature] 支持Suspense的新API
3. [Question] 如何优化大列表渲染
...

分析提交频率

你:过去一周 facebook/react 有多少次提交?
AI:[调用 GET /repos/facebook/react/commits?since=...]
过去7天有 43 次提交,主要贡献者是...

配置自定义API

公司内部API也可以这么配。假设你有个内部用户服务:

{
  "mcpServers": {
    "user-service": {
      "url": "https://api.yourcompany.com/user-service",
      "headers": {
        "Authorization": "Bearer ${INTERNAL_API_KEY}",
        "Content-Type": "application/json"
      }
    }
  }
}

然后你就能问AI:

你:查一下用户ID 12345 的订单历史
AI:[调用内部API] 用户12345在过去30天内下了8单,总消费3200元

注意事项

API限流
很多API有调用频率限制。GitHub免费版每小时只能调60次。如果AI疯狂调用,很容易触发限流。

解决办法:

  • 用认证token(GitHub认证后限额提升到5000次/小时)
  • 告诉AI”尽量少调用API,能复用结果就复用”

安全风险
给AI调API的权限,等于给了它操作外部服务的能力。务必:

  • 用只读token(不要给写权限)
  • 定期轮换token
  • 监控API调用日志

进阶技巧与最佳实践

多MCP Server并用

一个项目里,你可以同时配置多个MCP Server。AI会自动选择合适的工具。

比如我的配置:

{
  "mcpServers": {
    "sqlite": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-sqlite", "--db-path", "D:/projects/myapp/data.db"]
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "--stdio"],
      "env": {
        "POSTGRES_HOST": "${POSTGRES_HOST}",
        "POSTGRES_PORT": "${POSTGRES_PORT}",
        "POSTGRES_DATABASE": "${POSTGRES_DATABASE}",
        "POSTGRES_USER": "${POSTGRES_USER}",
        "POSTGRES_PASSWORD": "${POSTGRES_PASSWORD}"
      }
    },
    "github-api": {
      "url": "https://api.github.com",
      "headers": {
        "Authorization": "Bearer ${GITHUB_TOKEN}",
        "Accept": "application/vnd.github.v3+json"
      }
    }
  }
}

这样配置后,我可以问AI:

你:查一下本地SQLite数据库有多少用户,再去GitHub看看我们的仓库有多少star
AI:[自动选择sqlite MCP] 本地有245个用户
    [自动选择github-api MCP] 仓库有1.2k star

AI会根据问题内容,自己判断该用哪个工具。挺智能的。

项目级 vs 全局配置

两种配置方式,适用场景不同:

项目级配置.cursor/mcp.json):

  • 适合项目特定的数据库、API
  • 好处:不同项目互不干扰,配置可以提交到Git(记得排除敏感信息)
  • 坏处:每个项目都要配一遍

全局配置~/.cursor/mcp.json):

  • 适合通用工具(文件系统、通用API等)
  • 好处:配一次,所有项目都能用
  • 坏处:容易混乱,而且配置文件不在项目里,团队协作不方便

我的建议:

  • 数据库、项目专属API → 项目级配置
  • GitHub、天气这种通用API → 全局配置
  • 开发完成后,把项目级配置整理成文档,方便团队其他人复制

性能优化

MCP每次调用都要真实执行查询或API请求,如果频繁调用,会比较慢。几个优化技巧:

1. 引导AI缓存结果

你:帮我查一下用户列表(记住这个结果,后面会用到)
AI:[查询并记住] 有245个用户...

你:刚才那245个用户里,有多少是VIP?
AI:[不用重新查询,直接基于之前的结果分析]

2. 限制查询复杂度
别让AI写太复杂的查询。如果AI生成了一个10层嵌套的SQL,赶紧叫停,手动优化一下。

3. 使用数据库索引
AI查询再智能,也受数据库性能限制。该加索引的地方还是要加。

调试技巧

遇到问题,这几个方法能帮你快速定位:

1. 查看MCP日志
Cursor的”输出”面板(View → Output),选择”MCP”频道,能看到:

  • MCP Server启动日志
  • 每次工具调用的参数和返回值
  • 错误堆栈

2. 测试MCP配置
写完配置后,先用简单问题测试:

你:测试一下数据库连接,告诉我有哪些表

如果这个都不行,说明配置有问题。

3. 手动执行验证
AI说查询失败,你可以手动执行一遍,看看是AI生成的SQL有问题,还是权限、连接问题。

常见错误代码含义

  • ENOENT: 文件或路径不存在(检查路径)
  • ECONNREFUSED: 连接被拒绝(数据库没启动或端口不对)
  • EACCES: 权限不足(文件权限或数据库权限)
  • ERR_MODULE_NOT_FOUND: MCP Server包没安装(检查npx命令)
  • ETIMEDOUT: 超时(网络问题或查询太慢)

结论

说实话,配完MCP之后,我写代码的方式真的变了。

以前查个数据,要在三个窗口之间跳来跳去,思路经常被打断。现在直接在Cursor里问一句,AI秒回结果,思维能一直保持在代码逻辑上。

这篇文章写了3000多字,但核心就三件事:

  1. 理解概念:MCP就是给AI配工具,让它能干活而不只是出主意
  2. 跟着配置:SQLite练手,PostgreSQL用于生产,API扩展能力
  3. 注意安全:只读权限、环境变量、别碰生产主库

今天就花15分钟,配一个SQLite MCP试试。你会发现,效率提升不是10%、20%,而是完全不一样的工作方式。

最后说一句:MCP现在还挺新的,官方在不断迭代,社区也在快速贡献新的Server。我GitHub上收藏了一个MCP Server清单,有空可以去看看,说不定能找到适合你的工具。

有什么问题,评论区见。我会回复的。

MCP数据库配置完整流程

从零开始配置MCP Server,让Cursor能直接查询数据库的完整步骤

⏱️ 预计耗时: 15 分钟

  1. 1

    步骤1: 创建配置文件:选择项目级或全局配置

    配置文件位置选择:

    **项目级配置**(推荐新手):
    • 在项目根目录创建 .cursor/mcp.json
    • 优点:不同项目互不干扰,配置可版本控制
    • 适用:项目特定的数据库和API

    **全局配置**:
    • Windows: C:\Users\用户名\.cursor\mcp.json
    • Mac/Linux: ~/.cursor/mcp.json
    • 优点:所有项目通用,配一次到处用
    • 适用:GitHub、天气等通用API

    创建命令:
    • mkdir .cursor && touch .cursor/mcp.json(Mac/Linux)
    • md .cursor && type nul > .cursor\mcp.json(Windows)
  2. 2

    步骤2: SQLite配置:最简单的入门方式

    SQLite配置步骤:

    1. 准备数据库文件(test.db)
    2. 编辑 .cursor/mcp.json:

    ```json
    {
    "mcpServers": {
    "sqlite": {
    "command": "npx",
    "args": [
    "-y",
    "@modelcontextprotocol/server-sqlite",
    "--db-path",
    "/absolute/path/to/test.db"
    ]
    }
    }
    }
    ```

    **关键注意事项**:
    • 路径必须是绝对路径,不能用相对路径
    • Windows用户:用正斜杠 / 或双反斜杠 \\
    • npx会自动下载MCP Server,首次运行稍慢
    • 重启Cursor后配置才生效(完全退出应用)
  3. 3

    步骤3: PostgreSQL配置:生产环境安全实践

    PostgreSQL配置步骤(安全版):

    1. 创建 .env 文件(记得加到 .gitignore):

    ```env
    POSTGRES_HOST=localhost
    POSTGRES_PORT=5432
    POSTGRES_DATABASE=myapp
    POSTGRES_USER=readonly_user
    POSTGRES_PASSWORD=your_password
    ```

    2. 创建只读用户(重要!):

    ```sql
    CREATE USER readonly_user WITH PASSWORD 'password';
    GRANT CONNECT ON DATABASE myapp TO readonly_user;
    GRANT USAGE ON SCHEMA public TO readonly_user;
    GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_user;
    ```

    3. 配置 .cursor/mcp.json:

    ```json
    {
    "mcpServers": {
    "postgres": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-postgres", "--stdio"],
    "env": {
    "POSTGRES_HOST": "${POSTGRES_HOST}",
    "POSTGRES_PORT": "${POSTGRES_PORT}",
    "POSTGRES_DATABASE": "${POSTGRES_DATABASE}",
    "POSTGRES_USER": "${POSTGRES_USER}",
    "POSTGRES_PASSWORD": "${POSTGRES_PASSWORD}"
    }
    }
    }
    }
    ```

    **安全要点**:
    • 永远不要给AI写权限(DELETE/UPDATE)
    • 生产环境连读副本,不要连主库
    • 撤销敏感表权限(用户密码、支付信息等)
  4. 4

    步骤4: 验证配置:测试MCP是否工作

    配置验证步骤:

    1. 完全重启Cursor(不是关窗口,是退出应用)
    2. 打开Cursor设置(Ctrl+, 或 Cmd+,)
    3. 搜索"MCP",检查是否显示你的配置

    **实际测试**:
    直接问AI简单问题:
    • "数据库里有哪些表?"
    • "帮我查一下总共有多少用户"

    **调试方法**:
    • 打开输出面板:View → Output
    • 选择"MCP"频道查看日志
    • 检查启动错误、连接失败等信息

    **常见错误**:
    • ENOENT:路径不存在,检查绝对路径是否正确
    • ECONNREFUSED:数据库未启动或端口错误
    • Permission denied:文件权限或数据库权限不足
    • JSON parse error:配置文件格式错误,检查逗号和引号

常见问题

为什么配置后AI还是不调用数据库?
最常见的3个原因:

1. **没有完全重启Cursor**:必须退出应用重新打开,不是关闭窗口
2. **配置文件语法错误**:检查JSON格式,特别是逗号和引号,用工具验证JSON是否正确
3. **路径问题**:必须使用绝对路径,相对路径不行

调试方法:打开输出面板(View → Output),选择"MCP"频道,查看启动日志和错误信息。如果看到"MCP Server started"说明启动成功,否则检查错误提示。
生产环境使用MCP安全吗?
生产环境使用MCP必须做好安全措施:

**必须做的**:
• 使用只读账号,禁止DELETE/UPDATE/DROP权限
• 连接读副本(Read Replica),不要连主库
• 用环境变量管理密码,不要硬编码
• 撤销敏感表的访问权限(用户密码、支付信息等)

**建议做的**:
• 定期审查MCP调用日志,监控异常查询
• 限制查询复杂度,避免拖垮数据库
• 先在开发环境验证,确认没问题再上生产

总之:只读权限 + 读副本 + 环境变量,是生产环境使用MCP的最低安全标准。
可以同时配置多个数据库吗?
可以,AI会自动选择合适的工具。配置示例:

```json
{
"mcpServers": {
"sqlite-local": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sqlite", "--db-path", "/path/to/local.db"]
},
"postgres-prod": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "--stdio"],
"env": { "POSTGRES_HOST": "prod-server", ... }
}
}
}
```

使用时,明确告诉AI用哪个数据库:
• "在本地SQLite查一下用户数"
• "在生产PostgreSQL查最新订单"

AI会根据你的描述,自动选择对应的MCP Server。
Windows路径配置为什么总是报错?
Windows路径问题是最常见的坑。正确写法:

**✅ 正确**:
• "D:/projects/test.db"(推荐,正斜杠)
• "D:\\\\projects\\\\test.db"(双反斜杠)

**❌ 错误**:
• "D:\projects\test.db"(单反斜杠,JSON解析错误)
• "./test.db"(相对路径,MCP找不到)
• "C:\Users\用户名\test.db"(中文路径可能有问题)

**调试技巧**:
1. 在CMD或PowerShell中确认文件存在:dir "D:\projects\test.db"
2. 复制绝对路径后,手动替换反斜杠为正斜杠
3. 用在线JSON验证工具检查配置文件格式
MCP会影响Cursor的性能吗?
MCP对性能的影响很小,但要注意几点:

**正常情况**:
• MCP Server只在需要时启动,不用时不占资源
• 查询延迟 = 数据库响应时间 + 网络延迟,通常 <1秒

**可能变慢的情况**:
• 首次调用:npx需要下载MCP Server包(只发生一次)
• 复杂查询:AI生成的SQL太复杂,拖慢数据库
• API限流:频繁调用外部API触发限流

**优化方法**:
• 引导AI缓存结果:"记住这个查询结果,后面会用"
• 限制查询范围:"只查最近100条记录"
• 给数据库加索引,减少查询时间

14 分钟阅读 · 发布于: 2026年1月17日 · 修改于: 2026年3月3日

评论

使用 GitHub 账号登录后即可评论

相关文章