From 62a5f9a226c08e71e303c5cee1c49133074522a6 Mon Sep 17 00:00:00 2001 From: Henry Mao <1828968+calclavia@users.noreply.github.com> Date: Fri, 24 Jan 2025 00:45:48 +0800 Subject: [PATCH 1/3] Add Dockerfile --- Dockerfile | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e96379e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile +# Use the Node.js image as the base image +FROM node:18-alpine AS builder + +# Set the working directory inside the Docker image +WORKDIR /app + +# Copy package.json and package-lock.json to the working directory +COPY package.json package-lock.json ./ + +# Install the dependencies +RUN npm install + +# Copy the rest of the application source code to the working directory +COPY src ./src +COPY tsconfig.json ./ + +# Build the TypeScript code +RUN npm run build + +# Use a smaller Node.js image for the final release +FROM node:18-alpine AS release + +# Set the working directory +WORKDIR /app + +# Copy the built application from the builder stage +COPY --from=builder /app/dist /app/dist +COPY --from=builder /app/package.json /app/package-lock.json /app/node_modules ./ + +# Define the environment variable if necessary (adjust according to the app's requirements) +ENV NODE_ENV=production + +# Define the command to run the application +ENTRYPOINT ["node", "dist/src/index.js"] \ No newline at end of file From 4354cb8172b9ca906a3e9cfdaf6233a9847fd3b9 Mon Sep 17 00:00:00 2001 From: Henry Mao <1828968+calclavia@users.noreply.github.com> Date: Fri, 24 Jan 2025 00:45:49 +0800 Subject: [PATCH 2/3] Add Smithery configuration --- smithery.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 smithery.yaml diff --git a/smithery.yaml b/smithery.yaml new file mode 100644 index 0000000..32764ce --- /dev/null +++ b/smithery.yaml @@ -0,0 +1,12 @@ +# Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml + +startCommand: + type: stdio + configSchema: + # JSON Schema defining the configuration options for the MCP. + type: object + properties: {} + commandFunction: + # A function that produces the CLI command to start the MCP on stdio. + |- + (config) => ({command: 'node', args: ['dist/src/index.js'], env: {}}) \ No newline at end of file From 9c789db7b7e4dd82da22684b33071b3121ce8eda Mon Sep 17 00:00:00 2001 From: Henry Mao <1828968+calclavia@users.noreply.github.com> Date: Fri, 24 Jan 2025 00:45:50 +0800 Subject: [PATCH 3/3] Update README --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6d05631..14ac0fa 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # iOS Simulator MCP Server +[![smithery badge](https://smithery.ai/badge/@joshuarileydev/simulator-mcp-server)](https://smithery.ai/server/@joshuarileydev/simulator-mcp-server) + A Model Context Protocol (MCP) server that provides programmatic control over iOS simulators. This server implements the MCP specification to expose simulator functionality through a standardized interface. ## Features @@ -10,6 +12,16 @@ A Model Context Protocol (MCP) server that provides programmatic control over iO - Launch installed apps by bundle ID ## Installation + +### Installing via Smithery + +To install iOS Simulator Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@joshuarileydev/simulator-mcp-server): + +```bash +npx -y @smithery/cli install @joshuarileydev/simulator-mcp-server --client claude +``` + +### Manual Installation Add the following to your Claude Config JSON file ``` { @@ -23,4 +35,4 @@ Add the following to your Claude Config JSON file } } } -``` \ No newline at end of file +```