Skip to content

Deployment: Dockerfile and Smithery config #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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"]
12 changes: 11 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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.
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.
39 changes: 39 additions & 0 deletions smithery.yaml
Original file line number Diff line number Diff line change
@@ -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...