普通视图

发现新文章,点击刷新页面。
今天 — 2026年3月7日首页

MCP 从入门到实战完整教程(Windows 版)

作者 烛阴
2026年3月7日 18:02

MCP(Model Context Protocol,模型上下文协议)是 Anthropic 推出的开放标准协议,为 AI 应用提供了统一的方式来连接外部数据源和工具。你可以把 MCP 理解为 AI 世界的"USB-C 接口"——一个协议,即可让 AI 模型访问文件系统、数据库、搜索引擎等各类外部资源。本教程将带你在 Windows 系统上从概念到实战,全面掌握 MCP。


一、MCP 核心概念

架构总览

MCP 采用客户端-服务端架构,包含三个核心角色:

  • Host(宿主):发起连接的 AI 应用,例如 Claude Desktop、Claude CLI、Cursor 等
  • Client(客户端):Host 内部的 MCP 客户端,负责与 Server 建立一对一连接
  • Server(服务端):轻量级程序,通过 MCP 协议向 Client 暴露特定能力
┌─────────────────────────────────────────┐
│  Host(Claude Desktop / CLI)            │
│                                         │
│  ┌──────────┐  ┌──────────┐            │
│  │ Client A │  │ Client B │  ...       │
│  └────┬─────┘  └────┬─────┘            │
└───────┼──────────────┼──────────────────┘
        │              │
   ┌────▼─────┐  ┌────▼─────┐
   │ Server A │  │ Server B │
   │(filesystem)│ │(search)  │
   └──────────┘  └──────────┘

通信方式

MCP 支持两种传输方式:

传输方式 说明 适用场景
stdio 通过标准输入/输出通信 本地 Server,最常用
SSE 通过 HTTP Server-Sent Events 通信 远程 Server,需网络访问

三大原语

MCP Server 可以向 Host 暴露三种能力:

  • Tools(工具):模型可以调用的函数,例如"搜索网页"、"读取文件"、"执行 SQL"
  • Resources(资源):模型可以读取的数据,类似 REST API 的 GET 端点
  • Prompts(提示模板):预定义的交互模板,帮助用户快速完成特定任务

其中 Tools 是目前最常用的原语,大多数 MCP Server 都以 Tool 的形式提供能力。


02-content-pain-point.png

二、环境准备

基础环境

确保你的 Windows 系统已安装以下工具:

  • Node.js 18+npm:用于运行基于 Node.js 的 MCP Server
  • Python 3.10+uv(可选):用于运行基于 Python 的 MCP Server
  • Claude DesktopClaude CLI:作为 MCP 的 Host

安装 Node.js

如果尚未安装,前往 nodejs.org 下载最新 LTS 版本。验证安装:

node --version
npm --version

安装 Python 和 uv(可选)

部分 MCP Server 使用 Python 编写,需要通过 uvx 运行:

# 安装 uv(Python 包管理工具)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

安装完成后重新打开 PowerShell 验证:

uv --version
uvx --version

安装 Claude CLI

如果尚未安装 Claude CLI:

npm install -g @anthropic-ai/claude-code

04-content-setup-steps.png

三、在 Claude CLI 中配置 MCP

Claude CLI 提供了命令行和配置文件两种方式来管理 MCP Server。

方式一:使用 claude mcp add 命令

# 添加 filesystem server
claude mcp add filesystem -s user -- npx -y @modelcontextprotocol/server-filesystem C:\Users\你的用户名\Documents

参数说明:

参数 说明
filesystem Server 名称(自定义,用于标识)
-s user 作用域:user(全局)或 project(当前项目)
-- 分隔符,之后的内容为 Server 启动命令

常用管理命令

# 查看已配置的 MCP Server
claude mcp list

# 查看某个 Server 的详细信息
claude mcp get filesystem

# 移除某个 Server
claude mcp remove filesystem

方式二:手动编辑配置文件

Claude CLI 的 MCP 配置存储在 settings.json 中:

  • 全局配置C:\Users\你的用户名\.claude\settings.json
  • 项目配置项目根目录\.claude\settings.json

手动添加 MCP Server 示例:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "C:\\Users\\你的用户名\\Documents"
      ]
    }
  }
}

在 CLI 中验证

启动 Claude CLI 后,使用 /mcp 命令查看当前连接的 MCP Server 状态:

/mcp

输出中可以看到每个 Server 的名称、状态和提供的工具数量。


05-content-server-list.png


四、实战演示

场景一:用 Filesystem MCP 管理项目文件

配置好 Filesystem Server 后,你可以直接让 Claude 操作项目文件:

> 读取 C:\Users\我\projects\myapp\package.json,列出所有依赖的版本

> 在 C:\Users\我\Documents\notes 目录下创建一个 todo.md,内容是本周的工作计划

> 找出 src 目录下所有包含 "TODO" 注释的文件

场景二:用 Brave Search MCP 联网搜索

配置好 Brave Search Server 后,Claude 具备了实时联网能力:

> 搜索 2026 年最新的 React 状态管理方案对比

> 搜索 Windows 11 最新的 PowerShell 更新内容

场景三:用 GitHub MCP 管理仓库

配置好 GitHub Server 后,可以直接通过对话管理仓库:

> 列出我的 GitHub 仓库中所有 open 状态的 issue

> 为 myapp 仓库创建一个新的 issue,标题是"优化首页加载速度"

> 查看 myapp 仓库最近的 5 个 pull request

场景四:多个 MCP Server 协同工作

MCP 的强大之处在于多个 Server 可以协同工作:

> 搜索最新的 Tailwind CSS v4 变更内容,然后帮我更新项目中的 tailwind.config.ts 文件

这条指令中,Claude 会先调用 Brave Search 搜索信息,再调用 Filesystem 读取并修改文件。


五、开发自定义 MCP Server(入门)

如果现有的 MCP Server 不能满足需求,你可以用 TypeScript SDK 快速开发自己的 Server。

初始化项目

mkdir my-mcp-server
cd my-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk zod
npm install -D typescript @types/node
npx tsc --init

编写 Server 代码

创建 src/index.ts

import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { z } from 'zod';

// 创建 MCP Server 实例
const server = new McpServer({
    name: 'my-weather-server',
    version: '1.0.0',
});

// 注册一个 Tool:查询天气
server.tool(
    'get-weather',
    '获取指定城市的天气信息',
    {
        city: z.string().trim().min(1, '城市名称不能为空').describe('城市名称,例如:北京'),
    },
    async ({ city }) => {
        // 使用心知天气 API 获取实时天气
        const SENIVERSE_API_KEY = 'YOUR_API_KEY_HERE';

        const weatherResp = await fetch(
            `https://api.seniverse.com/v3/weather/now.json?key=${encodeURIComponent(SENIVERSE_API_KEY)}&location=${encodeURIComponent(city)}&language=zh-Hans&unit=c`,
        );
        if (!weatherResp.ok) {
            throw new Error(`心知天气查询失败: HTTP ${weatherResp.status}`);
        }

        const weatherJson = (await weatherResp.json()) as {
            results?: Array<{
                location?: { name?: string };
                now?: { text?: string; temperature?: string; humidity?: string };
            }>;
        };

        const result = weatherJson.results?.[0];
        const now = result?.now;
        if (!result || !now) {
            throw new Error(`未找到城市或天气数据: ${city}`);
        }

        const weatherData = {
            city: result.location?.name ?? city,
            temperature: now.temperature !== undefined ? `${now.temperature}°C` : 'N/A',
            condition: now.text ?? 'N/A',
            humidity: now.humidity !== undefined ? `${now.humidity}%` : 'N/A',
        };

        return {
            content: [
                {
                    type: 'text' as const,
                    text: JSON.stringify(weatherData, null, 2),
                },
            ],
        };
    },
);

// 启动 Server(使用 stdio 传输)
async function main(): Promise<void> {
    const transport = new StdioServerTransport();
    await server.connect(transport);
    console.error('Weather MCP Server is running');
}

main().catch(console.error);

编译与测试

修改 tsconfig.json,确保以下配置:

{
  "compilerOptions": {
    "target": "ES2022",
    "module": "Node16",
    "moduleResolution": "Node16",
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true
  },
  "include": ["src/**/*"]
}

编译项目:

npx tsc

接入 Claude CLI

claude mcp add my-weather -s user -- node C:\Users\你的用户名\my-mcp-server\dist\index.js

重启 Claude Desktop 或 Claude CLI 后,就可以使用了:

> 查询北京的天气

Claude 会调用你的 get-weather 工具并返回结果。


六、常见问题与排错

Q: Server 启动报错 npx 不是内部或外部命令

Node.js 未正确安装或 PATH 未配置。在 PowerShell 中验证:

where.exe npx
# 应输出 npx 的完整路径

如果无输出,重新安装 Node.js 并确保勾选"Add to PATH"选项。

Q: Server 启动报错 uvx 不是内部或外部命令

