典型应用场景分析
场景 1:数据库操作
postgres-mcp-server 架构分析
postgres-mcp-server 是官方维护的 PostgreSQL 数据库 MCP Server,提供了完整的数据库操作能力[1]。
核心功能:
| 功能 | 说明 | 原语类型 |
|---|---|---|
query |
执行 SQL 查询 | Tool |
schema |
获取数据库结构 | Resource |
tables |
列出所有表 | Resource |
explain |
分析查询计划 | Tool |
架构设计:
查询、插入、更新、删除的实现
查询(SELECT):
工具:query
输入参数:
{
"sql": "SELECT * FROM users WHERE age > $1",
"params": [18]
}
执行流程:
1. 参数化查询,防止 SQL 注入
2. 执行查询
3. 返回结果
输出:
{
"columns": ["id", "name", "age"],
"rows": [
[1, "Alice", 25],
[2, "Bob", 30]
]
}
插入(INSERT):
工具:insert
输入参数:
{
"table": "users",
"data": {
"name": "Charlie",
"age": 35
}
}
执行流程:
1. 验证表名和数据
2. 构建参数化 INSERT 语句
3. 执行插入
4. 返回插入的行 ID
输出:
{
"insertedId": 3,
"rowsAffected": 1
}
更新(UPDATE):
工具:update
输入参数:
{
"table": "users",
"where": "id = $1",
"whereParams": [1],
"data": {
"age": 26
}
}
执行流程:
1. 验证表名和数据
2. 构建参数化 UPDATE 语句
3. 执行更新
4. 返回影响的行数
输出:
{
"rowsAffected": 1
}
删除(DELETE):
工具:delete
输入参数:
{
"table": "users",
"where": "id = $1",
"whereParams": [3]
}
执行流程:
1. 验证表名
2. 构建参数化 DELETE 语句
3. 执行删除
4. 返回影响的行数
输出:
{
"rowsAffected": 1
}
安全的 SQL 构建
SQL 注入防护是数据库操作的核心安全问题。
防护措施:
1. 参数化查询
// ✅ 正确:参数化查询
const result = await db.query(
'SELECT * FROM users WHERE name = $1',
[userName]
);
// ❌ 错误:字符串拼接(易受 SQL 注入攻击)
const result = await db.query(
`SELECT * FROM users WHERE name = '${userName}'`
);
2. 输入验证
AI 编程知识库会员专享内容
开通后解锁「典型应用场景分析」全文,AI 编程知识库全年访问
扫码添加企业微信,找大熊掌门开通会员

添加后说明想开通的会员类型即可