ð± MCP Server for iOS Simulator
ããŒã«ã«ð± MCP Server for iOS Simulator ã«ã€ããŠ
appium-ios-simulator ãš MCP TypeScript SDK ãããŒã¹ã«æ§ç¯ããããiOS ã·ãã¥ã¬ãŒã¿ãŒãæäœããããã® MCP ãµãŒããŒã§ããClaude Desktop ãªã©ã® MCP ã¯ã©ã€ã¢ã³ããã stdio çµç±ã§ã·ãã¥ã¬ãŒã¿ãŒãããã°ã©ã ãã管çãããéçºè åãã§ãã
äž»ãªæ©èœ
- 01ã·ãã¥ã¬ãŒã¿ãŒã€ã³ã¹ã¿ã³ã¹ã®èµ·åã忢ã管ç
- 02UDID ã«ããçŽæ¥çãªæäœ
- 03ã¢ããªã®ã€ã³ã¹ããŒã«ãèµ·åãçµäº
- 04ã·ãã¥ã¬ãŒã¿ãŒç»é¢ã®ã¹ã¯ãªãŒã³ã·ã§ããååŸ
- 05æå®åº§æšãžã®ã¿ããæäœ
- 06è€æ°ã®ã·ãã¥ã¬ãŒã¿ãŒã»ãã·ã§ã³ã®åæå©çš
掻çšã·ãŒã³
- 01Claude Desktop ããç¹å®ã® iOS ã·ãã¥ã¬ãŒã¿ãŒãèµ·å
- 02ãã¹ã察象ã¢ããªã®ã€ã³ã¹ããŒã«ãšèµ·åã®èªåå
- 03ç»é¢ç¢ºèªã®ããã®ã·ãã¥ã¬ãŒã¿ãŒç»é¢ãã£ããã£
MCP 察å¿
stdio ãã©ã³ã¹ããŒãã§åäœãã MCP ãµãŒããŒãšããŠãã·ãã¥ã¬ãŒã¿ãŒã®ç®¡çãšæäœã®ããŒã«ã MCP ã¯ã©ã€ã¢ã³ãã«æäŸããŸãã
èšå®
ããŒã«ã«ãµãŒããŒã®èšå®ã¯ã©ã®ã¯ã©ã€ã¢ã³ãã§ãå ±éã§ããã³ããŒããŠã¯ã©ã€ã¢ã³ãã® MCP èšå®ãã¡ã€ã«ã«è²Œãä»ããŠãã ããã
ããŒã«
ããŒã«ã«ãµãŒããŒã®ããŒã«ã¯ãã·ã³äžã§èµ·åããŠåããŠååŸã§ããŸããã¡ã³ãããŒã¯ãŸã ããŒã«äžèЧãæäŸããŠããŸããã
詳现
ð± iOS Simulator åã MCP ãµãŒããŒ
appium-ios-simulator ãåºç€ãšããMCP TypeScript SDK ãå©çšããŠæ§ç¯ããããiOS ã·ãã¥ã¬ãŒã¿ãŒåã Model Context ProtocolïŒMCPïŒãå®è£ ãããµãŒããŒã§ãã
ð æŠèŠ
ãã®ãããžã§ã¯ãã¯ãiOS ã·ãã¥ã¬ãŒã¿ãŒãš Model Context Protocol ã®éãã€ãªããiOS ã·ãã¥ã¬ãŒã¿ãŒã®ã€ã³ã¹ã¿ã³ã¹ãšæšæºåãããéä¿¡ãè¡ããããã«ããŸããMCP ãããã³ã«ã掻çšããããŸããŸãªç°å¢ã§äžè²«ããã€ã³ã¿ãŒãã§ãŒã¹ãå®çŸããªãããiOS ã·ãã¥ã¬ãŒã¿ãŒãããã°ã©ã ããå¶åŸ¡ã§ããŸãããã®ãµãŒããŒã¯ stdio ããã©ã³ã¹ããŒãæ©æ§ãšããŠäœ¿çšãããããClaude Desktop ããã®ä»ã® MCP 察å¿ã¯ã©ã€ã¢ã³ããšã®é£æºã«æé©ã§ãã
ð¬ ãã¢

