MCPå ¥é
MCPæŠèŠèª¬æ
ãã®èšäºã¯MCP2025-03-26ãªããžã§ã³ãåºã«äœæããŸããã
Model Context Protocol (MCP) ãšã¯äœãïŒ
MCP ã¯ãAI ã¢ã·ã¹ã¿ã³ãïŒãã£ããããããèªååãšãŒãžã§ã³ããªã©ïŒããããŸããŸãªå€éšããŒã¿ãããŒã«ã«ã¢ã¯ã»ã¹ããããã® å ±éã®ã«ãŒã«ïŒãããã³ã«ïŒ ã§ãã
åŸæ¥ã¯ãAI ã«ããŒã¿ããŒã¹ããŠã§ããµãŒãã¹ãããŒã«ã«ã®ãã¡ã€ã«ã䜿ãããããšããããããéãæ¥ç¶æ¹æ³ããã¡ãã¡äœã蟌ãå¿ èŠããããŸããããããšãAI ãæ¡åŒµãããã³ã«ãæ°ããããŒã«çšã®ç¬èªã³ãŒãããçšæããªããŠã¯ãªããŸããã
MCP ã䜿ããšããAI â ããŒã¿ãããŒã«ã ã®æ¥ç¶æ¹åŒã æšæºå ã§ãããããåãä»çµã¿ã§ãããããªããŒã¿ãœãŒã¹ãå€éšãµãŒãã¹ãšããåãã§ããŸããããã¯ãAI ã®éçºè ãšããŒã¿ç®¡çè åæ¹ã«ãšã£ãŠã倧ããªæéåæžãåå©çšæ§ã®åäžã«ã€ãªãããŸãã
Anthropic ãçå®ããããšããã㊠OpenAI ãå«ãä»ç€Ÿãæ¡çšãå§ããŠããããšãããMCP ã¯ä»åŸã® AI ã¢ããªã±ãŒã·ã§ã³é£æºã®æ¥çæšæºãšããŠå€§ããªæ³šç®ãéããŠããŸãã
ã©ã®ãããªå ±éã«ãŒã«ãªã®ãïŒ
MCPã¯ãåæåã§äºãã®âç«å Žãšæ©èœâã確èªãåããããšã¯çµ±äžãã©ãŒãããã®ãªã¯ãšã¹ãïŒã¬ã¹ãã³ã¹ã§èªç±ã«ããåãããä»çµã¿ã§ãã现ããå®è£ ãéçšæ¹æ³ã¯åŸã§è©³ããèŠãŸããããŸãã¯ãåãèšèªïŒJSON-RPCïŒããæåã«ååºäº€æïŒinitializeïŒããããŒã«ããªãœãŒã¹ãç°¡åã«ããåããã®3ç¹ãæŒãããŠããã°ãMCPã®æŠå¿µãã€ãããã¯ãã§ãã
-
å ±éèšèªã¯JSON-RPC
ããšãã°åœéäŒè°ã§ãå ±éèªãè±èªã«ãããããšæ±ºããããã«ãMCPã§ã¯ãJSON-RPC 2.0ãããã®âè±èªâ圹ã§ãã
-
æåã®âååºäº€æâïŒinitialize
ã¯ã©ã€ã¢ã³ãããµãŒãã«åŒã³ããããšãããŸã㯠âinitializeâ ãšããã¡ãœãããéããŸããããã¯ãç§ã¯ããããæ©èœãããããããªãã¯ã©ããªæ©èœãæäŸã§ããïŒããšãããããã°ååºäº€æã§ãã
-
ãã£ã³ãã«ãéããããšã¯âŠ
äžåºŠåæåãæžãã°ã
-
toolsïŒç»é²ããã颿°ã®åŒã³åºãïŒ
-
resourcesïŒãã¡ã€ã«ãããŒã¿ååŸïŒ
-
promptsïŒäŒè©±ãã³ãã¬ãŒãã®ååŸïŒ
-
loggingïŒcompletionïŒping
ãªã©ã®ããåããåãã«ãŒã«ã§è¡ããŸãã
-
-
âã©ãã§âéããã¯èªç±ã ããçŸåšã¯stdio, Streamable HTTPãæšæº
JSON-RPCããã©ãŒããããšããŠæ±ºãŸã£ãŠããã ãã§ãéä¿¡ææ®µïŒæšæºå ¥åã»SSEã»WebSocketãªã©ïŒã¯äœã§ãOKãçµæçã«ããµãŒãéçºè ã¯ãMCPããå®ãã°ãç°¡åã«æ©èœãå ¬éã§ããŸããçŸåšã¯ã¹ã¿ã³ããŒããªããæ¹ãšããŠstdioãšStreamable HTTPãèšå®ãããŠããŸãã
MCP ã¢ãŒããã¯ãã£æŠèŠ
MCP ã¯ããã¹ãïŒHostïŒããã¯ã©ã€ã¢ã³ãïŒClientïŒãããµãŒãïŒServerïŒãã®3ã€ã®åœ¹å²ãæ±ãšããŠæãç«ã¡ãŸãã1ã€ã®ãã¹ããè€æ°ã®ã¯ã©ã€ã¢ã³ããäœæããããããã®ã¯ã©ã€ã¢ã³ãã1察1ã§ãµãŒããšéä¿¡ãè¡ããAI æ©èœãæ¡åŒµãããšããæ§é ã§ããã€ã¡ãŒãžãšããŠã¯ããã¹ãããã£ãŠãããããå¿ èŠãªæ°ã ãã¯ã©ã€ã¢ã³ãïŒã»ãã·ã§ã³ïŒãçããããããããç¹å®ã®ãµãŒããšå¯Ÿè©±ããŠããç¶æ ã§ãã
âLINEâã«äŸãããš
ã¹ããã® ã¡ãã»ã³ãžã£ãŒã¢ã㪠LINE ã飿³ãããšåãããããã§ãã
- ãã¹ã (Host) = LINE ã¢ããªæ¬äœïŒMCP ã§ã¯ LLM ãªã©ã® AI æ©èœãæã£ãäžå¿çååšïŒ
- ã¯ã©ã€ã¢ã³ã (Client) = åã ã® âãã£ãããŠã£ã³ããŠâ ã âäŒè©±ã¹ã¬ããâã1ã€ã®ã¹ã¬ããã¯1人ã®çžæïŒãµãŒãïŒãšã®ã¿éä¿¡ãã
- ãµãŒã (Server) = âåéâãâã°ã«ãŒãâãªã©ãã¡ãã»ãŒãžãåãåã£ãŠè¿äºãããçžæ
1ã€ã® LINE ã¢ããªïŒãã¹ãïŒãè€æ°ã®åéïŒãµãŒãïŒãšãã£ãããããéãå éšçã«ã¯çžæããšã«1察1ã®ãã£ããã»ãã·ã§ã³ïŒã¯ã©ã€ã¢ã³ãïŒãååšããŸããMCP ãåãæ§é ã§ããã¹ããã¯ã©ã€ã¢ã³ããéããŠãµãŒããšéä¿¡ããAI æ©èœãæ¡åŒµããŠãããŸãã
3ã€ã®ç»å Žäººç©ã®åœ¹å²
1. ãã¹ã (Host)
ãã¹ã㯠MCP å šäœã®äžæ¢ ãšãªãååšã§ã以äžã®åœ¹å²ãæ ããŸãã
-
è€æ°ã®ã¯ã©ã€ã¢ã³ãïŒã»ãã·ã§ã³ïŒãçæã管ç
ãµãŒãããšã«å¿ èŠãªã»ãã·ã§ã³ïŒã¯ã©ã€ã¢ã³ãïŒãäœããã»ãã¥ãªãã£ãæš©éãçµ±æ¬ããŸãã
-
AIïŒLLMïŒãšã®é£æºã»ææ®
AI ã¢ãã«ã«ã©ã®ãããªããŒã¿ãæ©èœã掻çšãããããå¶åŸ¡ããå¿ èŠã«å¿ããŠãµãŒããžãªã¯ãšã¹ããéãããæç€ºããŸãã
-
è€æ°ãµãŒãããã®æ å ±ãéçŽããAI ã«æŽ»çš
åã¯ã©ã€ã¢ã³ããååŸããæ å ±ãçµã¿åãããŠãAI ãæé©ã«å©çšã§ãã圢ã«ãŸãšããŸãã
2. ã¯ã©ã€ã¢ã³ã (Client)
ã¯ã©ã€ã¢ã³ã㯠âç¹å®ã®ãµãŒããšéä¿¡ããããã®1察1ã®ã»ãã·ã§ã³â ãæ åœããŸããMCP ã§ã¯ä»¥äžã®ããã«åäœããŸãã
-
1ã€ã®ã¯ã©ã€ã¢ã³ãã¯1ã€ã®ãµãŒãå°çš
äŸãã°ãDB ãµãŒãçšã®ã¯ã©ã€ã¢ã³ããã翻蚳ãµãŒãçšã®ã¯ã©ã€ã¢ã³ãããšãã£ã圢ã§ã1察1ã®éä¿¡ãè¡ããŸãã
-
JSON-RPC ã§ã®ããåã
initializeãcall_tool,read_resourceãªã©ã®ã¡ãœããã䜿ããJSON-RPC ããŒã¹ã§ãµãŒããšåæ¹åéä¿¡ãè¡ããŸãã -
éç¥ãã€ãã³ããžã®å¯Ÿå¿
ãã°éç¥ãªã©ã®éç¥ããµãŒãããå±ããå Žåã¯ãã¯ã©ã€ã¢ã³ãåŽãåãåããå¿ èŠãªããã¹ããžãã£ãŒãããã¯ããŸãã
ã¯ã©ã€ã¢ã³ãå®è£ äžã®ãã€ã³ã
ã¯ã©ã€ã¢ã³ãã¯MCPãæäŸããå®è£ ãæ¯èŒçã«å°ãªããåºæ¬çã«Session(ãããã³ã«å±€)ãšãstdio_client, sse_client, websocket_clientãçšæãããŠããããã§ãã
-
äœã¬ãã«å±€:
ClientSession(mcp\client\session.py)- JSON-RPCã¡ãã»ãŒãžãå®éã«çæãéä¿¡ããµãŒãã®ã¬ã¹ãã³ã¹ãåŸ ã€ã
-
initializeãtools/callãªã©ã®ã³ã¢æäœãããŒã¬ãã«ã§æ±ãã
-
ãã©ã³ã¹ããŒã
- æšæºå ¥åºåïŒstdioïŒã SSEïŒHTTPçµç±ïŒãªã©ã䜿ããJSON圢åŒã®ã¡ãã»ãŒãžãããåãã
3. ãµãŒã (Server)
ãµãŒã㯠AI ãæŽ»çšã§ããæ©èœãããŒã¿ãå ¬é ããååšã§ãã
-
ããŒã«ããªãœãŒã¹ã®æäŸ
äŸãã°ã翻蚳æ©èœããããŒã¿ããŒã¹ç §äŒæ©èœãããã¡ã€ã«èªã¿æžãããªã©ãå€çš®å€æ§ãªæ©èœããšã³ããã€ã³ããšããŠå ¬éããã¯ã©ã€ã¢ã³ãçµç±ã§åŒã³åºãããŸãã
-
ãã¹ããä»ãµãŒãã®æ å ±ã«ã¯çŽæ¥ã¢ã¯ã»ã¹ããªã
ã»ãã¥ãªãã£ãä¿ã€ãããèªåã«äžããããæš©éãšãªãœãŒã¹ã®ã¿ãæ±ããä»ãµãŒãããã¹ãå éšããŒã¿ã«ã¯çŽæ¥è§ŠããŸããã
-
å¿ èŠã«å¿ãã LLM 掻çš
å Žåã«ãã£ãŠã¯ã¯ã©ã€ã¢ã³ãçµç±ã§ãã¹ãã® LLMïŒAIïŒã«åãåãããããšãå¯èœã§ãïŒäŸ: 翻蚳ãµãŒããããã«å¥ã®èšèªåŠçããã¹ãã«äŸé Œããããªã©ïŒã
ãµãŒãå®è£ äžã®ãã€ã³ã
ãµãŒãã¯æ¯èŒçã«è²ããªå®è£ ãæäŸãããŠããŠãäœã¬ãã«ã®Serverãšããããã©ããã³ã°ããFastMCPãçšããŠéçºãå¯èœã§ãã
-
äœã¬ãã«å±€:
Server-
@server.call_toolã@server.list_tools()ãªã©ã®ãã³ã¬ãŒã¿ã§ãªã¯ãšã¹ãçš®å¥ã«å¯Ÿå¿ãããã³ãã©ãå®çŸ©ãã - âã©ã®ã¡ãœãããæ¥ããã©ã®é¢æ°ãåãããâ ã管çããã
-
-
å
éšçãªæ¥ç¶ç®¡ç:
ServerSession- æ°ããªã¯ã©ã€ã¢ã³ãæ¥ç¶ããšã«ã»ãã·ã§ã³ãçæããJSON-RPCã¡ãã»ãŒãžãå®éã«åãåã£ãŠåŠçããã
- ã¯ã©ã€ã¢ã³ã1ã€ã«ã€ã1ã€ã®
ServerSessionã察å¿ããServerã«ç»é²ããããã³ãã©ãåŒã³åºããŠçµæãè¿ãã
-
é«ã¬ãã«ãã¬ãŒã ã¯ãŒã¯
-
FastMCPãªã©ã䜿ãã° SSE ã«ãŒããããŒã«ç®¡çãèªåã»ããã¢ããããããµãŒãåŽã®å®è£ ãã·ã³ãã«ã«æžãã
-
-
ãã©ã³ã¹ããŒã
- ã¯ã©ã€ã¢ã³ããšåæ§ãstdio ã SSE ã䜿ããJSON圢åŒã®ãªã¯ãšã¹ãïŒã¬ã¹ãã³ã¹ãããåãããã
ãã¶ã€ã³åå
-
ãµãŒãã¯ã§ããã ãã·ã³ãã«ã«
倧ããªãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã¯ãã¹ããæ ãäžæ¹ããµãŒãã¯å¿ èŠãªæ©èœã ãã«ç¹åããŠæ§ç¯ããŸãã
-
é«ãçµã¿åããæ§
å ±éãããã³ã«ã§ã€ãªããããããµãŒããç©ã¿æšã®ããã«å¢ãããŠããã ãã§æ°ãã AI æ©èœãåã蟌ããŸãã
-
èŠéãéå®
ã»ãã¥ãªãã£äžãåãµãŒãã¯ãããŸã§èªåã®æš©éå ã§å®çµãããµãŒãå士ã¯çŽæ¥ããŒã¿ãå ±æããŸãããå šäœææ¡ã¯ãã¹ãåŽã«å§ããããŸãã
-
段éçãªæ©èœè¿œå
ã³ã¢æ©èœã¯æå°éã«çããæ¡åŒµæ©èœã¯ âcapability negotiationïŒæ©èœäº€æžïŒâ ã§åæãåããªãã远å ããŸããããã«ããåŸæ¹äºææ§ãä¿ã¡ã€ã€ããããã³ã«ãæé·ãããããŸãã
ç»å Žäººç©ã®ãŸãšã
- MCP ã®ã¢ãŒããã¯ãã£ã§ã¯ããã¹ããå šäœã®ææ®ãå·ããå¿ èŠã«å¿ããŠè€æ°ã®ã¯ã©ã€ã¢ã³ãïŒã»ãã·ã§ã³ïŒãç«ã¡äžããããããããµãŒããš1察1ã§éä¿¡ãã圢ãåã£ãŠããŸãã
- ããããããšã§ãµãŒãã¯åæ©èœã«çµã£ãŠå®è£ å¯èœã«ãªãããã¹ãã¯å¿ èŠãªã ãã»ãã·ã§ã³ãå¢ãããŠèªç±ã«æ©èœãåäœã§ãããããAI ã·ã¹ãã ãæ¡åŒµãããããªããŸãã
ãµãŒããšã¯ã©ã€ã¢ã³ããè©±ãæ¹æ³ã®ã³ã¢èŠçŽ