需要安装 uv 工具。参考"环境准备"章节中的安装步骤。

Q: 配置了 env 中的 API Key 但仍然报认证失败?

  1. 检查 Key 是否正确,有无多余空格
  2. 确保 Key 没有过期
  3. 修改配置后必须重启 Claude CLI

Q: Claude CLI 中 /mcp 显示 Server 状态为 disconnected?

尝试以下步骤:

# 查看 Server 详细信息
claude mcp get <server-name>

# 移除并重新添加
claude mcp remove <server-name>
claude mcp add <server-name> -s user -- <command> <args>

七、总结与资源链接

MCP 为 AI 应用提供了标准化的外部集成方式,让 Claude 从一个"只能对话"的模型变成了能够操作文件、搜索网络、管理代码仓库的全能助手。通过本教程,你已经掌握了:

  • MCP 的核心架构和概念
  • 在 Claude Desktop 和 Claude CLI 中配置 MCP Server 的方法
  • 常用 MCP Server 的配置与使用
  • 开发自定义 MCP Server 的基础流程

推荐资源:

如果你喜欢本教程,记得点赞+收藏!关注我获取更多Cluade相关技巧

昨天以前首页

Claude CLI 从安装到使用完整教程(Windows 版)

作者 烛阴
2026年3月3日 20:13

Claude Code 是 Anthropic 官方推出的命令行 AI 编程助手,可以直接在终端中与 Claude 对话,帮助你完成代码编写、调试、重构等任务。本教程带你在 Windows 系统上从零开始,快速上手 Claude CLI。


一、环境准备

在安装 Claude CLI 之前,需要确保你的系统满足以下条件:

  • Node.js:版本 18 及以上
  • npm:包管理工具(随 Node.js 一同安装)
  • 操作系统:Windows 10 / Windows 11
  • 终端:推荐使用 PowerShell 5.1+Windows Terminal
  • 网络:能正常访问 Anthropic API,如果有自备的公益API也行,例如anyrouter

安装 Node.js

前往 nodejs.org 下载最新 LTS 版本的 Windows 安装包(.msi),按向导完成安装,安装时勾选"自动安装必要工具"选项。

安装完成后,打开 PowerShell 验证版本:

node --version
# 输出示例:v24.14.0

npm --version
# 输出示例:11.9.0

01-flowchart-install-flow.png

二、安装 Claude CLI

打开 PowerShell(以管理员身份运行),执行全局安装命令:

npm install -g @anthropic-ai/claude-code

提示:如果安装时报权限错误,请右键点击 PowerShell 选择"以管理员身份运行"后重试。

安装完成后,验证安装是否成功:

claude --version

更新到最新版本

npm update -g @anthropic-ai/claude-code

解决 PATH 问题

如果提示 claude 不是可识别的命令,需要将 npm 全局包路径加入系统 PATH:

# 查看 npm 全局包安装路径
npm config get prefix

将输出的路径(如 C:\Users\你的用户名\AppData\Roaming\npm)添加到系统环境变量 PATH 中:

  1. 右键"此电脑" → "属性" → "高级系统设置" → "环境变量"
  2. 在"用户变量"中找到 Path,点击"编辑"
  3. 点击"新建",粘贴上述路径
  4. 确定保存后,重新打开 PowerShell 使其生效

三、配置 API Key

Claude CLI 需要 Anthropic API Key 才能正常工作。

获取 API Key

  1. 访问 console.anthropic.com
  2. 注册或登录账号
  3. 进入 API Keys 页面
  4. 点击 Create Key 生成新的 API Key

设置环境变量(PowerShell)

临时设置(仅当前会话有效):

$env:ANTHROPIC_API_KEY = "sk-ant-xxxxxxxxxxxxxxxx"

永久设置(推荐):

方法一:通过 PowerShell 命令写入用户环境变量:

[System.Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-ant-xxxxxxxxxxxxxxxx", "User")

方法二:通过系统界面设置:

  1. 右键"此电脑" → "属性" → "高级系统设置" → "环境变量"
  2. 在"用户变量"区域点击"新建"
  3. 变量名填写 ANTHROPIC_API_KEY,变量值填写你的 API Key
  4. 确定保存,重新打开 PowerShell 使其生效

验证环境变量已生效:

echo $env:ANTHROPIC_API_KEY

四、基础使用

启动交互模式

在项目目录下打开 PowerShell,运行 claude,进入交互式对话:

cd C:\Users\你的用户名\projects\your-project
claude

进入后,你会看到提示符,可以直接输入问题或指令。

单次查询模式

使用 -p 参数执行一次性查询:

claude -p "解释这个项目的目录结构"

处理文件

让 Claude 分析或修改特定文件:

claude -p "审查 src/index.js 中的代码,找出潜在的 bug"

五、核心功能演示

代码生成

> 用 Python 写一个读取 CSV 文件并计算每列平均值的脚本

代码解释

> 解释 @src/utils/parser.ts 这个文件的作用

代码重构

> 重构 @components/Button.jsx,将 class 组件改为函数组件,并添加 TypeScript 类型

调试协助

> 我的应用报错:TypeError: Cannot read property 'map' of undefined,帮我分析原因

生成测试

02-infographic-features-overview.png

> 为 @src/api/user.js 中的所有函数生成单元测试

六、常用命令与快捷键

操作 命令 / 快捷键
启动 Claude claude
单次查询 claude -p "问题"
查看帮助 claude --help
清空对话 /clear
退出 /exitCtrl+C
查看历史 /history

常用 Slash 命令

  • /help — 查看所有可用命令
  • /clear — 清除当前对话上下文
  • /compact — 压缩对话历史以节省 Token
  • /model — 切换使用的模型
  • /cost — 查看本次会话的 Token 消耗

七、项目上下文管理

CLAUDE.md 文件

在项目根目录创建 CLAUDE.md 文件,Claude 会自动读取其中的内容作为项目背景:

# 项目说明

这是一个 React + TypeScript 的电商平台前端项目。

## 技术栈
- React 18
- TypeScript 5
- Tailwind CSS
- Zustand 状态管理

## 编码规范
- 使用函数组件和 Hooks
- 组件文件使用 PascalCase 命名
- 工具函数使用 camelCase 命名

在 PowerShell 中快速创建该文件:

New-Item -Path "CLAUDE.md" -ItemType File
notepad CLAUDE.md

引用文件

在对话中使用 @文件路径 引用具体文件:

> 参考 @src/components/Card.tsx 的风格,创建一个新的 Modal 组件

八、高级配置

配置文件

Claude CLI 支持通过配置文件自定义行为,配置文件位于:

  • 全局C:\Users\你的用户名\.claude\settings.json
  • 项目.claude\settings.json

在 PowerShell 中查看全局配置目录:

explorer "$env:USERPROFILE\.claude"

示例配置:

{
  "model": "claude-opus-4-6",
  "theme": "dark",
  "autoApprove": false
}

权限模式

Claude CLI 有三种权限模式:

  • 默认模式:每次文件修改都需要用户确认
  • 自动批准--dangerously-skip-permissions 自动执行所有操作(谨慎使用)
  • 只读模式:仅读取文件,不做修改

九、最佳实践

  1. 使用 Windows Terminal:比默认 PowerShell 窗口体验更好,支持多标签和彩色输出
  2. 始终在项目根目录启动:这样 Claude 能更好地理解项目结构
  3. 编写详细的 CLAUDE.md:提供技术栈、编码规范等背景信息
  4. 明确描述需求:越具体的指令,生成的结果越准确
  5. 分步执行复杂任务:将大任务拆分为小步骤,逐一确认
  6. 定期使用 /compact:长对话时压缩上下文,避免 Token 超限

十、常见问题

Q: 提示 claude 不是内部或外部命令

检查 npm 全局包路径是否在 PATH 中,参考"安装 Claude CLI"章节中的 PATH 配置步骤。

# 查看 npm 全局包路径
npm config get prefix

Q: PowerShell 提示脚本执行被禁止?

以管理员身份运行 PowerShell,执行以下命令允许本地脚本运行:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Q: API 请求失败,返回 401 错误?

检查 ANTHROPIC_API_KEY 环境变量是否正确设置,或 Key 是否已过期:

echo $env:ANTHROPIC_API_KEY

Q: 响应速度慢?

可以切换到更快的模型,如 claude-haiku-4-5

/model claude-haiku-4-5-20251001

总结

Claude CLI 是一个强大的 AI 编程助手,将 Claude 的能力无缝集成到你的开发工作流中。通过本教程,你已经掌握了在 Windows 上从安装配置到日常使用的完整流程。建议在实际项目中多加练习,充分利用 Claude 的能力提升开发效率。

更多文档请参考官方文档:docs.anthropic.com/claude-code

如果你喜欢本教程,记得点赞+收藏!关注我获取更多AI相关干货

❌
❌