Claude AI Desktop ã䜿çšã㊠iOS ã·ãã¥ã¬ãŒã¿ãŒãèµ·åããæ¹æ³ã瀺ããã¢
ðïž ã¢ãŒããã¯ãã£
ãµãŒããŒã¯æ¬¡ã® 3 ã€ã®äž»èŠã³ã³ããŒãã³ãã§æ§æãããŠããŸãã
- ð ã·ãã¥ã¬ãŒã¿ãŒç®¡çã¬ã€ã€ãŒ - iOS ã·ãã¥ã¬ãŒã¿ãŒã®ã©ã€ããµã€ã¯ã«ãšæäœã管çããŸã
- ð MCP ãããã³ã«ã®å®è£ - stdio ãã©ã³ã¹ããŒãã䜿çšããTypeScript SDK ã§ Model Context Protocol ãå®è£ ããŸã
- ð ãã¬ãŒã³ã³ããŒãã³ã - stdio ãã©ã³ã¹ããŒãã«å¹²æžããªãããã¡ã€ã«ããŒã¹ã®ãã®ã³ã°ãæäŸããŸã
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â MCP Protocol â â Stdio â â Simulator â
â Implementation ââââââ†Transport ââââââ†Management â
â â â â â Layer â
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â² â²
â â
⌠âŒ
âââââââââââââââââââ âââââââââââââââââââ
â MCP Client â â iOS Simulator â
â (e.g. Claude) â â â
âââââââââââââââââââ âââââââââââââââââââ
âš æ©èœ
- ð iOS ã·ãã¥ã¬ãŒã¿ãŒã®ã€ã³ã¹ã¿ã³ã¹ãèµ·åã忢ã管çããŸã
- ð ã·ãã¥ã¬ãŒã¿ãŒãèµ·åããã³ã·ã£ããããŠã³ããŸã
- ð² ã·ãã¥ã¬ãŒã¿ãŒã«ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããŠèµ·åããŸã
- ðž ã·ãã¥ã¬ãŒã¿ãŒç»é¢ã®ã¹ã¯ãªãŒã³ã·ã§ãããæ®åœ±ããŸã
- ð 座æšãæå®ããŠã¿ãããå®è¡ããŸã
- ð è€æ°ã®ã·ãã¥ã¬ãŒã¿ãŒã»ãã·ã§ã³ãåæã«ãµããŒãããŸã
- ð ã³ã³ãœãŒã«åºåãè¡ãããå æ¬çãªãã¡ã€ã«ããŒã¹ã®ãã®ã³ã°ãæäŸããŸã
- ð¡ïž ãšã©ãŒã«åŒ·ãåäœãå®çŸããŸã
ð åææ¡ä»¶
- ð¢ Node.jsïŒv16 以éïŒ
- ð macOSïŒiOS ã·ãã¥ã¬ãŒã¿ãŒã«å¿ èŠïŒ
- ð ïž iOS ã·ãã¥ã¬ãŒã¿ãŒãã€ã³ã¹ããŒã«ããã Xcode
- ð TypeScript 4.5 以é
ð§ ã€ã³ã¹ããŒã«
Smithery çµç±ã§ã€ã³ã¹ããŒã«ãã
Smithery çµç±ã§ Claude Desktop åã iOS Simulator Control Server ãèªåçã«ã€ã³ã¹ããŒã«ããã«ã¯ãæ¬¡ã®æé ã«åŸããŸãã
npx -y @smithery/cli install @atom2ueki/mcp-server-ios-simulator --client claude
æåã€ã³ã¹ããŒã«
# Clone the repository
git clone https://github.com/atom2ueki/mcp-server-ios-simulator.git
cd mcp-server-ios-simulator
# Install dependencies
npm install
ð³ Docker
ãµãŒããŒãGlama MCP ãã£ã¬ã¯ããªããã®ä»ã®ã³ã³ãããã¹ãåãã«ããã±ãŒãžåã§ãããããDockerfile ãçšæãããŠããŸãã
docker build -t mcp-server-ios-simulator .
docker run --rm -i mcp-server-ios-simulator
泚: iOS ã·ãã¥ã¬ãŒã¿ãŒã¯ macOS äžã§ã®ã¿å®è¡ããããããLinux ã³ã³ãã㯠MCP ããã»ã¹ããã¹ãã㊠stdio ã§å¿çã§ããŸãããå®éã®ã·ãã¥ã¬ãŒã¿ãŒãæäœããããšã¯ã§ããŸããããã®ã³ã³ããã¯ãç§»æ€æ§ã®ç¢ºèªããmacOS ãã¹ããšé£æºãããªã¢ãŒã MCP ç°å¢ãæ³å®ããŠããŸãã
âïž èšå®
èšå®ã¯ src/config.ts ãã¡ã€ã«ã§è¡ããŸãã
const config = {
simulator: {
defaultDevice: process.env.SIMULATOR_DEFAULT_DEVICE || 'iPhone 16',
defaultOS: process.env.SIMULATOR_DEFAULT_OS || '18.2',
timeout: parseInt(process.env.SIMULATOR_TIMEOUT || '30000', 10),
}
};
ç°å¢å€æ°ãèšå®ããããšã§ããããã®èšå®ãã«ã¹ã¿ãã€ãºã§ããŸãã
SIMULATOR_DEFAULT_DEVICE=iPhone 16
SIMULATOR_DEFAULT_OS=18.2
SIMULATOR_TIMEOUT=30000
ð äœ¿çšæ¹æ³
ðš ãµãŒããŒã®ãã«ããšèµ·å
# Build the project
npm run build
# Start the server
npm start
ð§° MCP ããŒã«
ãã®ãµãŒããŒã§ã¯ãiOS ã·ãã¥ã¬ãŒã¿ãŒãå¶åŸ¡ããããã® 2 ã€ã®ç°ãªãæ¹æ³ãæäŸããŠããŸãã
ð± ã·ãã¥ã¬ãŒã¿ãŒã®çŽæ¥ç®¡çïŒæšå¥šïŒ
ãããã®ããŒã«ã¯ã·ãã¥ã¬ãŒã¿ãŒã® UDID ãçŽæ¥äœ¿çšãããããã»ãã·ã§ã³ãç¶æããå¿ èŠã¯ãããŸããã
- ð
list-available-simulators- å©çšå¯èœãªãã¹ãŠã®ã·ãã¥ã¬ãŒã¿ãŒãšãã® UDID ãäžèŠ§è¡šç€ºããŸã - â¶ïž
boot-simulator-by-udid- UDID ãæå®ããŠã·ãã¥ã¬ãŒã¿ãŒãçŽæ¥èµ·åããŸã - â¹ïž
shutdown-simulator-by-udid- UDID ãæå®ããŠã·ãã¥ã¬ãŒã¿ãŒãçŽæ¥ã·ã£ããããŠã³ããŸã - ð
list-booted-simulators- çŸåšèµ·åäžã®ãã¹ãŠã®ã·ãã¥ã¬ãŒã¿ãŒãäžèŠ§è¡šç€ºããŸã
ãã®æ¹æ³ãé©ããŠããå ŽåïŒ ã·ãã¥ã¬ãŒã¿ãŒãçŽæ¥èµ·åããŠäœ¿çšããã·ã£ããããŠã³ããã ãã®å Žåã«äœ¿çšããŸãã
ð± ã»ãã·ã§ã³ããŒã¹ã®ç®¡çïŒäžçŽïŒ
ãããã®ããŒã«ã§ã¯ãã«ã¹ã¿ã ã»ãã·ã§ã³ ID ã䜿ã£ãŠã·ãã¥ã¬ãŒã¿ãŒã远跡ããã»ãã·ã§ã³ã¬ã€ã€ãŒã䜿çšããŸãã
- ð
list-simulator-sessions- ã¢ã¯ãã£ããªã·ãã¥ã¬ãŒã¿ãŒã»ãã·ã§ã³ããã¹ãŠäžèŠ§è¡šç€ºããŸã - â
create-simulator-session- æ°ããã·ãã¥ã¬ãŒã¿ãŒã»ãã·ã§ã³ãäœæããŸã - â
terminate-simulator-session- ã»ãã·ã§ã³ãçµäºããŸãïŒã·ãã¥ã¬ãŒã¿ãŒãã·ã£ããããŠã³ããã¯ãªãŒã³ã¢ããããŸãïŒ - ð
create-and-boot-simulator- æ°ããã·ãã¥ã¬ãŒã¿ãŒã»ãã·ã§ã³ãäœæããŠèµ·åããŸã - â¶ïž
boot-simulator- æ¢åã®ã»ãã·ã§ã³ã®ã·ãã¥ã¬ãŒã¿ãŒãèµ·åããŸã - â¹ïž
shutdown-simulator- æ¢åã®ã»ãã·ã§ã³ã®ã·ãã¥ã¬ãŒã¿ãŒãã·ã£ããããŠã³ããŸã
ãã®æ¹æ³ã䜿ãå Žé¢ïŒ ã·ãã¥ã¬ãŒã¿ãŒã®ã¡ã¿ããŒã¿ã远跡ããå¿ èŠãããå Žåãã«ã¹ã¿ã ID ã§ã·ãã¥ã¬ãŒã¿ãŒãåç §ããå ŽåããŸãã¯ããé«åºŠãªç®¡çæ©èœã䜿ãå Žåã§ãã
ð² ã¢ããªã±ãŒã·ã§ã³ç®¡ç
- ð¥
install-app- ã·ãã¥ã¬ãŒã¿ãŒã«ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããŸã - ð
launch-app- ã·ãã¥ã¬ãŒã¿ãŒã§ã¢ããªã±ãŒã·ã§ã³ãèµ·åããŸã - ð
terminate-app- å®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ãçµäºããŸã
ð±ïž æäœããŒã«
- ð·
take-screenshot- ã·ãã¥ã¬ãŒã¿ãŒç»é¢ã®ã¹ã¯ãªãŒã³ã·ã§ãããæ®åœ±ããŸã - ð
tap-coordinate- æå®ãã座æšãã¿ããããŸã
ð€ Claude Desktop ã§ã®äœ¿çšäŸ
-
ãã®ãµãŒããŒã MCP ããŒã«ãšããŠäœ¿çšãããã Claude Desktop ãèšå®ããŸãïŒ
- Claude Desktop ãéããŸã
- èšå® > 詳现ã«ç§»åããŸã
- 次ã®èšå®ããMCP Serversãã»ã¯ã·ã§ã³ã«è¿œå ããŸãïŒ
{ "mcpServers": { "simulator": { "command": "node", "args": [ "/path/to/your/mcp-server-ios-simulator/dist/index.js" ] } } }/path/to/yourãããã®ãªããžããªãã€ã³ã¹ããŒã«ããå®éã®ãã¹ã«çœ®ãæããŸã- èšå®ãä¿åããŠãClaude Desktop ãåèµ·åããŸã
-
æäŸãããŠããããŒã«ã䜿ã£ãŠãClaude Desktop ãã iOS ã·ãã¥ã¬ãŒã¿ãŒãçŽæ¥æäœããŸãïŒ
UDID ãçŽæ¥æå®ããæ¹æ³ïŒæšå¥šïŒïŒ
-
ãŸããClaude ã«å©çšå¯èœãªã·ãã¥ã¬ãŒã¿ãŒã®äžèЧã衚瀺ããããäŸé ŒããŸãïŒ
"å©çšå¯èœãª iOS ã·ãã¥ã¬ãŒã¿ãŒããã¹ãŠè¡šç€ºããŠ" -
次ã«ãUDID ã䜿ã£ãŠç¹å®ã®ã·ãã¥ã¬ãŒã¿ãŒãèµ·åããŸãïŒ
"UDID 5272EA61-5796-4372-86FE-3B33831D5CC1 ã® iOS ã·ãã¥ã¬ãŒã¿ãŒãèµ·åããŠ" -
çµäºããããåã UDID ã䜿ã£ãŠã·ã£ããããŠã³ããŸãïŒ
"UDID 5272EA61-5796-4372-86FE-3B33831D5CC1 ã®ã·ãã¥ã¬ãŒã¿ãŒãã·ã£ããããŠã³ããŠ"
å€ãã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãUDID ãçŽæ¥æå®ããæ¹æ³ã®ã»ããã·ã³ãã«ã§ä¿¡é Œæ§ãé«ããªããŸãã
ã»ãã·ã§ã³ããŒã¹ã®æ¹æ³ïŒäžçŽïŒïŒ ã»ãã·ã§ã³è¿œè·¡ã®é«åºŠãªæ©èœãå¿ èŠãªå Žåã«ã®ã¿ããã®æ¹æ³ã䜿çšããŠãã ããã
"Create a new simulator session for iPhone 16 Pro with iOS 18.2" "Boot the simulator for session abc-123" "Take a screenshot of the simulator for session abc-123" "Terminate the simulator session abc-123" -
ðšâð» éçº
ð ãããžã§ã¯ãæ§æ
src/
âââ simulator/ # Simulator management layer
âââ mcp/ # MCP protocol implementation
âââ bridge/ # Bridge component
âââ utils/ # Utility functions including logger
âââ config.ts # Configuration handling
âââ index.ts # Entry point
ðš ãããžã§ã¯ãã®ãã«ã
# Install development dependencies
npm install
# Run TypeScript compiler
npm run build
ð ã©ã€ã»ã³ã¹
ãã®ãããžã§ã¯ã㯠MIT ã©ã€ã»ã³ã¹ã®äžã§ã©ã€ã»ã³ã¹ãããŠããŸãã詳现ã«ã€ããŠã¯ãLICENSE ãã¡ã€ã«ãåç §ããŠãã ããã
ð è¬èŸ
- ð± iOS ã·ãã¥ã¬ãŒã¿ãŒã®æäœæ©èœãæäŸãã appium-ios-simulator
- ð ãããã³ã«ä»æ§ãš TypeScript SDK ãæäŸãã Model Context Protocol
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã