mcp-builder
npx skills add https://github.com/leastbit/claude_skills_zh-cn --skill mcp-builder
Agent 安装分布
Skill 文档
MCP æå¡å¨å¼åæå
æ¦è¿°
å建 MCPï¼æ¨¡åä¸ä¸æåè®®ï¼æå¡å¨ï¼ä½¿ LLM è½å¤éè¿ç²¾å¿è®¾è®¡çå·¥å ·ä¸å¤é¨æå¡äº¤äºãMCP æå¡å¨çè´¨éåå³äºå®è½å¤å¥½å°ä½¿ LLM 宿å®é ä»»å¡ã
æµç¨
ð é«çº§å·¥ä½æµç¨
å建é«è´¨éç MCP æå¡å¨å å«å个主è¦é¶æ®µï¼
é¶æ®µä¸ï¼æ·±å ¥ç ç©¶ä¸è§å
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.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.1 代ç è´¨é
审æ¥ä»¥ä¸æ¹é¢ï¼
- æ éå¤ä»£ç ï¼DRY ååï¼
- ä¸è´çé误å¤ç
- 宿´çç±»åè¦ç
- æ¸ æ°çå·¥å ·æè¿°
3.2 æå»ºä¸æµè¯
TypeScriptï¼
- è¿è¡
npm run buildéªè¯ç¼è¯ - ä½¿ç¨ MCP Inspector æµè¯ï¼
npx @modelcontextprotocol/inspector
Pythonï¼
- éªè¯è¯æ³ï¼
python -m py_compile your_server.py - ä½¿ç¨ MCP Inspector æµè¯
åé ç¹å®è¯è¨æåäºè§£è¯¦ç»çæµè¯æ¹æ³åè´¨éæ£æ¥æ¸ åã
é¶æ®µåï¼å建è¯ä¼°
å®ç° 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 æ ¼å¼è§è
- 示ä¾é®é¢åçæ¡
- ä½¿ç¨æä¾çèæ¬è¿è¡è¯ä¼°