mcp-builder
npx skills add https://github.com/marcelleon/skills-zh --skill mcp-builder
Agent 安装分布
Skill 文档
MCP æå¡å¨å¼åæå
æ¦è¿°
å建 MCPï¼Model Context Protocolï¼æå¡å¨ï¼ä½¿ LLM è½å¤éè¿ç²¾å¿è®¾è®¡çå·¥å ·ä¸å¤é¨æå¡äº¤äºãMCP æå¡å¨çè´¨ééè¿å®å¦ä½ææå°ä½¿ LLM 宿ç°å®ä¸ç任塿¥è¡¡éã
æµç¨
ð é«çº§å·¥ä½æµç¨
å建é«è´¨é MCP æå¡å¨æ¶åå个主è¦é¶æ®µï¼
é¶æ®µ 1ï¼æ·±å ¥ç ç©¶åè§å
1.1 çè§£ç°ä»£ MCP 设计
API è¦çç vs. 工使µå·¥å ·ï¼ å¹³è¡¡å ¨é¢ç API 端ç¹è¦çä¸ä¸é¨ç工使µå·¥å ·ã工使µå·¥å ·å¯¹äºç¹å®ä»»å¡å¯è½æ´æ¹ä¾¿ï¼èå ¨é¢çè¦çç为代çæä¾äºç»åæä½ççµæ´»æ§ãæ§è½å 客æ·ç«¯èå¼ââä¸äºå®¢æ·ç«¯åçäºç»ååºæ¬å·¥å ·çä»£ç æ§è¡ï¼èå ¶ä»å®¢æ·ç«¯ä½¿ç¨æ´é«çº§å«ç工使µæææ´å¥½ã妿ä¸ç¡®å®ï¼ä¼å èèå ¨é¢ç API è¦ççã
å·¥å
·å½ååå¯åç°æ§ï¼
æ¸
æ°ãæè¿°æ§çå·¥å
·å称帮å©ä»£çå¿«éæ¾å°æ£ç¡®çå·¥å
·ã使ç¨ä¸è´çåç¼ï¼ä¾å¦ï¼github_create_issueãgithub_list_reposï¼åé¢åæä½çå½åã
ä¸ä¸æç®¡çï¼ ä»£çåçäºç®æ´çå·¥å ·æè¿°ä»¥åè¿æ»¤/åé¡µç»æçè½åã设计è¿åéä¸ãç¸å ³æ°æ®çå·¥å ·ãä¸äºå®¢æ·ç«¯æ¯æä»£ç æ§è¡ï¼è¿å¯ä»¥å¸®å©ä»£ç髿å°è¿æ»¤åå¤çæ°æ®ã
坿ä½çéè¯¯æ¶æ¯ï¼ éè¯¯æ¶æ¯åºè¯¥éè¿å ·ä½å»ºè®®ååç»æ¥éª¤å¼å¯¼ä»£çæ¾å°è§£å³æ¹æ¡ã
1.2 å¦ä¹ MCP åè®®ææ¡£
æµè§ MCP è§èï¼
ä»ç«ç¹å°å¾å¼å§æ¥æ¾ç¸å
³é¡µé¢ï¼https://modelcontextprotocol.io/sitemap.xml
ç¶åä½¿ç¨ .md åç¼è·åç¹å®é¡µé¢ç markdown æ ¼å¼ï¼ä¾å¦ï¼https://modelcontextprotocol.io/specification/draft.mdï¼ã
éè¦æ¥ççå ³é®é¡µé¢ï¼
- è§èæ¦è¿°åæ¶æ
- ä¼ è¾æºå¶ï¼å¯æµå¼ HTTPãstdioï¼
- å·¥å ·ãèµæºåæç¤ºå®ä¹
1.3 å¦ä¹ æ¡æ¶ææ¡£
æ¨èææ¯æ ï¼
- è¯è¨ï¼TypeScriptï¼é«è´¨é SDK æ¯æï¼å¨è®¸å¤æ§è¡ç¯å¢ä¸å ·æè¯å¥½å ¼å®¹æ§ï¼ä¾å¦ MCPBãæ¤å¤ï¼AI æ¨¡åæ é¿çæ TypeScript 代ç ï¼åçäºå ¶å¹¿æ³ä½¿ç¨ãéæç±»ååè¯å¥½ç lint å·¥å ·ï¼
- ä¼ è¾ï¼è¿ç¨æå¡å¨ä½¿ç¨å¯æµå¼ HTTPï¼ä½¿ç¨æ ç¶æ JSONï¼ç¸å¯¹äºæç¶æä¼è¯åæµå¼ååºï¼æ´æäºæ©å±åç»´æ¤ï¼ãæ¬å°æå¡å¨ä½¿ç¨ stdioã
å è½½æ¡æ¶ææ¡£ï¼
- MCP æä½³å®è·µï¼ð æ¥çæä½³å®è·µ – æ ¸å¿æå
å¯¹äº TypeScriptï¼æ¨èï¼ï¼
- TypeScript SDKï¼ä½¿ç¨ WebFetch å è½½
https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.md - â¡ TypeScript æå – TypeScript 模å¼å示ä¾
å¯¹äº Pythonï¼
- Python SDKï¼ä½¿ç¨ WebFetch å è½½
https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.md - ð Python æå – Python 模å¼å示ä¾
1.4 è§åæ¨çå®ç°
çè§£ APIï¼ æ¥çæå¡ç API ææ¡£ä»¥è¯å«å ³é®ç«¯ç¹ã身份éªè¯è¦æ±åæ°æ®æ¨¡åãæ ¹æ®éè¦ä½¿ç¨ç½ç»æç´¢å WebFetchã
å·¥å ·éæ©ï¼ ä¼å èèå ¨é¢ç API è¦ççãååºè¦å®ç°ç端ç¹ï¼ä»æå¸¸è§çæä½å¼å§ã
é¶æ®µ 2ï¼å®ç°
2.1 设置项ç®ç»æ
æå ³é¡¹ç®è®¾ç½®ï¼è¯·åè§ç¹å®è¯è¨çæåï¼
- â¡ TypeScript æå – 项ç®ç»æãpackage.jsonãtsconfig.json
- ð Python æå – 模åç»ç»ãä¾èµé¡¹
2.2 å®ç°æ ¸å¿åºç¡è®¾æ½
åå»ºå ±äº«å®ç¨ç¨åºï¼
- 带身份éªè¯ç API 客æ·ç«¯
- é误å¤ç帮å©ç¨åº
- ååºæ ¼å¼åï¼JSON/Markdownï¼
- åé¡µæ¯æ
2.3 å®ç°å·¥å ·
å¯¹äºæ¯ä¸ªå·¥å ·ï¼
è¾å ¥æ¶æï¼
- ä½¿ç¨ Zod (TypeScript) æ Pydantic (Python)
- å å«çº¦æåæ¸ æ°çæè¿°
- å¨å段æè¿°ä¸æ·»å 示ä¾
è¾åºæ¶æï¼
- å°½å¯è½ä¸ºç»æåæ°æ®å®ä¹
outputSchema - å¨å·¥å
·ååºä¸ä½¿ç¨
structuredContentï¼TypeScript SDK åè½ï¼ - 帮å©å®¢æ·ç«¯çè§£åå¤çå·¥å ·è¾åº
å·¥å ·æè¿°ï¼
- åè½çç®æ´æ»ç»
- åæ°æè¿°
- è¿åç±»åæ¶æ
å®ç°ï¼
- I/O æä½ä½¿ç¨ Async/await
- 带æå¯æä½æ¶æ¯çæ£ç¡®é误å¤ç
- å¨éç¨çå°æ¹æ¯æå页
- 使ç¨ç°ä»£ SDK æ¶è¿åææ¬å 容åç»æåæ°æ®
注éï¼
readOnlyHint: true/falsedestructiveHint: true/falseidempotentHint: true/falseopenWorldHint: true/false
é¶æ®µ 3ï¼å®¡æ¥åæµè¯
3.1 代ç è´¨é
审æ¥ä»¥ä¸å 容ï¼
- æ éå¤ä»£ç ï¼DRY ååï¼
- ä¸è´çé误å¤ç
- 宿´çç±»åè¦ç
- æ¸ æ°çå·¥å ·æè¿°
3.2 æå»ºåæµè¯
TypeScriptï¼
- è¿è¡
npm run buildéªè¯ç¼è¯ - ä½¿ç¨ MCP Inspector æµè¯ï¼
npx @modelcontextprotocol/inspector
Pythonï¼
- éªè¯è¯æ³ï¼
python -m py_compile your_server.py - ä½¿ç¨ MCP Inspector æµè¯
æå ³è¯¦ç»çæµè¯æ¹æ³åè´¨éæ£æ¥æ¸ åï¼è¯·åè§ç¹å®è¯è¨çæåã
é¶æ®µ 4ï¼å建è¯ä¼°
å®ç° MCP æå¡å¨åï¼åå»ºå ¨é¢çè¯ä¼°æ¥æµè¯å ¶æææ§ã
å è½½ â è¯ä¼°æå 以è·å宿´çè¯ä¼°æåã
4.1 çè§£è¯ä¼°ç®ç
使ç¨è¯ä¼°æ¥æµè¯ LLM æ¯å¦å¯ä»¥ææå°ä½¿ç¨æ¨ç MCP æå¡å¨åçç°å®çã夿çé®é¢ã
4.2 å建 10 个è¯ä¼°é®é¢
è¦å建ææçè¯ä¼°ï¼è¯·éµå¾ªè¯ä¼°æå䏿¦è¿°çæµç¨ï¼
- å·¥å ·æ£æ¥ï¼ååºå¯ç¨å·¥å ·å¹¶äºè§£å ¶åè½
- å 容æ¢ç´¢ï¼ä½¿ç¨åªè¯»æä½æ¢ç´¢å¯ç¨æ°æ®
- é®é¢çæï¼å建 10 ä¸ªå¤æãç°å®çé®é¢
- çæ¡éªè¯ï¼èªå·±è§£å³æ¯ä¸ªé®é¢ä»¥éªè¯çæ¡
4.3 è¯ä¼°è¦æ±
ç¡®ä¿æ¯ä¸ªé®é¢æ¯ï¼
- ç¬ç«çï¼ä¸ä¾èµäºå ¶ä»é®é¢
- åªè¯»çï¼ä» éè¦éç ´åæ§æä½
- 夿çï¼éè¦å¤æ¬¡å·¥å ·è°ç¨åæ·±å ¥æ¢ç´¢
- ç°å®çï¼åºäºäººç±»å ³å¿ççå®ç¨ä¾
- å¯éªè¯çï¼å¯ä»¥éè¿å符串æ¯è¾éªè¯çåä¸ãæ¸ æ°çæ¡
- 稳å®çï¼çæ¡ä¸ä¼éæ¶é´æ¹å
4.4 è¾åºæ ¼å¼
åå»ºå ·ææ¤ç»æç XML æä»¶ï¼
<evaluation>
<qa_pair>
<question>æ¥æ¾å
³äºä½¿ç¨å¨ç©ä»£å·ç AI 模ååå¸ç讨论ãä¸ä¸ªæ¨¡åéè¦ç¹å®çå®å
¨åç§°ï¼æ ¼å¼ä¸º ASL-Xã为以æç¹éç«å½åçæ¨¡åç¡®å®çæ°å X æ¯å¤å°ï¼</question>
<answer>3</answer>
</qa_pair>
<!-- æ´å¤ qa_pairs... -->
</evaluation>
åèæä»¶
ð ææ¡£åº
å¨å¼åè¿ç¨ä¸æ ¹æ®éè¦å è½½è¿äºèµæºï¼
æ ¸å¿ MCP ææ¡£ï¼é¦å å è½½ï¼
- MCP åè®®ï¼ä»
https://modelcontextprotocol.io/sitemap.xmlçç«ç¹å°å¾å¼å§ï¼ç¶å使ç¨.mdåç¼è·åç¹å®é¡µé¢ - ð MCP æä½³å®è·µ – éç¨ MCP æåï¼å
æ¬ï¼
- æå¡å¨åå·¥å ·å½å约å®
- ååºæ ¼å¼æåï¼JSON vs Markdownï¼
- å页æä½³å®è·µ
- ä¼ è¾éæ©ï¼å¯æµå¼ HTTP vs stdioï¼
- å®å ¨åé误å¤çæ å
SDK ææ¡£ï¼å¨é¶æ®µ 1/2 æé´å è½½ï¼
- Python SDKï¼ä»
https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.mdè·å - TypeScript SDKï¼ä»
https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.mdè·å
ç¹å®è¯è¨çå®ç°æåï¼å¨é¶æ®µ 2 æé´å è½½ï¼
-
ð Python å®ç°æå – 宿´ç Python/FastMCP æåï¼å æ¬ï¼
- æå¡å¨åå§å模å¼
- Pydantic 模å示ä¾
- 使ç¨
@mcp.toolçå·¥å ·æ³¨å - 宿´çå·¥ä½ç¤ºä¾
- è´¨éæ£æ¥æ¸ å
-
â¡ TypeScript å®ç°æå – 宿´ç TypeScript æåï¼å æ¬ï¼
- 项ç®ç»æ
- Zod æ¶ææ¨¡å¼
- 使ç¨
server.registerToolçå·¥å ·æ³¨å - 宿´çå·¥ä½ç¤ºä¾
- è´¨éæ£æ¥æ¸ å
è¯ä¼°æåï¼å¨é¶æ®µ 4 æé´å è½½ï¼
- â
è¯ä¼°æå – 宿´çè¯ä¼°å建æåï¼å
æ¬ï¼
- é®é¢å建æå
- çæ¡éªè¯çç¥
- XML æ ¼å¼è§è
- 示ä¾é®é¢åçæ¡
- ä½¿ç¨æä¾çèæ¬è¿è¡è¯ä¼°