dev-playbooks-cn 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1923 @@
1
+ # 已配置的 MCP 服务器
2
+
3
+ > 本项目推荐使用的 MCP 服务器详细配置和使用指南
4
+ >
5
+ > 日期:2025-12-30
6
+ > 配置级别:User Scope(所有项目可用)
7
+
8
+ ---
9
+
10
+ ## 📋 目录
11
+
12
+ 1. [概览](#概览)
13
+ 2. [TaskMaster AI](#taskmaster-ai)
14
+ 3. [CKB (Code Knowledge Backend)](#ckb-code-knowledge-backend)
15
+ 4. [tree-sitter-mcp](#tree-sitter-mcp)
16
+ 5. [Context7](#context7)
17
+ 6. [GitHub MCP Server](#github-mcp-server)
18
+ 7. [Playwright MCP](#playwright-mcp)
19
+ 8. [配置位置](#配置位置)
20
+
21
+ ---
22
+
23
+ ## 概览
24
+
25
+ ### 当前已配置的 MCP 服务器
26
+
27
+ | 服务器 | 类型 | 作用域 | 主要功能 |
28
+ |--------|------|--------|----------|
29
+ | **task-master** | 任务管理 | User Scope | AI 驱动的任务管理系统 |
30
+ | **ckb** | 代码分析 | User Scope | 代码符号搜索、引用查找 |
31
+ | **tree-sitter-mcp** | 代码搜索 | User Scope | 语义代码搜索和分析 |
32
+ | **context7** | 代码文档 | User Scope | 实时获取最新的库文档和代码示例 |
33
+ | **github** | GitHub集成 | User Scope | GitHub仓库、Issues、PR管理和自动化 |
34
+ | **playwright** | 浏览器自动化 | User Scope | 网页自动化测试、爬取和交互 |
35
+
36
+ **配置文件**:`~/.claude.json` (顶层 `mcpServers` 字段)
37
+
38
+ **作用范围**:✅ 所有项目
39
+
40
+ ---
41
+
42
+ ## TaskMaster AI
43
+
44
+ ### 基本信息
45
+
46
+ - **npm 包**:`task-master-ai`
47
+ - **类型**:AI 驱动的任务管理系统
48
+ - **安装方式**:npx(自动下载)
49
+ - **官方文档**:[https://docs.task-master.dev](https://docs.task-master.dev)
50
+ - **GitHub**:[eyaltoledano/claude-task-master](https://github.com/eyaltoledano/claude-task-master)
51
+
52
+ ### 功能特性
53
+
54
+ - ✅ **任务管理**:创建、更新、删除、搜索任务
55
+ - ✅ **优先级管理**:设置任务优先级(高、中、低)
56
+ - ✅ **状态跟踪**:待办、进行中、已完成
57
+ - ✅ **智能分析**:AI 驱动的任务分析和建议
58
+ - ✅ **自然语言交互**:通过对话管理任务
59
+ - ✅ **多模型支持**:支持 Claude、GPT 等多种 AI 模型
60
+
61
+ ### 配置
62
+
63
+ ```json
64
+ {
65
+ "mcpServers": {
66
+ "task-master": {
67
+ "command": "npx",
68
+ "args": ["-y", "task-master-ai"],
69
+ "env": {
70
+ "ANTHROPIC_API_KEY": "sk-...",
71
+ "ANTHROPIC_BASE_URL": "https://anyrouter.top",
72
+ "OPENAI_API_KEY": "sk-...",
73
+ "OPENAI_BASE_URL": "https://anyrouter.top/v1",
74
+ "TASK_MASTER_TOOLS": "core"
75
+ }
76
+ }
77
+ }
78
+ }
79
+ ```
80
+
81
+ ### 环境变量说明
82
+
83
+ | 变量 | 必需 | 说明 |
84
+ |------|------|------|
85
+ | `ANTHROPIC_API_KEY` | ✅ | Claude 模型的 API Key |
86
+ | `ANTHROPIC_BASE_URL` | ❌ | 自定义 Anthropic API 端点 |
87
+ | `OPENAI_API_KEY` | ❌ | OpenAI GPT 模型的 API Key |
88
+ | `OPENAI_BASE_URL` | ❌ | 自定义 OpenAI API 端点 |
89
+ | `TASK_MASTER_TOOLS` | ❌ | 启用的工具集合:`core`/`standard`/`all`/自定义逗号列表 |
90
+
91
+ ### 工具集合(TASK_MASTER_TOOLS)
92
+
93
+ > 说明:`task-master-ai` 实际读取的是 `TASK_MASTER_TOOLS`(不是 `TASK_MASTER_TOOL_MODE`)。
94
+
95
+ 常见取值:
96
+
97
+ - `core`:精简工具集(默认/推荐)
98
+ - `standard`:标准工具集
99
+ - `all`:启用全部工具
100
+ - `tool_a,tool_b,...`:自定义工具白名单(逗号分隔)
101
+
102
+ **当前使用**:`core` 模式
103
+
104
+ ### 使用示例
105
+
106
+ **创建任务**:
107
+ ```
108
+ 使用 task-master 创建任务:完成 MCP 配置文档
109
+ ```
110
+
111
+ **列出任务**:
112
+ ```
113
+ 使用 task-master 列出所有待办任务
114
+ ```
115
+
116
+ **更新任务状态**:
117
+ ```
118
+ 使用 task-master 将任务标记为已完成
119
+ ```
120
+
121
+ **搜索任务**:
122
+ ```
123
+ 使用 task-master 搜索关于"文档"的任务
124
+ ```
125
+
126
+ ### 模型配置(可选)
127
+
128
+ 如果想指定使用的 AI 模型,可以创建配置文件:
129
+
130
+ ```bash
131
+ # 交互式配置
132
+ npx task-master-ai models --setup
133
+
134
+ # 或直接设置
135
+ npx task-master-ai models --set-main=gpt-4o
136
+ npx task-master-ai models --set-research=claude-3-5-sonnet-20241022
137
+ npx task-master-ai models --set-fallback=gpt-3.5-turbo
138
+ ```
139
+
140
+ 配置文件位置:`~/.taskmaster/config.json`
141
+
142
+ ### 支持的 API 提供商
143
+
144
+ - Anthropic (Claude)
145
+ - OpenAI (GPT-4, GPT-3.5)
146
+ - Perplexity
147
+ - Google (Gemini)
148
+ - Mistral
149
+ - Groq
150
+ - OpenRouter
151
+ - xAI (Grok)
152
+ - Azure OpenAI
153
+ - Ollama (本地)
154
+
155
+ ---
156
+
157
+ ## CKB (Code Knowledge Backend)
158
+
159
+ ### 基本信息
160
+
161
+ - **版本**:7.5.0
162
+ - **类型**:语言无关的代码理解层
163
+ - **安装位置**:`/usr/local/bin/ckb`
164
+ - **GitHub**:[simplyliz/codemcp](https://github.com/simplyliz/codemcp)
165
+
166
+ ### 功能特性
167
+
168
+ - ✅ **符号搜索**:快速查找函数、类、变量
169
+ - ✅ **查找引用**:找到符号的所有使用位置
170
+ - ✅ **影响分析**:评估代码修改的影响范围
171
+ - ✅ **架构视图**:项目结构和依赖关系
172
+ - ✅ **Git 集成**:Blame 信息和历史追踪
173
+
174
+ ### 后端支持
175
+
176
+ - **LSP** (Language Server Protocol):支持 Python、TypeScript、Go 等
177
+ - **SCIP**:预计算索引(适用于 Go/Java/TypeScript)
178
+ - **Git**:仓库历史和 blame 信息
179
+
180
+ ### 配置
181
+
182
+ ```json
183
+ {
184
+ "mcpServers": {
185
+ "ckb": {
186
+ "command": "/usr/local/bin/ckb",
187
+ "args": ["mcp"]
188
+ }
189
+ }
190
+ }
191
+ ```
192
+
193
+ ### 安装步骤
194
+
195
+ #### 1. 安装 CKB 二进制
196
+
197
+ ```bash
198
+ # 克隆仓库
199
+ cd ~/Projects/mcps
200
+ git clone https://github.com/simplyliz/codemcp.git
201
+ cd codemcp
202
+
203
+ # 设置 Go 代理(国内环境)
204
+ export GOPROXY=https://goproxy.cn,direct
205
+ export GOSUMDB=sum.golang.google.cn
206
+
207
+ # 编译
208
+ go build -o ckb ./cmd/ckb
209
+
210
+ # 安装到系统路径
211
+ sudo cp ckb /usr/local/bin/ckb
212
+ sudo chmod +x /usr/local/bin/ckb
213
+
214
+ # 验证安装
215
+ ckb --version
216
+ ```
217
+
218
+ #### 2. 安装 Python LSP 支持
219
+
220
+ ```bash
221
+ pip3 install python-lsp-server
222
+
223
+ # 验证安装
224
+ python3 -m pylsp --version
225
+ ```
226
+
227
+ #### 3. 为项目初始化 CKB
228
+
229
+ ```bash
230
+ cd /path/to/your/project
231
+ ckb init
232
+ ```
233
+
234
+ 这会创建 `.ckb/config.json` 配置文件。
235
+
236
+ ### 项目配置文件
237
+
238
+ 位置:`项目/.ckb/config.json`
239
+
240
+ ```json
241
+ {
242
+ "backends": {
243
+ "lsp": {
244
+ "enabled": true,
245
+ "servers": {
246
+ "python": {
247
+ "command": "python3",
248
+ "args": ["-m", "pylsp"]
249
+ }
250
+ }
251
+ },
252
+ "git": {
253
+ "enabled": true
254
+ }
255
+ }
256
+ }
257
+ ```
258
+
259
+ ### 使用示例
260
+
261
+ **搜索符号**:
262
+ ```
263
+ 使用 CKB 搜索项目中的 FastAPI 符号
264
+ ```
265
+
266
+ **查找引用**:
267
+ ```
268
+ 使用 CKB 查找 get_user 函数的所有引用
269
+ ```
270
+
271
+ **影响分析**:
272
+ ```
273
+ 使用 CKB 分析修改 User 类的影响
274
+ ```
275
+
276
+ ### 常用命令
277
+
278
+ ```bash
279
+ # 查看系统状态
280
+ ckb status
281
+
282
+ # 搜索符号
283
+ ckb search <符号名>
284
+
285
+ # 查找引用
286
+ ckb refs <符号名>
287
+
288
+ # 获取架构概览
289
+ ckb arch
290
+
291
+ # 运行诊断
292
+ ckb doctor
293
+ ```
294
+
295
+ ### 支持的语言
296
+
297
+ - ✅ Python (通过 LSP)
298
+ - ✅ TypeScript/JavaScript (通过 LSP)
299
+ - ✅ Go (通过 SCIP + LSP)
300
+ - ✅ Java (通过 SCIP)
301
+ - ✅ 任何有 Git 历史的项目
302
+
303
+ ### 注意事项
304
+
305
+ ⚠️ **每个项目需要单独初始化**:虽然 CKB MCP 服务器是 User Scope(全局可用),但每个项目需要运行 `ckb init` 来创建项目特定的配置。
306
+
307
+ ---
308
+
309
+ ## tree-sitter-mcp
310
+
311
+ ### 基本信息
312
+
313
+ - **npm 包**:`@nendo/tree-sitter-mcp`
314
+ - **类型**:语义代码搜索
315
+ - **安装方式**:npx(自动下载)
316
+ - **GitHub**:[nendo/tree-sitter-mcp](https://github.com/nendo/tree-sitter-mcp)
317
+
318
+ ### 功能特性
319
+
320
+ - ✅ **实时代码解析**:无需预生成索引
321
+ - ✅ **语义搜索**:理解代码结构的搜索
322
+ - ✅ **AST 查询**:抽象语法树级别的分析
323
+ - ✅ **多语言支持**:支持主流编程语言
324
+ - ✅ **轻量级**:不需要复杂配置
325
+
326
+ ### 配置
327
+
328
+ ```json
329
+ {
330
+ "mcpServers": {
331
+ "tree-sitter-mcp": {
332
+ "command": "npx",
333
+ "args": ["-y", "@nendo/tree-sitter-mcp", "--mcp"]
334
+ }
335
+ }
336
+ }
337
+ ```
338
+
339
+ ### 特点
340
+
341
+ - ✅ 首次使用时自动安装
342
+ - ✅ 自动更新到最新版本
343
+ - ✅ 无需维护本地安装
344
+ - ✅ 适用于任何项目(无需初始化)
345
+ - ✅ 零配置
346
+
347
+ ### 使用示例
348
+
349
+ **分析文件结构**:
350
+ ```
351
+ 使用 tree-sitter 分析 backend/main.py 的结构
352
+ ```
353
+
354
+ **查找函数定义**:
355
+ ```
356
+ 使用 tree-sitter 查找所有异步函数定义
357
+ ```
358
+
359
+ **代码模式搜索**:
360
+ ```
361
+ 使用 tree-sitter 搜索所有 try-except 块
362
+ ```
363
+
364
+ ### 支持的语言
365
+
366
+ - Python
367
+ - JavaScript/TypeScript
368
+ - Go
369
+ - Rust
370
+ - C/C++
371
+ - Java
372
+ - Ruby
373
+ - 以及更多...
374
+
375
+ ### 优势对比
376
+
377
+ | 特性 | tree-sitter-mcp | CKB |
378
+ |------|----------------|-----|
379
+ | 安装复杂度 | 简单(自动) | 中等(需编译) |
380
+ | 项目初始化 | 不需要 | 需要 |
381
+ | 语义理解 | 中等 | 高 |
382
+ | 引用查找 | 基础 | 完整 |
383
+ | 适用场景 | 快速搜索 | 深度分析 |
384
+
385
+ ---
386
+
387
+ ## Context7
388
+
389
+ ### 基本信息
390
+
391
+ - **npm 包**:`@upstash/context7-mcp`
392
+ - **版本**:2.0.0+
393
+ - **类型**:实时代码文档服务
394
+ - **安装方式**:npx(自动下载)
395
+ - **官方网站**:[context7.com](https://context7.com)
396
+ - **GitHub**:[upstash/context7](https://github.com/upstash/context7)
397
+
398
+ ### 功能特性
399
+
400
+ - ✅ **实时文档**:获取最新的、版本特定的库文档
401
+ - ✅ **代码示例**:直接获取最新的代码示例和API使用方法
402
+ - ✅ **库匹配**:智能识别并匹配项目使用的库
403
+ - ✅ **无缝集成**:无需切换标签页查文档
404
+ - ✅ **避免幻觉**:消除过时的代码建议和不存在的API
405
+ - ✅ **广泛支持**:支持主流库和框架
406
+
407
+ ### 配置
408
+
409
+ ```json
410
+ {
411
+ "mcpServers": {
412
+ "context7": {
413
+ "command": "npx",
414
+ "args": ["-y", "@upstash/context7-mcp"]
415
+ }
416
+ }
417
+ }
418
+ ```
419
+
420
+ **带 API Key 的配置**(可选,用于更高的速率限制和私有仓库):
421
+
422
+ ```json
423
+ {
424
+ "mcpServers": {
425
+ "context7": {
426
+ "command": "npx",
427
+ "args": ["-y", "@upstash/context7-mcp"],
428
+ "env": {
429
+ "CONTEXT7_API_KEY": "your-api-key"
430
+ }
431
+ }
432
+ }
433
+ }
434
+ ```
435
+
436
+ ### 环境变量说明
437
+
438
+ | 变量 | 必需 | 说明 |
439
+ |------|------|------|
440
+ | `CONTEXT7_API_KEY` | ❌ | Context7 API Key(可选,用于更高速率限制和私有仓库访问)|
441
+
442
+ **获取 API Key**:访问 [context7.com/dashboard](https://context7.com/dashboard) 创建账户并获取密钥。
443
+
444
+ ### 可用工具
445
+
446
+ Context7 提供以下工具供 LLM 使用:
447
+
448
+ 1. **resolve-library-id**:将库名称解析为 Context7 兼容的库 ID
449
+ - `query` (必需): 用户的问题或任务
450
+ - `libraryName` (必需): 要搜索的库名称
451
+
452
+ 2. **query-docs**:使用库 ID 检索文档
453
+ - `libraryId` (必需): Context7 库 ID(如 `/mongodb/docs`)
454
+ - `query` (必需): 要获取相关文档的问题或任务
455
+
456
+ ### 使用示例
457
+
458
+ #### 基础使用(推荐添加规则)
459
+
460
+ 在 CLAUDE.md 或设置中添加规则,自动调用 Context7:
461
+
462
+ ```markdown
463
+ Always use context7 when I need code generation, setup or configuration steps, or
464
+ library/API documentation. This means you should automatically use the Context7 MCP
465
+ tools to resolve library id and get library docs without me having to explicitly ask.
466
+ ```
467
+
468
+ 添加此规则后,直接提问即可:
469
+
470
+ ```
471
+ 创建一个 Next.js 中间件,检查 cookies 中的有效 JWT,
472
+ 并将未认证用户重定向到 /login
473
+ ```
474
+
475
+ #### 手动触发
476
+
477
+ 如果未设置规则,在提示中添加 `use context7`:
478
+
479
+ ```
480
+ 配置 Cloudflare Worker 脚本以缓存 JSON API 响应 5 分钟。use context7
481
+ ```
482
+
483
+ #### 指定库 ID(高级)
484
+
485
+ 如果已知确切的库 ID,可以直接指定:
486
+
487
+ ```
488
+ 使用 Supabase 实现基本身份验证。
489
+ use library /supabase/supabase for API and docs.
490
+ ```
491
+
492
+ ### 支持的库和框架
493
+
494
+ Context7 支持数千个库,包括但不限于:
495
+
496
+ **Web 框架**:
497
+ - Next.js, React, Vue, Angular, Svelte
498
+ - Express, Fastify, Koa, NestJS
499
+
500
+ **云服务**:
501
+ - AWS SDK, Google Cloud, Azure
502
+ - Cloudflare Workers, Vercel, Netlify
503
+
504
+ **数据库**:
505
+ - MongoDB, PostgreSQL, MySQL
506
+ - Supabase, Firebase, PlanetScale
507
+
508
+ **工具库**:
509
+ - Lodash, Axios, Prisma
510
+ - TailwindCSS, shadcn/ui
511
+
512
+ **查找更多**:访问 [context7.com](https://context7.com) 搜索可用库。
513
+
514
+ ### 特点
515
+
516
+ - ✅ **零配置**:首次使用时自动安装
517
+ - ✅ **自动更新**:npx 自动使用最新版本
518
+ - ✅ **版本感知**:获取特定版本的文档
519
+ - ✅ **社区驱动**:库由社区贡献和维护
520
+ - ✅ **轻量级**:无需本地索引或预处理
521
+
522
+ ### 代理配置
523
+
524
+ Context7 支持标准的 HTTPS 代理环境变量:
525
+
526
+ ```bash
527
+ export https_proxy=http://proxy.example.com:8080
528
+ export HTTPS_PROXY=http://proxy.example.com:8080
529
+ ```
530
+
531
+ ### 优势对比
532
+
533
+ | 特性 | Context7 | CKB | tree-sitter-mcp |
534
+ |------|----------|-----|-----------------|
535
+ | 安装复杂度 | 简单(自动) | 中等(需编译) | 简单(自动) |
536
+ | 文档来源 | 在线最新 | 本地代码 | 本地代码 |
537
+ | 版本特定 | ✅ | ❌ | ❌ |
538
+ | 代码示例 | ✅ 最新 | ❌ | ❌ |
539
+ | 离线使用 | ❌ | ✅ | ✅ |
540
+ | 适用场景 | 查库文档 | 分析本地代码 | 搜索本地代码 |
541
+
542
+ ### 故障排查
543
+
544
+ #### Context7 连接失败
545
+
546
+ **常见原因**:
547
+ - 网络连接问题
548
+ - 代理配置错误
549
+ - 速率限制(未使用 API Key)
550
+
551
+ **解决方案**:
552
+ ```bash
553
+ # 测试连接
554
+ curl -I https://api.context7.com
555
+
556
+ # 检查代理设置
557
+ echo $https_proxy
558
+
559
+ # 获取 API Key 以提高速率限制
560
+ # 访问 context7.com/dashboard
561
+ ```
562
+
563
+ #### 库未找到
564
+
565
+ **解决方案**:
566
+ 1. 检查库名称拼写
567
+ 2. 访问 [context7.com](https://context7.com) 搜索可用库
568
+ 3. 如果库不存在,可以提交添加请求
569
+
570
+ #### 首次运行慢
571
+
572
+ **原因**:npx 需要下载包(正常现象)
573
+
574
+ **解决方案**:等待下载完成,后续运行会很快
575
+
576
+ ---
577
+
578
+ ## GitHub MCP Server
579
+
580
+ ### 基本信息
581
+
582
+ - **Docker 镜像**:`ghcr.io/github/github-mcp-server`
583
+ - **版本**:0.26.3+
584
+ - **类型**:GitHub 平台集成
585
+ - **安装方式**:Docker(推荐)或源码构建
586
+ - **官方仓库**:[github/github-mcp-server](https://github.com/github/github-mcp-server)
587
+ - **维护方**:GitHub 官方
588
+
589
+ ### 功能特性
590
+
591
+ - ✅ **仓库管理**:浏览代码、搜索文件、分析提交、理解项目结构
592
+ - ✅ **Issue & PR 自动化**:创建、更新、管理 Issues 和 Pull Requests
593
+ - ✅ **CI/CD 智能**:监控 GitHub Actions 工作流、分析构建失败、管理发布
594
+ - ✅ **代码分析**:检查安全发现、审查 Dependabot 警告、代码模式分析
595
+ - ✅ **团队协作**:访问讨论、管理通知、分析团队活动
596
+ - ✅ **多功能工具集**:支持 Gists、Labels、Projects、Stargazers 等
597
+
598
+ ### 配置
599
+
600
+ #### 基础配置(Docker)
601
+
602
+ ```json
603
+ {
604
+ "mcpServers": {
605
+ "github": {
606
+ "command": "docker",
607
+ "args": [
608
+ "run",
609
+ "-i",
610
+ "--rm",
611
+ "-e",
612
+ "GITHUB_PERSONAL_ACCESS_TOKEN",
613
+ "ghcr.io/github/github-mcp-server"
614
+ ],
615
+ "env": {
616
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT_HERE"
617
+ }
618
+ }
619
+ }
620
+ }
621
+ ```
622
+
623
+ #### 带工具集配置
624
+
625
+ ```json
626
+ {
627
+ "mcpServers": {
628
+ "github": {
629
+ "command": "docker",
630
+ "args": [
631
+ "run",
632
+ "-i",
633
+ "--rm",
634
+ "-e",
635
+ "GITHUB_PERSONAL_ACCESS_TOKEN",
636
+ "-e",
637
+ "GITHUB_TOOLSETS",
638
+ "ghcr.io/github/github-mcp-server"
639
+ ],
640
+ "env": {
641
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT_HERE",
642
+ "GITHUB_TOOLSETS": "repos,issues,pull_requests,actions"
643
+ }
644
+ }
645
+ }
646
+ }
647
+ ```
648
+
649
+ #### GitHub Enterprise 配置
650
+
651
+ 对于 GitHub Enterprise Server 或 Enterprise Cloud with data residency (ghe.com):
652
+
653
+ ```json
654
+ {
655
+ "mcpServers": {
656
+ "github": {
657
+ "command": "docker",
658
+ "args": [
659
+ "run",
660
+ "-i",
661
+ "--rm",
662
+ "-e",
663
+ "GITHUB_PERSONAL_ACCESS_TOKEN",
664
+ "-e",
665
+ "GITHUB_HOST",
666
+ "ghcr.io/github/github-mcp-server"
667
+ ],
668
+ "env": {
669
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT_HERE",
670
+ "GITHUB_HOST": "https://your-ghes-domain.com"
671
+ }
672
+ }
673
+ }
674
+ }
675
+ ```
676
+
677
+ ### 获取 GitHub Personal Access Token (PAT)
678
+
679
+ #### 步骤 1:创建 PAT
680
+
681
+ 1. 访问 [GitHub Settings > Developer settings > Personal access tokens > Tokens (classic)](https://github.com/settings/tokens)
682
+ 2. 点击 **Generate new token** > **Generate new token (classic)**
683
+ 3. 填写 Token 描述(如 "Claude Code MCP")
684
+ 4. 选择过期时间(建议 90 天)
685
+ 5. 选择所需权限(Scopes)
686
+
687
+ #### 步骤 2:推荐的权限范围
688
+
689
+ **基础权限**(只读访问):
690
+ - ✅ `repo` - 完整仓库访问(包括私有仓库)
691
+ - ✅ `read:org` - 读取组织信息
692
+ - ✅ `read:user` - 读取用户信息
693
+
694
+ **完整功能**(读写访问):
695
+ - ✅ `repo` - 完整仓库访问
696
+ - ✅ `workflow` - 更新 GitHub Actions 工作流
697
+ - ✅ `admin:org` - 管理组织(如需要)
698
+ - ✅ `gist` - 创建和管理 Gists
699
+ - ✅ `notifications` - 访问通知
700
+ - ✅ `user` - 用户信息
701
+ - ✅ `read:discussion` - 读取讨论
702
+ - ✅ `write:discussion` - 写入讨论
703
+
704
+ #### 步骤 3:保存 Token
705
+
706
+ ⚠️ **重要**:复制生成的 Token 并保存到安全的地方。离开页面后将无法再次查看!
707
+
708
+ #### 步骤 4:配置到 Claude Code
709
+
710
+ 将 Token 添加到 `~/.claude.json` 配置文件中:
711
+
712
+ ```json
713
+ {
714
+ "mcpServers": {
715
+ "github": {
716
+ "env": {
717
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx"
718
+ }
719
+ }
720
+ }
721
+ }
722
+ ```
723
+
724
+ ### 环境变量说明
725
+
726
+ | 变量 | 必需 | 说明 |
727
+ |------|------|------|
728
+ | `GITHUB_PERSONAL_ACCESS_TOKEN` | ✅ | GitHub Personal Access Token |
729
+ | `GITHUB_TOOLSETS` | ❌ | 启用的工具集(逗号分隔) |
730
+ | `GITHUB_TOOLS` | ❌ | 启用的特定工具(逗号分隔) |
731
+ | `GITHUB_HOST` | ❌ | GitHub Enterprise 主机名 |
732
+ | `GITHUB_READ_ONLY` | ❌ | 只读模式(设为 `1` 启用) |
733
+ | `GITHUB_LOCKDOWN_MODE` | ❌ | 锁定模式(设为 `1` 启用) |
734
+ | `GITHUB_DYNAMIC_TOOLSETS` | ❌ | 动态工具集发现(设为 `1` 启用) |
735
+
736
+ ### 可用工具集
737
+
738
+ GitHub MCP Server 支持通过工具集(toolsets)控制可用功能:
739
+
740
+ #### 默认工具集(无配置时)
741
+
742
+ - `context` - 用户和 GitHub 上下文信息
743
+ - `repos` - 仓库管理
744
+ - `issues` - Issue 管理
745
+ - `pull_requests` - PR 管理
746
+ - `users` - 用户信息
747
+
748
+ #### 所有可用工具集
749
+
750
+ | 工具集 | 描述 |
751
+ |--------|------|
752
+ | `context` | 🔰 当前用户和 GitHub 上下文(强烈推荐)|
753
+ | `actions` | ⚙️ GitHub Actions 工作流和 CI/CD |
754
+ | `code_security` | 🔐 代码安全扫描 |
755
+ | `dependabot` | 🤖 Dependabot 工具 |
756
+ | `discussions` | 💬 GitHub Discussions |
757
+ | `gists` | 📝 GitHub Gist |
758
+ | `git` | 🌳 Git API 低级操作 |
759
+ | `issues` | 🐛 Issue 管理 |
760
+ | `labels` | 🏷️ 标签管理 |
761
+ | `notifications` | 🔔 通知管理 |
762
+ | `orgs` | 🏢 组织管理 |
763
+ | `projects` | 📊 GitHub Projects |
764
+ | `pull_requests` | 🔀 Pull Request 管理 |
765
+ | `repos` | 📦 仓库管理 |
766
+ | `secret_protection` | 🔒 Secret 扫描 |
767
+ | `security_advisories` | 🛡️ 安全公告 |
768
+ | `stargazers` | ⭐ Star 管理 |
769
+ | `users` | 👥 用户信息 |
770
+
771
+ #### 特殊工具集
772
+
773
+ - `all` - 启用所有可用工具集
774
+ - `default` - 默认配置(context, repos, issues, pull_requests, users)
775
+
776
+ ### 使用示例
777
+
778
+ #### 仓库管理
779
+
780
+ ```
781
+ 使用 GitHub MCP 列出我的所有仓库
782
+ ```
783
+
784
+ ```
785
+ 获取 owner/repo 仓库的文件内容:src/main.py
786
+ ```
787
+
788
+ ```
789
+ 搜索 owner/repo 中包含 "authentication" 的文件
790
+ ```
791
+
792
+ #### Issue 管理
793
+
794
+ ```
795
+ 在 owner/repo 中创建一个新 Issue:标题"修复登录Bug",描述"用户无法登录"
796
+ ```
797
+
798
+ ```
799
+ 列出 owner/repo 中所有打开的 Issues
800
+ ```
801
+
802
+ ```
803
+ 给 Issue #123 添加评论:"已修复,请测试"
804
+ ```
805
+
806
+ #### Pull Request 管理
807
+
808
+ ```
809
+ 在 owner/repo 创建 PR:从 feature-branch 到 main
810
+ ```
811
+
812
+ ```
813
+ 列出 owner/repo 中所有待审查的 PRs
814
+ ```
815
+
816
+ ```
817
+ 获取 PR #456 的评审意见
818
+ ```
819
+
820
+ #### CI/CD 监控
821
+
822
+ ```
823
+ 查看 owner/repo 中最近的 GitHub Actions 运行状态
824
+ ```
825
+
826
+ ```
827
+ 获取工作流运行 ID 123456 的日志
828
+ ```
829
+
830
+ ### 工具集配置示例
831
+
832
+ #### 只读模式(推荐新手)
833
+
834
+ ```json
835
+ {
836
+ "env": {
837
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx",
838
+ "GITHUB_READ_ONLY": "1"
839
+ }
840
+ }
841
+ ```
842
+
843
+ #### 指定工具集
844
+
845
+ ```json
846
+ {
847
+ "env": {
848
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx",
849
+ "GITHUB_TOOLSETS": "repos,issues,pull_requests,actions"
850
+ }
851
+ }
852
+ ```
853
+
854
+ #### 启用所有工具
855
+
856
+ ```json
857
+ {
858
+ "env": {
859
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx",
860
+ "GITHUB_TOOLSETS": "all"
861
+ }
862
+ }
863
+ ```
864
+
865
+ #### 动态工具集发现
866
+
867
+ ```json
868
+ {
869
+ "env": {
870
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx",
871
+ "GITHUB_DYNAMIC_TOOLSETS": "1"
872
+ }
873
+ }
874
+ ```
875
+
876
+ ### 特点
877
+
878
+ - ✅ **官方支持**:GitHub 官方维护
879
+ - ✅ **功能完整**:覆盖 GitHub 平台大部分 API
880
+ - ✅ **灵活配置**:支持工具集、只读模式、锁定模式
881
+ - ✅ **企业支持**:支持 GitHub Enterprise Server 和 Cloud
882
+ - ✅ **容器化**:使用 Docker 运行,环境隔离
883
+ - ✅ **自动更新**:Docker 镜像自动获取最新版本
884
+
885
+ ### 前置要求
886
+
887
+ #### 1. Docker 安装
888
+
889
+ 确保已安装 Docker:
890
+
891
+ ```bash
892
+ # 检查 Docker 是否安装
893
+ docker --version
894
+
895
+ # 如果未安装,请访问 https://docs.docker.com/get-docker/
896
+ ```
897
+
898
+ #### 2. Docker 运行状态
899
+
900
+ ```bash
901
+ # 确保 Docker 正在运行
902
+ docker ps
903
+
904
+ # 如果出错,启动 Docker Desktop 或 Docker 服务
905
+ ```
906
+
907
+ #### 3. 拉取镜像(可选)
908
+
909
+ 首次使用时会自动拉取,也可以提前拉取:
910
+
911
+ ```bash
912
+ docker pull ghcr.io/github/github-mcp-server
913
+ ```
914
+
915
+ ### 优势对比
916
+
917
+ | 特性 | GitHub MCP | CKB | tree-sitter-mcp |
918
+ |------|-----------|-----|-----------------|
919
+ | 安装复杂度 | 中等(需 Docker) | 中等(需编译) | 简单(自动) |
920
+ | GitHub 集成 | ✅ 完整 | ❌ | ❌ |
921
+ | 本地代码分析 | ❌ | ✅ | ✅ |
922
+ | Issue/PR 管理 | ✅ | ❌ | ❌ |
923
+ | CI/CD 监控 | ✅ | ❌ | ❌ |
924
+ | 需要网络 | ✅ | ❌ | ❌ |
925
+ | 需要认证 | ✅ PAT | ❌ | ❌ |
926
+
927
+ ### 故障排查
928
+
929
+ #### Docker 相关问题
930
+
931
+ **问题:Docker 镜像拉取失败**
932
+
933
+ ```bash
934
+ # 检查 Docker 登录状态
935
+ docker logout ghcr.io
936
+
937
+ # 重新拉取镜像
938
+ docker pull ghcr.io/github/github-mcp-server
939
+ ```
940
+
941
+ **问题:Docker 未运行**
942
+
943
+ ```bash
944
+ # macOS: 启动 Docker Desktop
945
+ open -a Docker
946
+
947
+ # Linux: 启动 Docker 服务
948
+ sudo systemctl start docker
949
+ ```
950
+
951
+ #### 权限问题
952
+
953
+ **问题:PAT 权限不足**
954
+
955
+ 检查 Token 权限:
956
+ 1. 访问 [GitHub Settings > Tokens](https://github.com/settings/tokens)
957
+ 2. 点击 Token 名称
958
+ 3. 检查并添加缺失的权限
959
+ 4. 重新生成 Token(如需要)
960
+
961
+ **问题:API 速率限制**
962
+
963
+ GitHub API 有速率限制:
964
+ - 未认证:60 次/小时
965
+ - 已认证:5000 次/小时
966
+
967
+ 使用 PAT 可大幅提高限制。
968
+
969
+ #### 连接问题
970
+
971
+ **问题:无法连接到 GitHub**
972
+
973
+ ```bash
974
+ # 测试网络连接
975
+ curl -I https://api.github.com
976
+
977
+ # 如果使用代理,配置 Docker 代理
978
+ # 编辑 ~/.docker/config.json
979
+ ```
980
+
981
+ **问题:GitHub Enterprise 连接失败**
982
+
983
+ 确保 `GITHUB_HOST` 配置正确:
984
+ - GitHub Enterprise Server: `https://your-ghes.com`
985
+ - GitHub Enterprise Cloud (ghe.com): `https://yourorg.ghe.com`
986
+
987
+ #### 工具相关问题
988
+
989
+ **问题:工具未显示**
990
+
991
+ 检查工具集配置:
992
+ ```bash
993
+ # 查看当前配置
994
+ cat ~/.claude.json | grep -A 20 '"github"'
995
+
996
+ # 尝试启用所有工具
997
+ # 在配置中添加 "GITHUB_TOOLSETS": "all"
998
+ ```
999
+
1000
+ **问题:只读操作失败**
1001
+
1002
+ 如果只需要读取权限,使用只读模式:
1003
+ ```json
1004
+ {
1005
+ "env": {
1006
+ "GITHUB_READ_ONLY": "1"
1007
+ }
1008
+ }
1009
+ ```
1010
+
1011
+ ### 安全最佳实践
1012
+
1013
+ #### 1. Token 管理
1014
+
1015
+ - ⚠️ **不要提交**:永远不要将 PAT 提交到 Git 仓库
1016
+ - ⚠️ **定期轮换**:建议每 90 天轮换一次 Token
1017
+ - ⚠️ **最小权限**:只授予必需的权限
1018
+ - ⚠️ **及时撤销**:不再使用时立即撤销 Token
1019
+
1020
+ #### 2. 权限控制
1021
+
1022
+ - 使用只读模式(`GITHUB_READ_ONLY=1`)进行探索
1023
+ - 使用工具集限制可用功能
1024
+ - 对生产环境使用锁定模式(`GITHUB_LOCKDOWN_MODE=1`)
1025
+
1026
+ #### 3. 审计
1027
+
1028
+ - 定期检查 [GitHub Security Log](https://github.com/settings/security-log)
1029
+ - 监控 Token 使用情况
1030
+ - 及时发现异常活动
1031
+
1032
+ ---
1033
+
1034
+ ## Playwright MCP
1035
+
1036
+ ### 基本信息
1037
+
1038
+ - **npm 包**:`@playwright/mcp@latest`
1039
+ - **版本**:0.0.54+
1040
+ - **类型**:浏览器自动化
1041
+ - **安装方式**:npx(自动下载)
1042
+ - **官方仓库**:[microsoft/playwright-mcp](https://github.com/microsoft/playwright-mcp)
1043
+ - **官方网站**:[playwright.dev](https://playwright.dev)
1044
+ - **维护方**:Microsoft 官方
1045
+
1046
+ ### 功能特性
1047
+
1048
+ - ✅ **浏览器自动化**:使用 Playwright 自动化浏览器操作
1049
+ - ✅ **无需视觉模型**:基于 Accessibility Tree 而非截图,速度快且轻量
1050
+ - ✅ **确定性工具**:避免基于截图方法的模糊性
1051
+ - ✅ **多浏览器支持**:Chrome、Firefox、WebKit (Safari)、Microsoft Edge
1052
+ - ✅ **页面交互**:点击、输入、导航、表单提交等
1053
+ - ✅ **内容提取**:获取页面文本、元素信息
1054
+ - ✅ **测试断言**:可选的测试功能支持
1055
+ - ✅ **PDF 生成**:可选的 PDF 导出功能
1056
+ - ✅ **视觉功能**:可选的坐标点击(需要 vision 能力)
1057
+
1058
+ ### 配置
1059
+
1060
+ #### 基础配置(推荐)
1061
+
1062
+ ```json
1063
+ {
1064
+ "mcpServers": {
1065
+ "playwright": {
1066
+ "command": "npx",
1067
+ "args": [
1068
+ "@playwright/mcp@latest"
1069
+ ]
1070
+ }
1071
+ }
1072
+ }
1073
+ ```
1074
+
1075
+ #### 带参数配置
1076
+
1077
+ ```json
1078
+ {
1079
+ "mcpServers": {
1080
+ "playwright": {
1081
+ "command": "npx",
1082
+ "args": [
1083
+ "@playwright/mcp@latest",
1084
+ "--browser=chrome",
1085
+ "--viewport-size=1280x720",
1086
+ "--timeout-action=10000"
1087
+ ]
1088
+ }
1089
+ }
1090
+ }
1091
+ ```
1092
+
1093
+ #### Headless 模式配置
1094
+
1095
+ ```json
1096
+ {
1097
+ "mcpServers": {
1098
+ "playwright": {
1099
+ "command": "npx",
1100
+ "args": [
1101
+ "@playwright/mcp@latest",
1102
+ "--headless"
1103
+ ]
1104
+ }
1105
+ }
1106
+ }
1107
+ ```
1108
+
1109
+ ### 常用配置参数
1110
+
1111
+ | 参数 | 说明 | 默认值 | 示例 |
1112
+ |------|------|--------|------|
1113
+ | `--browser` | 浏览器类型 | chrome | chrome, firefox, webkit, msedge |
1114
+ | `--headless` | 无头模式运行 | false (显示浏览器) | --headless |
1115
+ | `--viewport-size` | 浏览器窗口大小 | 默认大小 | --viewport-size=1280x720 |
1116
+ | `--device` | 模拟设备 | 无 | --device="iPhone 15" |
1117
+ | `--timeout-action` | 操作超时(毫秒)| 5000 | --timeout-action=10000 |
1118
+ | `--timeout-navigation` | 导航超时(毫秒)| 60000 | --timeout-navigation=30000 |
1119
+ | `--user-agent` | 自定义 UA | 默认 UA | --user-agent="Custom UA" |
1120
+ | `--ignore-https-errors` | 忽略 HTTPS 错误 | false | --ignore-https-errors |
1121
+ | `--caps` | 额外功能 | 无 | --caps=vision,pdf,testing |
1122
+
1123
+ ### 高级配置选项
1124
+
1125
+ #### 代理配置
1126
+
1127
+ ```json
1128
+ {
1129
+ "mcpServers": {
1130
+ "playwright": {
1131
+ "command": "npx",
1132
+ "args": [
1133
+ "@playwright/mcp@latest",
1134
+ "--proxy-server=http://myproxy:3128",
1135
+ "--proxy-bypass=.com,chromium.org"
1136
+ ]
1137
+ }
1138
+ }
1139
+ }
1140
+ ```
1141
+
1142
+ #### 持久化用户数据
1143
+
1144
+ ```json
1145
+ {
1146
+ "mcpServers": {
1147
+ "playwright": {
1148
+ "command": "npx",
1149
+ "args": [
1150
+ "@playwright/mcp@latest",
1151
+ "--user-data-dir=/path/to/profile"
1152
+ ]
1153
+ }
1154
+ }
1155
+ }
1156
+ ```
1157
+
1158
+ #### 隔离会话
1159
+
1160
+ ```json
1161
+ {
1162
+ "mcpServers": {
1163
+ "playwright": {
1164
+ "command": "npx",
1165
+ "args": [
1166
+ "@playwright/mcp@latest",
1167
+ "--isolated",
1168
+ "--storage-state=/path/to/state.json"
1169
+ ]
1170
+ }
1171
+ }
1172
+ }
1173
+ ```
1174
+
1175
+ #### 启用额外功能
1176
+
1177
+ ```json
1178
+ {
1179
+ "mcpServers": {
1180
+ "playwright": {
1181
+ "command": "npx",
1182
+ "args": [
1183
+ "@playwright/mcp@latest",
1184
+ "--caps=vision,pdf,testing"
1185
+ ]
1186
+ }
1187
+ }
1188
+ }
1189
+ ```
1190
+
1191
+ ### 用户配置文件位置
1192
+
1193
+ Playwright MCP 默认使用持久化配置文件存储登录状态:
1194
+
1195
+ **macOS**:
1196
+ ```
1197
+ ~/Library/Caches/ms-playwright/mcp-{channel}-profile
1198
+ ```
1199
+
1200
+ **Linux**:
1201
+ ```
1202
+ ~/.cache/ms-playwright/mcp-{channel}-profile
1203
+ ```
1204
+
1205
+ **Windows**:
1206
+ ```
1207
+ %USERPROFILE%\AppData\Local\ms-playwright\mcp-{channel}-profile
1208
+ ```
1209
+
1210
+ 可以使用 `--user-data-dir` 参数自定义位置。
1211
+
1212
+ ### 核心工具
1213
+
1214
+ Playwright MCP 提供以下核心自动化工具:
1215
+
1216
+ #### 1. 浏览器管理
1217
+ - **打开浏览器**:启动新的浏览器实例
1218
+ - **关闭浏览器**:关闭当前浏览器
1219
+ - **新建标签页**:创建新的标签页
1220
+ - **切换标签页**:在标签页间切换
1221
+ - **关闭标签页**:关闭指定标签页
1222
+
1223
+ #### 2. 页面操作
1224
+ - **导航**:访问 URL
1225
+ - **点击**:点击页面元素
1226
+ - **输入文本**:在输入框中输入内容
1227
+ - **选择**:下拉菜单选择
1228
+ - **提交表单**:提交表单数据
1229
+ - **滚动**:页面滚动操作
1230
+
1231
+ #### 3. 内容提取
1232
+ - **获取页面快照**:获取结构化页面内容(Accessibility Tree)
1233
+ - **提取文本**:获取元素文本内容
1234
+ - **获取属性**:读取元素属性
1235
+ - **截图**:保存页面截图(需要 vision)
1236
+
1237
+ #### 4. 等待操作
1238
+ - **等待元素**:等待元素出现
1239
+ - **等待导航**:等待页面加载完成
1240
+ - **等待条件**:等待自定义条件满足
1241
+
1242
+ ### 可选功能(通过 --caps 启用)
1243
+
1244
+ #### Vision 功能
1245
+ 启用基于坐标的点击:
1246
+ ```bash
1247
+ --caps=vision
1248
+ ```
1249
+
1250
+ 功能:
1251
+ - 基于坐标点击元素
1252
+ - 需要视觉模型支持
1253
+ - 适用于复杂页面布局
1254
+
1255
+ #### PDF 功能
1256
+ 启用 PDF 生成:
1257
+ ```bash
1258
+ --caps=pdf
1259
+ ```
1260
+
1261
+ 功能:
1262
+ - 生成页面 PDF
1263
+ - 自定义 PDF 选项
1264
+ - 保存到指定路径
1265
+
1266
+ #### Testing 功能
1267
+ 启用测试断言:
1268
+ ```bash
1269
+ --caps=testing
1270
+ ```
1271
+
1272
+ 功能:
1273
+ - expect() 断言
1274
+ - 元素可见性检查
1275
+ - 内容匹配验证
1276
+
1277
+ #### Tracing 功能
1278
+ 启用调试追踪:
1279
+ ```bash
1280
+ --caps=tracing
1281
+ ```
1282
+
1283
+ 功能:
1284
+ - 记录操作轨迹
1285
+ - 性能分析
1286
+ - 调试辅助
1287
+
1288
+ ### 使用示例
1289
+
1290
+ #### 基础浏览
1291
+
1292
+ ```
1293
+ 使用 Playwright 打开浏览器,访问 https://example.com
1294
+ ```
1295
+
1296
+ #### 表单填写
1297
+
1298
+ ```
1299
+ 使用 Playwright:
1300
+ 1. 访问 https://forms.example.com
1301
+ 2. 在 #username 输入 "testuser"
1302
+ 3. 在 #password 输入 "password123"
1303
+ 4. 点击 #submit 按钮
1304
+ ```
1305
+
1306
+ #### 内容提取
1307
+
1308
+ ```
1309
+ 使用 Playwright 访问 https://news.example.com,提取所有文章标题
1310
+ ```
1311
+
1312
+ #### 网页测试
1313
+
1314
+ ```
1315
+ 使用 Playwright 测试登录流程:
1316
+ 1. 访问登录页
1317
+ 2. 输入凭据
1318
+ 3. 提交表单
1319
+ 4. 验证是否重定向到仪表板
1320
+ ```
1321
+
1322
+ #### 截图保存
1323
+
1324
+ ```
1325
+ 使用 Playwright 访问 https://example.com 并保存截图
1326
+ ```
1327
+
1328
+ ### 使用场景
1329
+
1330
+ #### 适用于:
1331
+
1332
+ - 🌐 **网页测试**:自动化 UI 测试、E2E 测试
1333
+ - 📊 **数据爬取**:从动态网页提取数据
1334
+ - 🔐 **表单自动化**:自动填写和提交表单
1335
+ - 📸 **页面截图**:批量生成网页截图
1336
+ - 📄 **PDF 生成**:将网页转换为 PDF
1337
+ - 🔍 **网页监控**:定期检查网页变化
1338
+ - 🎯 **SPA 交互**:与 React、Vue 等单页应用交互
1339
+ - 🛒 **电商操作**:自动化购物流程测试
1340
+
1341
+ #### 不适用于:
1342
+
1343
+ - ❌ **大规模爬虫**:不适合高频率大规模爬取(有性能开销)
1344
+ - ❌ **实时监控**:浏览器资源占用较高
1345
+ - ❌ **简单 API 调用**:使用 HTTP 客户端更高效
1346
+
1347
+ ### 特点
1348
+
1349
+ - ✅ **零配置**:首次使用时自动安装
1350
+ - ✅ **自动更新**:npx 自动使用最新版本
1351
+ - ✅ **跨浏览器**:支持 Chrome、Firefox、WebKit、Edge
1352
+ - ✅ **快速可靠**:基于 Accessibility Tree,比视觉方法更快
1353
+ - ✅ **移动模拟**:支持模拟移动设备
1354
+ - ✅ **网络控制**:可拦截和修改网络请求
1355
+ - ✅ **文件上传/下载**:支持文件操作
1356
+ - ✅ **多标签页**:并行操作多个标签页
1357
+
1358
+ ### 前置要求
1359
+
1360
+ #### 1. Node.js
1361
+
1362
+ ```bash
1363
+ # 检查 Node.js 版本(需要 18+)
1364
+ node --version
1365
+
1366
+ # 如果版本过低,请升级 Node.js
1367
+ ```
1368
+
1369
+ #### 2. 浏览器(首次运行自动安装)
1370
+
1371
+ Playwright 会在首次运行时自动下载所需的浏览器:
1372
+ - Chromium(用于 Chrome)
1373
+ - Firefox
1374
+ - WebKit(用于 Safari)
1375
+
1376
+ 可以手动安装:
1377
+ ```bash
1378
+ npx playwright install
1379
+ ```
1380
+
1381
+ ### 浏览器扩展模式(高级)
1382
+
1383
+ 使用 Chrome 扩展连接到现有浏览器:
1384
+
1385
+ ```json
1386
+ {
1387
+ "mcpServers": {
1388
+ "playwright": {
1389
+ "command": "npx",
1390
+ "args": [
1391
+ "@playwright/mcp@latest",
1392
+ "--extension"
1393
+ ]
1394
+ }
1395
+ }
1396
+ }
1397
+ ```
1398
+
1399
+ **前提条件**:
1400
+ 1. 安装 "Playwright MCP Bridge" Chrome 扩展
1401
+ 2. 仅支持 Edge/Chrome
1402
+ 3. 可以使用已登录的浏览器会话
1403
+
1404
+ **用途**:
1405
+ - 利用现有的浏览器状态和登录会话
1406
+ - 无需重新登录
1407
+ - 适合需要已认证状态的操作
1408
+
1409
+ ### 优势对比
1410
+
1411
+ | 特性 | Playwright MCP | Selenium | Puppeteer |
1412
+ |------|---------------|----------|-----------|
1413
+ | 安装复杂度 | 简单(自动) | 复杂(需驱动) | 简单 |
1414
+ | 多浏览器支持 | ✅ 全面 | ✅ 全面 | ❌ 仅 Chrome |
1415
+ | 速度 | ⚡ 快 | 🐢 慢 | ⚡ 快 |
1416
+ | API 设计 | 现代 | 传统 | 现代 |
1417
+ | 移动模拟 | ✅ | 部分 | ✅ |
1418
+ | 与 Claude Code 集成 | ✅ 原生 | ❌ | ❌ |
1419
+ | LLM 友好 | ✅ 结构化 | ❌ | ❌ |
1420
+
1421
+ ### 安全与限制
1422
+
1423
+ #### 网站访问控制
1424
+
1425
+ 可以限制允许访问的网站:
1426
+
1427
+ ```bash
1428
+ --allowed-origins="https://example.com;https://trusted.com"
1429
+ ```
1430
+
1431
+ 或阻止特定网站:
1432
+
1433
+ ```bash
1434
+ --blocked-origins="https://malicious.com"
1435
+ ```
1436
+
1437
+ ⚠️ **重要**:这不是安全边界,仅作为防护栏使用。
1438
+
1439
+ #### Service Workers
1440
+
1441
+ 阻止 Service Workers:
1442
+
1443
+ ```bash
1444
+ --block-service-workers
1445
+ ```
1446
+
1447
+ #### 沙箱模式
1448
+
1449
+ 默认启用浏览器沙箱。在某些环境(如 Docker)中可能需要禁用:
1450
+
1451
+ ```bash
1452
+ --no-sandbox
1453
+ ```
1454
+
1455
+ ⚠️ **警告**:禁用沙箱会降低安全性,仅在必要时使用。
1456
+
1457
+ ### 故障排查
1458
+
1459
+ #### 浏览器未安装
1460
+
1461
+ **问题**:首次运行时提示缺少浏览器
1462
+
1463
+ **解决方案**:
1464
+ ```bash
1465
+ # 手动安装所有浏览器
1466
+ npx playwright install
1467
+
1468
+ # 或安装特定浏览器
1469
+ npx playwright install chromium
1470
+ ```
1471
+
1472
+ #### 首次运行慢
1473
+
1474
+ **原因**:npx 需要下载包和浏览器(正常现象)
1475
+
1476
+ **解决方案**:等待下载完成,后续运行会很快
1477
+
1478
+ #### Headless 模式调试困难
1479
+
1480
+ **解决方案**:
1481
+ 1. 移除 `--headless` 参数查看浏览器
1482
+ 2. 启用 tracing:`--caps=tracing`
1483
+ 3. 保存截图进行调试
1484
+
1485
+ #### 超时错误
1486
+
1487
+ **问题**:操作超时
1488
+
1489
+ **解决方案**:
1490
+ ```bash
1491
+ # 增加超时时间
1492
+ --timeout-action=30000
1493
+ --timeout-navigation=90000
1494
+ ```
1495
+
1496
+ #### 权限错误
1497
+
1498
+ **问题**:需要某些权限(如地理位置、通知)
1499
+
1500
+ **解决方案**:
1501
+ ```bash
1502
+ --grant-permissions=geolocation,clipboard-read,clipboard-write
1503
+ ```
1504
+
1505
+ #### Docker 环境问题
1506
+
1507
+ **问题**:在 Docker 中运行失败
1508
+
1509
+ **解决方案**:
1510
+ ```dockerfile
1511
+ # Dockerfile 示例
1512
+ FROM mcr.microsoft.com/playwright:v1.48.0-noble
1513
+
1514
+ WORKDIR /app
1515
+
1516
+ # 安装依赖
1517
+ RUN npm install -g playwright
1518
+
1519
+ # 运行时使用 --no-sandbox
1520
+ CMD ["npx", "@playwright/mcp@latest", "--headless", "--no-sandbox"]
1521
+ ```
1522
+
1523
+ ### 独立服务器模式(高级)
1524
+
1525
+ 在没有显示器的系统或需要远程访问时,可以运行独立 HTTP 服务器:
1526
+
1527
+ ```bash
1528
+ # 启动服务器
1529
+ npx @playwright/mcp@latest --port 8931
1530
+
1531
+ # 在 MCP 客户端配置中
1532
+ {
1533
+ "mcpServers": {
1534
+ "playwright": {
1535
+ "url": "http://localhost:8931/mcp"
1536
+ }
1537
+ }
1538
+ }
1539
+ ```
1540
+
1541
+ **特点**:
1542
+ - HTTP 传输
1543
+ - 适合远程访问
1544
+ - 适合无显示环境
1545
+
1546
+ ### 配置文件
1547
+
1548
+ 可以使用配置文件管理复杂设置:
1549
+
1550
+ ```json
1551
+ // playwright-mcp-config.json
1552
+ {
1553
+ "browser": "chrome",
1554
+ "headless": true,
1555
+ "viewport": { "width": 1280, "height": 720 },
1556
+ "ignoreHTTPSErrors": true,
1557
+ "timeout": {
1558
+ "action": 10000,
1559
+ "navigation": 60000
1560
+ },
1561
+ "proxy": {
1562
+ "server": "http://myproxy:3128",
1563
+ "bypass": ".com,chromium.org"
1564
+ }
1565
+ }
1566
+ ```
1567
+
1568
+ 使用配置文件:
1569
+ ```bash
1570
+ --config=/path/to/config.json
1571
+ ```
1572
+
1573
+ ### 与 GitHub MCP Server 对比
1574
+
1575
+ | 特性 | Playwright MCP | GitHub MCP |
1576
+ |------|---------------|-----------|
1577
+ | 安装复杂度 | 简单(npx) | 中等(Docker) |
1578
+ | 主要用途 | 浏览器自动化 | GitHub 集成 |
1579
+ | 需要认证 | ❌(部分网站需要) | ✅ PAT |
1580
+ | 网络依赖 | ✅ | ✅ |
1581
+ | 资源占用 | 高(浏览器) | 低 |
1582
+ | 适用场景 | 网页测试/爬取 | 代码仓库管理 |
1583
+
1584
+ ### 与其他 MCP 服务器的协同
1585
+
1586
+ Playwright 可以与其他 MCP 服务器协同工作:
1587
+
1588
+ #### + Context7
1589
+ - Playwright 访问文档网站
1590
+ - Context7 获取最新 API 文档
1591
+ - 结合使用获取动态生成的文档
1592
+
1593
+ #### + GitHub MCP
1594
+ - Playwright 测试 GitHub Pages 网站
1595
+ - GitHub MCP 管理源代码
1596
+ - 自动化部署后的测试流程
1597
+
1598
+ #### + tree-sitter-mcp
1599
+ - tree-sitter 分析本地测试文件
1600
+ - Playwright 运行浏览器测试
1601
+ - 全栈测试覆盖
1602
+
1603
+ ### 最佳实践
1604
+
1605
+ #### 1. 选择合适的模式
1606
+
1607
+ ```bash
1608
+ # 开发调试:显示浏览器
1609
+ --browser=chrome
1610
+
1611
+ # 生产环境:无头模式
1612
+ --headless
1613
+
1614
+ # CI/CD:无头 + 沙箱禁用
1615
+ --headless --no-sandbox
1616
+ ```
1617
+
1618
+ #### 2. 优化性能
1619
+
1620
+ ```bash
1621
+ # 减少超时
1622
+ --timeout-action=3000
1623
+
1624
+ # 使用持久化会话避免重复登录
1625
+ --user-data-dir=~/.playwright-profile
1626
+
1627
+ # 复用浏览器上下文
1628
+ --shared-browser-context
1629
+ ```
1630
+
1631
+ #### 3. 保存调试信息
1632
+
1633
+ ```bash
1634
+ # 保存会话
1635
+ --save-session
1636
+
1637
+ # 保存追踪
1638
+ --save-trace
1639
+
1640
+ # 保存视频
1641
+ --save-video=1280x720
1642
+ ```
1643
+
1644
+ #### 4. 权限管理
1645
+
1646
+ ```bash
1647
+ # 授予必要权限
1648
+ --grant-permissions=geolocation,notifications
1649
+
1650
+ # 限制访问域名
1651
+ --allowed-origins="https://trusted.com"
1652
+ ```
1653
+
1654
+ ### 更新 Playwright MCP
1655
+
1656
+ ```bash
1657
+ # npx 会自动使用最新版本
1658
+ # 无需手动更新
1659
+
1660
+ # 如需清理缓存
1661
+ npx clear-npx-cache
1662
+
1663
+ # 重新安装浏览器
1664
+ npx playwright install
1665
+ ```
1666
+
1667
+ ---
1668
+
1669
+ ## 配置位置
1670
+
1671
+ ### User Scope 配置
1672
+
1673
+ **文件**:`~/.claude.json`
1674
+
1675
+ **结构**:
1676
+ ```json
1677
+ {
1678
+ "mcpServers": {
1679
+ "task-master": { ... },
1680
+ "ckb": { ... },
1681
+ "tree-sitter-mcp": { ... },
1682
+ "context7": { ... },
1683
+ "github": { ... },
1684
+ "playwright": { ... }
1685
+ },
1686
+ "projects": {
1687
+ ...
1688
+ }
1689
+ }
1690
+ ```
1691
+
1692
+ ### Codex CLI 配置(与 Claude Code 同步)
1693
+
1694
+ 如果你也在使用 Codex CLI,并希望复用同一套 MCP:
1695
+
1696
+ - **Codex 配置文件**:`~/.codex/config.toml`
1697
+ - **字段**:`mcp_servers`
1698
+ - **重要**:部分版本需要开启 `features.rmcp_client = true` 才会在 Codex 中加载 MCP 工具
1699
+ - **推荐**:使用本仓库脚本从 Claude 配置一键同步到 Codex:`scripts/sync_mcp_from_claude_to_codex.py`
1700
+ - **教程**:`mcp_codex.md`
1701
+
1702
+ ### 项目特定配置
1703
+
1704
+ **CKB 配置**:`项目/.ckb/config.json`
1705
+
1706
+ **TaskMaster 配置**:`~/.taskmaster/config.json`(可选)
1707
+
1708
+ ---
1709
+
1710
+ ## 使用场景
1711
+
1712
+ ### TaskMaster AI 适用于
1713
+
1714
+ - 📋 项目任务管理和追踪
1715
+ - ✅ 开发待办事项记录
1716
+ - 🔧 代码重构任务规划
1717
+ - 🐛 Bug 修复任务跟踪
1718
+ - 📊 项目进度管理
1719
+
1720
+ ### CKB 适用于
1721
+
1722
+ - 🏗️ 大型代码库的架构理解
1723
+ - 🔍 查找符号引用
1724
+ - 📈 影响分析(修改代码前评估影响)
1725
+ - 🕒 Git blame 和历史分析
1726
+ - 🔗 依赖关系追踪
1727
+
1728
+ ### tree-sitter-mcp 适用于
1729
+
1730
+ - ⚡ 快速代码搜索
1731
+ - 🌳 语义分析
1732
+ - 🆕 临时项目(无需初始化)
1733
+ - 🪶 轻量级代码理解
1734
+ - 🔎 代码模式匹配
1735
+
1736
+ ### Context7 适用于
1737
+
1738
+ - 📚 查询最新的库文档和 API
1739
+ - 💡 获取实时代码示例
1740
+ - 🔧 学习新库或框架的使用方法
1741
+ - ⚡ 避免过时的代码建议
1742
+ - 🌐 快速了解库的配置和最佳实践
1743
+
1744
+ ### GitHub MCP Server 适用于
1745
+
1746
+ - 🔍 浏览和搜索 GitHub 仓库
1747
+ - 🐛 创建和管理 Issues
1748
+ - 🔀 创建和审查 Pull Requests
1749
+ - ⚙️ 监控 CI/CD 工作流
1750
+ - 👥 团队协作和项目管理
1751
+ - 🔐 安全扫描和 Dependabot 管理
1752
+
1753
+ ### Playwright MCP 适用于
1754
+
1755
+ - 🌐 网页自动化测试和 E2E 测试
1756
+ - 📊 从动态网页爬取数据
1757
+ - 🔐 自动化表单填写和提交
1758
+ - 📸 批量生成网页截图
1759
+ - 📄 将网页转换为 PDF
1760
+ - 🔍 定期监控网页变化
1761
+ - 🎯 与单页应用(React、Vue 等)交互
1762
+ - 🛒 电商流程自动化测试
1763
+
1764
+ ---
1765
+
1766
+ ## 故障排查
1767
+
1768
+ ### TaskMaster 无法启动
1769
+
1770
+ **常见原因**:
1771
+ - 缺少 API Key
1772
+ - API 端点不可访问
1773
+ - npx 下载失败
1774
+
1775
+ **解决方案**:
1776
+ ```bash
1777
+ # 检查环境变量
1778
+ cat ~/.claude.json | python3 -c "
1779
+ import sys, json
1780
+ data = json.load(sys.stdin)
1781
+ env = data['mcpServers']['task-master']['env']
1782
+ print('环境变量:', list(env.keys()))
1783
+ "
1784
+
1785
+ # 测试 API 连接
1786
+ curl -I https://anyrouter.top
1787
+ ```
1788
+
1789
+ ### CKB 显示 "LSP not ready"
1790
+
1791
+ **解决方案**:
1792
+ ```bash
1793
+ # 验证 pylsp 安装
1794
+ python3 -m pylsp --version
1795
+
1796
+ # 检查项目配置
1797
+ cat .ckb/config.json
1798
+
1799
+ # 重新初始化
1800
+ ckb init
1801
+ ```
1802
+
1803
+ ### tree-sitter-mcp 首次运行慢
1804
+
1805
+ **原因**:npx 需要下载包(正常现象)
1806
+
1807
+ **解决方案**:等待下载完成,后续运行会很快
1808
+
1809
+ ### Context7 相关问题
1810
+
1811
+ 请参考 [Context7 章节](#context7) 的故障排查部分。
1812
+
1813
+ ### GitHub MCP Server 相关问题
1814
+
1815
+ 请参考 [GitHub MCP Server 章节](#github-mcp-server) 的故障排查部分。
1816
+
1817
+ ### Playwright MCP 相关问题
1818
+
1819
+ 请参考 [Playwright MCP 章节](#playwright-mcp) 的故障排查部分。
1820
+
1821
+ ---
1822
+
1823
+ ## 维护和更新
1824
+
1825
+ ### 更新 TaskMaster
1826
+
1827
+ ```bash
1828
+ # 使用 npx 会自动使用最新版本
1829
+ # 无需手动更新
1830
+ ```
1831
+
1832
+ ### 更新 CKB
1833
+
1834
+ ```bash
1835
+ cd ~/Projects/mcps/codemcp
1836
+ git pull
1837
+ go build -o ckb ./cmd/ckb
1838
+ sudo cp ckb /usr/local/bin/ckb
1839
+ ```
1840
+
1841
+ ### 更新 tree-sitter-mcp
1842
+
1843
+ ```bash
1844
+ # 使用 npx -y 会自动下载最新版本
1845
+ # 无需手动更新
1846
+ ```
1847
+
1848
+ ### 更新 Context7
1849
+
1850
+ ```bash
1851
+ # 使用 npx -y 会自动下载最新版本
1852
+ # 无需手动更新
1853
+ ```
1854
+
1855
+ ### 更新 GitHub MCP Server
1856
+
1857
+ ```bash
1858
+ # Docker 镜像会自动拉取最新版本
1859
+ # 或手动更新:
1860
+ docker pull ghcr.io/github/github-mcp-server
1861
+ ```
1862
+
1863
+ ### 更新 Playwright MCP
1864
+
1865
+ ```bash
1866
+ # npx 会自动使用最新版本
1867
+ # 无需手动更新
1868
+
1869
+ # 如需清理缓存
1870
+ npx clear-npx-cache
1871
+
1872
+ # 重新安装浏览器
1873
+ npx playwright install
1874
+ ```
1875
+
1876
+ ---
1877
+
1878
+ ## 参考资源
1879
+
1880
+ ### TaskMaster AI
1881
+ - [官方文档](https://docs.task-master.dev)
1882
+ - [GitHub 仓库](https://github.com/eyaltoledano/claude-task-master)
1883
+ - [npm 包](https://www.npmjs.com/package/task-master-ai)
1884
+
1885
+ ### CKB
1886
+ - [GitHub 仓库](https://github.com/simplyliz/codemcp)
1887
+ - [MCP 服务器列表](https://mcp.lobehub.com/)
1888
+
1889
+ ### tree-sitter-mcp
1890
+ - [GitHub 仓库](https://github.com/nendo/tree-sitter-mcp)
1891
+ - [npm 包](https://www.npmjs.com/package/@nendo/tree-sitter-mcp)
1892
+
1893
+ ### Context7
1894
+ - [官方网站](https://context7.com)
1895
+ - [GitHub 仓库](https://github.com/upstash/context7)
1896
+ - [npm 包](https://www.npmjs.com/package/@upstash/context7-mcp)
1897
+ - [获取 API Key](https://context7.com/dashboard)
1898
+ - [添加项目到 Context7](https://github.com/upstash/context7#-adding-projects)
1899
+
1900
+ ### GitHub MCP Server
1901
+ - [GitHub 仓库](https://github.com/github/github-mcp-server)
1902
+ - [Docker 镜像](https://github.com/github/github-mcp-server/pkgs/container/github-mcp-server)
1903
+ - [官方文档](https://github.com/github/github-mcp-server#readme)
1904
+ - [安装指南](https://github.com/github/github-mcp-server/tree/main/docs)
1905
+ - [创建 PAT](https://github.com/settings/tokens)
1906
+
1907
+ ### Playwright MCP
1908
+ - [官方仓库](https://github.com/microsoft/playwright-mcp)
1909
+ - [官方网站](https://playwright.dev)
1910
+ - [npm 包](https://www.npmjs.com/package/@playwright/mcp)
1911
+ - [Chrome 扩展](https://github.com/microsoft/playwright-mcp/tree/main/extension)
1912
+ - [Docker 使用](https://github.com/microsoft/playwright-mcp#docker)
1913
+
1914
+ ### 通用资源
1915
+ - [MCP 协议规范](https://modelcontextprotocol.io/)
1916
+ - [Claude Code MCP 文档](https://docs.claude.com/en/docs/claude-code/mcp)
1917
+ - [MCP 服务器市场](https://mcp.lobehub.com/)
1918
+
1919
+ ---
1920
+
1921
+ **文档更新日期**:2025-12-30
1922
+ **作者**:Claude Code
1923
+ **维护**:定期更新配置和使用说明