From 7f6b4c98864b9001b9d598f40b83cfa2217dd434 Mon Sep 17 00:00:00 2001 From: Henry Mao <1828968+calclavia@users.noreply.github.com> Date: Fri, 30 May 2025 23:02:39 -0700 Subject: [PATCH 1/3] Add Dockerfile --- Dockerfile | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5ea9f45 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +# Generated by https://smithery.ai. See: https://smithery.ai/docs/build/project-config +FROM node:lts-alpine + +# Create app directory +WORKDIR /app + +# Copy package files and tsconfig +COPY package.json package-lock.json tsconfig.json ./ + +# Copy source +COPY src ./src + +# Install dependencies and build +RUN npm install --ignore-scripts +RUN npm run build + +# Use non-root user for safety (optional) +# USER node + +# Start the MCP server over stdio +CMD ["node", "build/index.js"] From d3e00101cd57d5b403241a2cb8b691849b91965a Mon Sep 17 00:00:00 2001 From: Henry Mao <1828968+calclavia@users.noreply.github.com> Date: Fri, 30 May 2025 23:02:40 -0700 Subject: [PATCH 2/3] Add Smithery configuration --- smithery.yaml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 smithery.yaml diff --git a/smithery.yaml b/smithery.yaml new file mode 100644 index 0000000..fa2d964 --- /dev/null +++ b/smithery.yaml @@ -0,0 +1,39 @@ +# Smithery configuration file: https://smithery.ai/docs/build/project-config + +startCommand: + type: stdio + commandFunction: + # A JS function that produces the CLI command based on the given config to start the MCP on stdio. + |- + (config) => ({ command: 'node', args: ['build/index.js'], env: { CLIENT_ID: config.clientId, CLIENT_SECRET: config.clientSecret, REDIRECT_URI: config.redirectUri, ACCESS_TOKEN: config.accessToken, REFRESH_TOKEN: config.refreshToken } }) + configSchema: + # JSON Schema defining the configuration options for the MCP. + type: object + required: + - clientId + - clientSecret + - redirectUri + - accessToken + - refreshToken + properties: + clientId: + type: string + description: Google OAuth2 client ID + clientSecret: + type: string + description: Google OAuth2 client secret + redirectUri: + type: string + description: OAuth2 redirect URI + accessToken: + type: string + description: OAuth2 access token + refreshToken: + type: string + description: OAuth2 refresh token + exampleConfig: + clientId: your-client-id.apps.googleusercontent.com + clientSecret: your-client-secret + redirectUri: http://localhost:3000/oauth2callback + accessToken: ya29.a0AfH6SM... + refreshToken: 1//0g9... From f571e6d758ba5ac85b39bf7d1ebcf26805d2cd18 Mon Sep 17 00:00:00 2001 From: Henry Mao <1828968+calclavia@users.noreply.github.com> Date: Fri, 30 May 2025 23:02:40 -0700 Subject: [PATCH 3/3] Update README --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 904c736..ad99174 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Google Tasks MCP Server +[![smithery badge](https://smithery.ai/badge/@mstfe/mcp-google-tasks)](https://smithery.ai/server/@mstfe/mcp-google-tasks) + A Model Context Protocol (MCP) server for managing Google Tasks. This TypeScript-based MCP server demonstrates core MCP concepts by integrating with the Google Tasks API. It allows managing tasks in a structured and efficient way. @@ -51,6 +53,14 @@ This TypeScript-based MCP server demonstrates core MCP concepts by integrating w ## Usage +### Installing via Smithery + +To install Google Tasks MCP for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@mstfe/mcp-google-tasks): + +```bash +npx -y @smithery/cli install @mstfe/mcp-google-tasks --client claude +``` + ### Running the Server To start the server: ```bash @@ -130,4 +140,4 @@ The Inspector will provide a URL to access debugging tools in your browser, maki ## License -This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. \ No newline at end of file +This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License.