MCP 入门:把文件、GitHub 和数据库接给 AI
#MCP#AI Agent#工具调用#安全边界
2026年 5月 12日
MCP(Model Context Protocol)是一套让 AI 应用连接外部工具和数据源的开放协议。你可以把它理解成 AI 工具的标准化工具接口。
本文核对时间:2026-05-12。
MCP 解决什么问题
如果 AI 只是在当前项目里读写代码,普通 CLI 或 IDE 扩展已经够用。MCP 的价值在于:当 AI 需要访问项目外部的数据或工具时,给它一个结构化、可控、可复用的入口。
典型场景:
- 读取指定目录里的资料。
- 查询 GitHub issue / PR。
- 查询只读数据库。
- 调用内部系统 API。
- 复用同一个工具入口给 Claude Code、Codex、Cursor 等不同 Host。
三个角色
| 名称 | 作用 | 例子 |
|---|---|---|
| Host | 你正在使用的 AI 应用 | Claude Code、Codex、Cursor |
| Client | Host 内部负责连接 MCP Server 的部分 | 通常由 AI 应用内置 |
| Server | 暴露工具和数据的进程 | filesystem server、GitHub server、数据库 server |
日常配置时,主要关心的是给 Host 添加哪些 MCP Server。
MCP Server 提供什么
| 能力 | 含义 | 例子 |
|---|---|---|
| Tools | 可被模型调用的动作 | 创建 issue、查询数据库、读文件 |
| Resources | 可读取的上下文数据 | 文档、表结构、仓库文件 |
| Prompts | 可复用提示模板 | 代码审查模板、发布说明模板 |
普通用户最常用的是 Tools。
第一个 Server:只读练习目录
不要一开始就把整个用户目录暴露给 AI。先建一个练习目录:
cn-docs-writer/
SKILL.md大多数 MCP 配置形态类似:
cn-docs-writer/
SKILL.md
references/
page-checklist.md
scripts/
check_headings.py
assets/
template.md含义:
filesystem-demo是 server 名称。command是启动命令。args是命令参数。- 最后的路径是允许访问的目录。
Windows 路径示例:
cn-docs-writer/
SKILL.md
references/
page-checklist.md在 Claude Code 中添加
---
name: cn-docs-writer
description: Use when writing or editing Chinese tutorial documentation, especially Markdown or VitePress pages that need clear structure, beginner-friendly wording, navigation updates, and build verification.
---
# 中文教程写作
## 工作流
1. 先确认本次页面解决的一个主要问题。
2. 用简体中文写作,先给结论,再给步骤。
3. 命令、配置、排错分开写,不把大段命令混在正文里。
4. 示例 key 统一使用 `sk-your-api-key`,不要写真实密钥。
5. 新增页面后检查导航、侧边栏、README、来源页是否需要同步。
6. 完成前运行项目规定的构建命令。
## 页面结构
- 顶部用一句话说明页面用途。
- 加一个“本页速读”块,包含解决什么、适合谁、预计耗时。
- 每页只解决一个主要问题。
- 涉及外部产品、模型、价格、API 协议时,优先核对官方文档。
## 何时读取参考资料
如果要新增页面或大改结构,读取 `references/page-checklist.md`。然后启动:
# 页面检查清单
- 标题是否能说明读者会解决什么问题
- 是否有“本页速读”
- 是否把命令、配置、排错分开
- 是否避免真实 API key、token、cookie
- 是否同步导航或索引
- 是否运行构建验证提问:
focused-code-review/
SKILL.md在 Codex 中添加
---
name: focused-code-review
description: Use when reviewing code changes for bugs, regressions, missing tests, security risks, data loss risks, or maintainability issues. Prioritize actionable findings with file and line references.
---
# Focused Code Review
## Review order
1. Read the user request and changed files before judging the diff.
2. Prioritize correctness, security, data loss, migrations, and missing tests.
3. Findings come first. Summaries are secondary.
4. Each finding should include file path, line reference, severity, and why it matters.
5. If no issues are found, say so clearly and mention residual test risk.
## Output format
- Start with findings ordered by severity.
- Use concise bullets.
- Add open questions only when they affect correctness.
- End with a short verification note if tests were run or could not be run.
## Do not
- Do not rewrite unrelated code.
- Do not spend review space on style-only suggestions unless they hide a real bug.
- Do not expose secrets from `.env`, logs, or private config files.启动:
link-checker/
SKILL.md
scripts/
check_links.py提问:
---
name: link-checker
description: Use when checking Markdown documentation links before publishing.
---
# Link Checker
## Workflow
1. Inspect changed Markdown files.
2. Run `python scripts/check_links.py <file>` for edited pages.
3. Report broken local links first, then external links that need manual checking.
4. Do not modify generated site output.范例一:本地资料夹助手
适合:
- 总结一组 Markdown 笔记。
- 根据本地规范回答问题。
- 检查新文档是否漏了章节。
准备目录:
__SHIKI_CODE_9__添加:
__SHIKI_CODE_10__提问:
__SHIKI_CODE_11__这个例子风险低,因为暴露给 AI 的目录很小。
范例二:Issue / PR 摘要助手
适合:
- 整理最近打开的 issue。
- 根据 PR diff 生成审查要点。
- 把发布前未完成事项列成清单。
配置形态通常类似:
__SHIKI_CODE_12__建议:
- 先用只读 token。
- token 不要写进仓库文件。
- 第一次只让 AI 列表、总结、分类,不让它直接改远程状态。
可用任务:
__SHIKI_CODE_13__范例三:只读数据库问答
适合:
- 查询产品指标。
- 检查某个用户状态。
- 根据运营数据生成周报草稿。
数据库类 MCP 一定先用只读账号。配置形态类似:
__SHIKI_CODE_14__更稳妥的做法:
- 给 MCP 单独建只读数据库账号。
- 限制能访问的 schema、表和视图。
- 让 server 内部做 SQL 白名单或超时限制。
- 禁止把生产写权限、管理员账号、全库导出能力交给 AI。
提问示例:
__SHIKI_CODE_15__什么时候不要用 MCP
如果只是重复一套写作步骤、代码审查格式或发布检查清单,不需要接外部系统,优先写 Skill。MCP 适合“访问哪里”,Skill 适合“怎么做”。
安全原则
每加一个 MCP Server,模型就多一组可调用能力。
建议:
- 只添加当前任务需要的 server。
- 给 filesystem 限定目录。
- 给 database 使用只读账号。
- 不把真实 API key 写进共享配置。
- 定期清理不再使用的 server。
参考来源
- MCP 官方网站:https://modelcontextprotocol.io/
- MCP 文档:https://modelcontextprotocol.io/docs
- MCP Quickstart:https://modelcontextprotocol.io/docs/getting-started/intro
- MCP Examples:https://modelcontextprotocol.io/examples
- Claude Code MCP 文档:https://code.claude.com/docs/en/mcp