diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c3e6e6d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,38 @@ +# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile +# Use an official Node.js runtime as the base image +FROM node:18-alpine AS builder + +# Set the working directory inside the container +WORKDIR /app + +# Copy package.json and package-lock.json to the working directory +COPY package.json package-lock.json ./ + +# Install dependencies +RUN npm install + +# Copy the rest of the application's source code +COPY src ./src +COPY tsconfig.json ./ + +# Build the TypeScript code +RUN npm run build + +# Production image to run the application +FROM node:18-alpine AS production + +# Set the working directory +WORKDIR /app + +# Copy the build output and package.json files from the builder stage +COPY --from=builder /app/build ./build +COPY --from=builder /app/package.json /app/package-lock.json ./ + +# Install only production dependencies +RUN npm ci --omit=dev + +# Environment variable for OAuth token +ENV MIRO_OAUTH_KEY= + +# Run the server +ENTRYPOINT ["node", "build/index.js", "--token", "MIRO-OAUTH-KEY"] \ No newline at end of file diff --git a/smithery.yaml b/smithery.yaml new file mode 100644 index 0000000..bd61bdd --- /dev/null +++ b/smithery.yaml @@ -0,0 +1,17 @@ +# Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml + +startCommand: + type: stdio + configSchema: + # JSON Schema defining the configuration options for the MCP. + type: object + required: + - miroOauthKey + properties: + miroOauthKey: + type: string + description: The OAuth token for the Miro Whiteboard API. + commandFunction: + # A function that produces the CLI command to start the MCP on stdio. + |- + (config) => ({command: 'node', args: ['build/index.js'], env: {MIRO_OAUTH_TOKEN: config.miroOauthKey}}) \ No newline at end of file