äžèšã§ã¯ç»å Žäººç©ã«ã€ããŠèª¿ã¹ãŸãããæ¬¡ã¯ãã®ç»å Žäººç©ãè©±ãæ¹æ³ã«ã€ããŠè§£èª¬ããŸãã
ã¯ã©ã€ã¢ã³ããšãµãŒãã¯ã©ã®ãããªãã©ãŒãããã§è©±ãããæ±ºãŸã£ãŠããŸããããããããããã³ã«å±€ãã«ãªããŸããå®éã«è©±ããã£ã³ãã«ãããªãã¡é»è©±ã§è©±ãããã¡ãŒã«ã§è©±ããã衚ãã®ãããã©ã³ã¹ããŒãå±€ãã§ãããããŠã話ãå å®¹ãæ±ºããããŠããŠãããããã¡ãã»ãŒãžã¿ã€ããã«ãªããŸãã
1. ãããã³ã«å±€ïŒã»ãã·ã§ã³ïŒ
äœããããšããïŒ
ããã§ãããã³ã«ãå®çŸ©ããŸãã
- ã¡ãã»ãŒãžã®æ çµã¿ïŒJSON-RPC æ§é ïŒãå®çŸ©ãã察å¿ãããªã¯ãšã¹ããšã¬ã¹ãã³ã¹ãçµã³ã€ããã
-
ServerSession/ClientSessionãªã©ã®ã¯ã©ã¹ã§ããµãŒããšã¯ã©ã€ã¢ã³ãããããã®ããåãã管çã - éåä¿¡ã¯ãMCPã¡ãã»ãŒãžïŒRequests / Results / Errors / NotificationsïŒããšããŠæ±ãããã»ãã·ã§ã³ããããè§£æã»å¯Ÿå¿ä»ãããã
ã©ãåãïŒ
- ã¯ã©ã€ã¢ã³ãåŽã¯
ClientSessionã䜿ããâãªã¯ãšã¹ããäœã£ãŠéãïŒã¬ã¹ãã³ã¹ãåãåãâ ãããŒãæŽçã - ãµãŒãåŽã¯
ServerSessionã䜿ããâãªã¯ãšã¹ããåãåããã³ãã©ãåŒã¶ïŒçµæãè¿ãâ ãããŒã管çã
2. ãã©ã³ã¹ããŒãå±€
äœããããšããïŒ
- å®éã®ãã€ãåããã©ãã§ããã©ãéããããæ ãã
- MCPã§ã¯ stdio ãš Streamable HTTP ã® 2 çš®é¡ãæšæºçã
- ã»ãã·ã§ã³ã¯ âJSON-RPC ã¡ãã»ãŒãžãçºè¡â ãããã©ã³ã¹ããŒã㯠âãããå®éã«éåä¿¡â ããã€ã¡ãŒãžã
å ·äœäŸ
- stdio transport: æšæºå ¥åºåã®æååè¡ã JSON ãšããŠã»ãã·ã§ã³ã«äŸçµŠãããŒã«ã«ããã»ã¹éåãã
- HTTP + SSE transport: ãµãŒãããã¯ã©ã€ã¢ã³ããžã¯ SSE ã€ãã³ããã¯ã©ã€ã¢ã³ããããµãŒããžã¯ HTTP POST ãšãã圢ã§ã¡ãã»ãŒãžäº€æã
3. ã¡ãã»ãŒãžã¿ã€ã
MCPã§ã¯ãJSON-RPC ã«åºã¥ããŠ4çš®é¡ã®ã¡ãã»ãŒãžãããåããããã
-
Requests
ãå¿çãå¿ èŠããªåŒã³åºãã
methodãšparamsãidãæã¡ããµãŒããã¯ã©ã€ã¢ã³ãã«äœããã®åŠçãèŠæ±ããã -
Results
Requests ã«å¯Ÿãããæåå¿çããJSON-RPCäž
resultãã£ãŒã«ããè¿ãã -
Errors
Requests ã倱æããéã«è¿ããšã©ãŒæ å ±ã
code,message,dataãªã©ãæã€ã -
Notifications
å¿çäžèŠã®âäžæ¹åã¡ãã»ãŒãžâããã°éç¥ã鲿éç¥ãªã©ã«äœ¿ãããã
ã³ãã¯ã·ã§ã³ã®ã©ã€ããµã€ã¯ã«
MCPã¯ã¯ã©ã€ã¢ã³ããšãµãŒããéä¿¡ããæã«ã©ã€ããµã€ã¯ã«ãæèšããŠããŸãã
ãããå®ããªããšããšã©ãŒã«ãªããŸãã
-
Initialization
- ã¯ã©ã€ã¢ã³ãã
initializeãªã¯ãšã¹ãã§ããŒãžã§ã³ãæ©èœæ å ±ãéã - ãµãŒãã察å¿ããŒãžã§ã³ãæ©èœãè¿ã
- ã¯ã©ã€ã¢ã³ãã
initializedéç¥ã§å¿ç - ããã§ãåæåæžã¿ãç¶æ ãšãªãã以éã®ããåããå¯èœã«ãªã
- ã¯ã©ã€ã¢ã³ãã
-
Message Exchange
- Request-Response: ã©ã¡ãããã§ããªã¯ãšã¹ããéããçžæãã¬ã¹ãã³ã¹ãè¿ã
- Notifications: ã©ã¡ãããã§ãäžæ¹åã¡ãã»ãŒãžãéãã
-
Termination
-
Clean shutdownïŒ
close()ãªã©ïŒ -
ãããã¯ãŒã¯åæ
-
ãšã©ãŒç¶æ
ãªã©ã«ãã£ãŠæ¥ç¶ãçµäºãã
-
以äžã MCP ãæ¯ããäž»èŠãªã³ã³ããŒãã³ãã®æµãã§ãããããã³ã«å±€ãäžå¿ãšãªãããã©ã³ã¹ããŒãã§å®éã®å ¥åºåãè¡ãããµãŒãïŒã¯ã©ã€ã¢ã³ãããã®ããã§ããŒã«ããªãœãŒã¹ãªã©ã®æ©èœãããåãããæ§é ãæŽããããŠããŸãã
å®éã«äœã£ãŠã¿ãã
以äžã§ã¯ãMCP ãµãŒããšMCP ã¯ã©ã€ã¢ã³ãããããããå®éã«åããããã®æå°éã®ã³ãŒããšãå éšã³ã³ããŒãã³ãã®ã«ã¹ã¿ãã€ãºæ¹æ³ããŸãšããŸãã
ãMCP ã«ã¯ãããã³ã«å±€ããã©ã³ã¹ããŒãå±€ãªã©ãããããããããšèšã£ãŠããå®éã«å®è£ ããæã¯è²ããªäŸ¿å©ããŒã«ãããã®ã§ãç°¡åã«å®è£ ã§ããŸã
æå°ãµã³ãã«ãµãŒã (mini_server.py)
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("hello")
@mcp.tool()
async def hello_world(name: str) -> str:
return f"Hello, {name}!"
if __name__ == "__main__":
# stdioã§éä¿¡
mcp.run(transport="stdio")
ãã€ã³ã:
-
FastMCP("hello")ã§ãµãŒããäœæãã@mcp.tool()ã§è¶ ã·ã³ãã«ãªããŒã«ã1ã€ç»é²ã -
mcp.run(transport="stdio")ã«ãããstdioããŒã¹ã§ã¯ã©ã€ã¢ã³ããšã®éä¿¡ãè¡ãããã
æå°ãµã³ãã«ã¯ã©ã€ã¢ã³ã (mini_client.py)
import asyncio
from mcp.client.stdio import stdio_client, StdioServerParameters
from mcp import ClientSession
async def main():
# (A) ãµãŒãã¹ã¯ãªããã python ã§èµ·å
server_params = StdioServerParameters(command="python", args=["mini_server.py"])
# (B) async with ã䜿ã£ãŠ stdio_client ãèµ·åã»ç®¡ç
async with stdio_client(server_params) as (read_stream, write_stream):
async with ClientSession(read_stream, write_stream) as session:
# Initialize the connection
await session.initialize()
# (C) ããŒã«åŒã³åºã: hello_world
result = await session.call_tool("hello_world", {"name": "MCP"})
print("Tool result:", result.content)
if __name__ == "__main__":
asyncio.run(main())
ãã€ã³ã:
-
(A) ã§ã
mini_server.pyã Python ã§å®è¡ããstdin/stdout ãã€ãªãã ãã©ã³ã¹ããŒããã確ç«ã -
(B) ã§
ClientSessionã䜿ããinitialize()ãåŒãã§ãµãŒããšåæåãå®äºã -
(C)
call_tool("hello_world", {"name": "MCP"})ã§ãµãŒãã®hello_worldãåãããHello, MCP!ããšãã£ãã¬ã¹ãã³ã¹ãååŸã
ãŠãŒã¶ãå®è£ ãã¹ããšãã vs. MCPã®å éšããžãã¯
å®è£ è ãæãå ¥ããéšå
-
ããŒã«ïŒãªãœãŒã¹ïŒããã³ããã®ç»é²
ããšãã°ããã®HTTP APIãåŒã¶ããŒã«ããããŒã«ã«ãã¡ã€ã«ãè¿ããªãœãŒã¹ããå®åæãè¿ãããã³ããããªã©ããMCPãµãŒãã«ç»é²ããã
-
ã©ã®ãã©ã³ã¹ããŒãã䜿ãã
äŸ: æšæºå ¥åºå (
stdio) ã Streamable HTTP ã䜿ããããããã¯ç¬èªå®è£ ãããã -
ãµãŒãã®ååãããŒãžã§ã³
weatherãµãŒããªããname="weather"ã®ããã«æå®ããŠãããšã¯ã©ã€ã¢ã³ããžã®æ å ±ãšããŠè¿ãããã
MCPå éšã§èªååããããã®
-
ServerSessionïŒãããã³ã«å±€ïŒ
ãªã¯ãšã¹ããæ¥ãã JSON-RPC ãšããŠè§£æâ察å¿ãããã³ã¬ãŒã¿ä»ã颿°ãåŒã¶âã¬ã¹ãã³ã¹ãæ§ç¯âŠãšããæµãã
æ®æ®µã¯ããŸãæèããã«ã
@server.tool()ã®ãããªãã³ã¬ãŒã¿ã ãæžãã°OKã -
éä¿¡ãŸãã (Transport)
ããšãã°
mcp.run(transport="stdio")ãšæžãã ãã§ãæšæºå ¥åºåãçšããåä¿¡âããŒã¹âåŒã³åºãâå¿ç ãè£ã§è¡ãããã
MCPã®æŠèŠã調ã¹ãŠã¿ãŸããã
æŠå¿µãçè§£ã§ãããšãä»ã®MCPãµãŒãã¹ã®å©çšã¯ãã¡ãããèªåèªèº«ã®MCPãµãŒããäœã£ãããããããã§ãããšæããŸãã
å®éã®å
¬åŒãµã€ãã®ãµã³ãã«ã³ãŒããåèã«ãªããŸãã®ã§ãåèã«ããŠãã ããã
远å
SSEããªãã·ã§ãã«ã«ãªãStreamable HTTPãæšèŠãããããã«ãªã£ããããã§ããå
¬åŒããŒã ããŒãžãªã©ã®ããã¥ã¡ã³ãã¯ãŸã SSEã®æ
å ±ã«ãªã£ãŠããŸãã
é²åãæ©ããæ¯æ¥ã®ããã«å
å®¹ãæŽæ°ãããŠããŸããæ¬èšäºã®å
容ã¯2025-03-26ã®å
容ãããŒã¹ã«ããŠããŸãã
Discussion