数据库与 API 类 MCP 工具
High Contrast
Dark Mode
Light Mode
Sepia
Forest
3 min read676 words

数据库与 API 类 MCP 工具

数据库与 API 类 MCP Server 让 AI 能够直接查询数据库、调用第三方服务。本节覆盖最常用的几个官方和社区 Server,以及选型时的安全考量。

数据库 MCP Server 对比

Server 支持数据库 模式 安全性
server-sqlite SQLite 本地文件 ✅ 高(本地只读模式可选)
server-postgres PostgreSQL 远程连接 ⚠️ 中(依赖 DB 用户权限)
mcp-mysql(社区) MySQL/MariaDB 远程连接 ⚠️ 中
mcp-mongodb(社区) MongoDB 远程连接 ⚠️ 中

SQLite MCP Server(本地数据分析首选)

SQLite MCP 是最安全的数据库 Server 选项——数据文件在本地,无需网络连接,适合个人数据分析和快速原型。

安装与配置

npm install -g @modelcontextprotocol/server-sqlite
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sqlite",
"--db-path",
"/Users/yourname/data/analytics.db"
]
}
}
}

可用工具

工具名 权限 说明
read_query 只读 执行 SELECT 查询
write_query 读写 执行 INSERT/UPDATE/DELETE
create_table DDL 创建新表
list_tables 只读 列出所有表名
describe_table 只读 获取表结构(列名、类型)
append_insight 读写 向特殊 insight 表写入分析笔记

提示:如果只需要数据分析,在 --db-path 指向的数据库中创建一个只读 SQLite 用户,或通过文件系统权限设置只读(chmod 444)。

PostgreSQL MCP Server

用于连接已有的 PostgreSQL 数据库,适合查询业务数据。

npm install -g @modelcontextprotocol/server-postgres
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://readonly_user:password@localhost:5432/mydb"
]
}
}
}

强烈建议:为 MCP 专门创建一个只读数据库用户:

-- 创建只读用户
CREATE USER mcp_readonly WITH PASSWORD 'secure_password';
GRANT CONNECT ON DATABASE mydb TO mcp_readonly;
GRANT USAGE ON SCHEMA public TO mcp_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO mcp_readonly;
-- 未来新表也自动授权
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO mcp_readonly;

GitHub MCP Server(代码协作自动化)

npm install -g @modelcontextprotocol/server-github
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
}
}
}
}

GitHub MCP 主要工具

mindmap root(GitHub MCP) 仓库操作 search_repositories get_file_contents list_commits Issue 管理 create_issue list_issues update_issue PR 管理 create_pull_request list_pull_requests merge_pull_request 分支管理 create_branch list_branches

Token 权限建议:创建 Fine-grained Token,只授权需要操作的仓库和功能(Issues、PRs、Contents),避免 Full Access Token。

Slack MCP Server(团队通知自动化)

{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token",
"SLACK_TEAM_ID": "T0XXXXXXX"
}
}
}
}

主要工具:slack_post_message(发消息)、slack_list_channels(列频道)、slack_get_channel_history(读历史)。

典型架构:数据分析助手

graph LR subgraph "MCP Server 组合" A[SQLite MCP
本地业务数据] B[Filesystem MCP
读 CSV 报表] C[Slack MCP
发送分析结果] end U[用户] -->|分析本周销售并推送到 Slack| LLM LLM --> A LLM --> B LLM --> C

这个组合不需要写任何代码:AI 自动从文件读取原始数据、查询数据库获取历史对比、整理后推送到 Slack 频道。

API 密钥的安全存储

不要在 claude_desktop_config.json 中明文写入密钥。更安全的做法:

方案一:环境变量(推荐)

# ~/.zshrc 或 ~/.bashrc
export GITHUB_TOKEN="ghp_xxx"
export BRAVE_API_KEY="BSA-xxx"

在 config.json 中引用:

"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}

方案二:系统 Keychain(macOS)

security add-generic-password -s "mcp-github" -a "token" -w "ghp_xxx"

在 MCP Server 代码中读取:

import subprocess
token = subprocess.check_output(
["security", "find-generic-password", "-s", "mcp-github", "-w"]
).decode().strip()

本节执行清单


下一章:第 03 章 — 配置与连接第一批 MCP 工具