Skip to content

Commit 1bc7f1b

Browse files
vscarpenterclaude
andcommitted
feat: Publish MCP server to npm as gsd-mcp-server v0.2.1
Published the GSD Task Manager MCP Server to npm for easy installation and usage. Package is now available via npx without build steps. ## Changes **Package Publishing:** - Published to npm as `gsd-mcp-server` (unscoped package) - Deprecated `@vscarpenter/gsd-mcp-server` in favor of unscoped version - Version bumped to 0.2.1 with updated README **New Files:** - Added `.npmignore` to exclude test scripts and dev files from package - Added `LICENSE` file (MIT) required for npm publishing **Package Configuration:** - Updated `package.json` with npm metadata (repository, homepage, bugs) - Added `files` field to whitelist publishable content - Added `types` field for TypeScript declarations - Added `prepublishOnly` script for automatic builds - Enhanced keywords for better discoverability **Documentation Updates:** - Added Quick Start section with `npx gsd-mcp-server` usage - Added npm version and license badges - Updated installation instructions to prioritize published package - Included both npx and local build configurations - Updated all API URLs to production (https://gsd.vinny.dev) - Added publishing instructions to Development section - Enhanced troubleshooting for npx usage **Security Improvements:** - Updated `.gitignore` to exclude sensitive config files - Excluded test scripts with hardcoded credentials from package - Removed worker dev config file with sensitive data ## Package Details - Name: `gsd-mcp-server` - Version: 0.2.1 - Size: 16.5 kB (compressed), 57.8 kB (unpacked) - Installation: `npx gsd-mcp-server` - npm URL: https://www.npmjs.com/package/gsd-mcp-server 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 97bf409 commit 1bc7f1b

File tree

7 files changed

+203
-139
lines changed

7 files changed

+203
-139
lines changed

.gitignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,16 @@ sonar-project.properties
5555
worker/.wrangler
5656
worker/.dev.vars
5757
worker/wrangler.toml.local
58+
59+
# Sensitive configuration files (prevent credential leaks)
60+
**/claude-config.json
61+
!**/claude-config.example.json
62+
packages/mcp-server/test-*.sh
63+
!packages/mcp-server/test-manual.sh
64+
!packages/mcp-server/test-setup.sh
65+
!packages/mcp-server/test-env-vars.js
66+
packages/mcp-server/debug-*.sh
67+
!packages/mcp-server/debug-*.example.sh
68+
worker/cf-dev-config.json
69+
*SETUP_GUIDE.md
70+
gitleaks-report.json

packages/mcp-server/.npmignore

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Source files (we only need dist/)
2+
src/
3+
tsconfig.json
4+
*.ts
5+
!*.d.ts
6+
7+
# Documentation (keep only README.md and LICENSE)
8+
TESTING.md
9+
TESTING_V0.2.md
10+
QUICKSTART.md
11+
DECRYPTION.md
12+
DEPLOYMENT_COMPLETE.md
13+
README-SECURITY.md
14+
15+
# Test scripts and configs (SECURITY: May contain hardcoded credentials)
16+
*.sh
17+
test-*.js
18+
test-*.json
19+
check-*.sh
20+
debug-*.sh
21+
claude-config*.json
22+
!*.example
23+
24+
# Environment files
25+
.env
26+
.env.*
27+
.env.example
28+
29+
# Development files
30+
node_modules/
31+
.DS_Store
32+
*.log
33+
npm-debug.log*
34+
.npmrc
35+
36+
# Test files
37+
__tests__/
38+
*.test.js
39+
*.spec.js
40+
test/
41+
tests/
42+
43+
# Build artifacts
44+
*.tsbuildinfo
45+
46+
# Git files
47+
.git/
48+
.gitignore
49+
.gitattributes
50+
51+
# IDE files
52+
.vscode/
53+
.idea/
54+
*.swp
55+
*.swo

packages/mcp-server/LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Vinny Carpenter
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

packages/mcp-server/README.md

Lines changed: 87 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,37 @@
11
# GSD Task Manager MCP Server
22

3+
[![npm version](https://badge.fury.io/js/gsd-mcp-server.svg)](https://www.npmjs.com/package/gsd-mcp-server)
4+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5+
36
Model Context Protocol (MCP) server for GSD Task Manager. Provides read-only access to your synced tasks through Claude Desktop and other MCP-compatible AI assistants.
47

8+
## Quick Start
9+
10+
```bash
11+
# Install via npx (no installation needed!)
12+
npx gsd-mcp-server
13+
```
14+
15+
Add to Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
16+
17+
```json
18+
{
19+
"mcpServers": {
20+
"gsd-tasks": {
21+
"command": "npx",
22+
"args": ["-y", "gsd-mcp-server"],
23+
"env": {
24+
"GSD_API_URL": "https://gsd.vinny.dev",
25+
"GSD_AUTH_TOKEN": "your-jwt-token-here",
26+
"GSD_ENCRYPTION_PASSPHRASE": "your-passphrase-here"
27+
}
28+
}
29+
}
30+
}
31+
```
32+
33+
See [Installation](#installation) section below for detailed setup instructions.
34+
535
## Features
636

737
**Metadata Access** (v0.1.0)
@@ -31,21 +61,24 @@ Model Context Protocol (MCP) server for GSD Task Manager. Provides read-only acc
3161

3262
## Installation
3363

34-
### 1. Install Dependencies
64+
**Two installation options:**
3565

36-
From the `packages/mcp-server` directory:
66+
### Option A: Use Published Package (Recommended)
3767

38-
```bash
39-
npm install
40-
```
68+
No installation needed! Use `npx` to run the package directly from npm.
4169

42-
### 2. Build the Server
70+
### Option B: Build from Source
4371

44-
```bash
45-
npm run build
46-
```
72+
For development or if you want to modify the code:
73+
74+
1. Clone the repository
75+
2. Navigate to `packages/mcp-server`
76+
3. Install dependencies: `npm install`
77+
4. Build the server: `npm run build`
4778

48-
### 3. Get Your Auth Token
79+
## Setup
80+
81+
### 1. Get Your Auth Token
4982

5083
You'll need a JWT token from your GSD sync setup. Two options:
5184

@@ -60,13 +93,33 @@ You'll need a JWT token from your GSD sync setup. Two options:
6093
2. Intercept the callback response
6194
3. Extract the `token` field from the JSON response
6295

63-
### 4. Configure Claude Desktop
96+
### 2. Configure Claude Desktop
6497

6598
Add the MCP server to your Claude Desktop config:
6699

67100
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
68101
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
69102

103+
**Using published package (recommended):**
104+
105+
```json
106+
{
107+
"mcpServers": {
108+
"gsd-tasks": {
109+
"command": "npx",
110+
"args": ["-y", "gsd-mcp-server"],
111+
"env": {
112+
"GSD_API_URL": "https://gsd.vinny.dev",
113+
"GSD_AUTH_TOKEN": "your-jwt-token-here",
114+
"GSD_ENCRYPTION_PASSPHRASE": "your-passphrase-here"
115+
}
116+
}
117+
}
118+
}
119+
```
120+
121+
**Using local build (for development):**
122+
70123
```json
71124
{
72125
"mcpServers": {
@@ -76,7 +129,7 @@ Add the MCP server to your Claude Desktop config:
76129
"/absolute/path/to/gsd-taskmanager/packages/mcp-server/dist/index.js"
77130
],
78131
"env": {
79-
"GSD_API_URL": "https://gsd-sync-worker-production.vscarpenter.workers.dev",
132+
"GSD_API_URL": "https://gsd.vinny.dev",
80133
"GSD_AUTH_TOKEN": "your-jwt-token-here",
81134
"GSD_ENCRYPTION_PASSPHRASE": "your-passphrase-here"
82135
}
@@ -85,15 +138,16 @@ Add the MCP server to your Claude Desktop config:
85138
}
86139
```
87140

88-
**Important Notes**:
89-
- Replace `/absolute/path/to/gsd-taskmanager` with your actual project path
90-
- Use your Worker API URL (development, staging, or production)
91-
- Token will expire - you'll need to update it periodically (every 7 days)
141+
**Configuration Notes**:
142+
- Replace `your-jwt-token-here` with your actual token from Step 1
143+
- Replace `your-passphrase-here` with your sync encryption passphrase
144+
- `GSD_API_URL`: Use `https://gsd.vinny.dev` for production (or your custom Worker URL)
145+
- Token expires every 7 days - you'll need to update it periodically
92146
- **Optional**: Add `GSD_ENCRYPTION_PASSPHRASE` to enable decrypted task access (v0.2.0)
93147
- Without it: Only metadata tools work (sync status, devices, stats)
94148
- With it: Full task content access (list, search, read tasks)
95149

96-
### 5. Restart Claude Desktop
150+
### 3. Restart Claude Desktop
97151

98152
Close and reopen Claude Desktop to load the MCP server.
99153

@@ -285,9 +339,11 @@ Search tasks by text query across titles, descriptions, tags, and subtasks. **Re
285339
- Try accessing the URL in your browser: `{GSD_API_URL}/health`
286340

287341
### "Cannot find module" error
288-
- Run `npm run build` to compile TypeScript
289-
- Check that the path in Claude config is absolute and correct
290-
- Verify that `dist/index.js` exists after building
342+
- **If using npx**: Ensure you have internet connection (npx needs to download the package)
343+
- **If using local build**:
344+
- Run `npm run build` to compile TypeScript
345+
- Check that the path in Claude config is absolute and correct
346+
- Verify that `dist/index.js` exists after building
291347

292348
### "Encryption passphrase not provided" (v0.2.0)
293349
- This error appears when using decryption tools without the passphrase
@@ -320,13 +376,23 @@ npm run build
320376

321377
**Testing Locally** (without Claude Desktop):
322378
```bash
323-
export GSD_API_URL="https://sync.gsd.vinny.dev"
379+
export GSD_API_URL="https://gsd.vinny.dev"
324380
export GSD_AUTH_TOKEN="your-jwt-token"
381+
export GSD_ENCRYPTION_PASSPHRASE="your-passphrase"
325382
npm start
326383
```
327384

328385
Then send MCP protocol JSON over stdin (advanced).
329386

387+
**Publishing to npm**:
388+
```bash
389+
# Update version (patch/minor/major)
390+
npm version patch
391+
392+
# Publish (requires 2FA code)
393+
npm publish --access public --otp=YOUR_CODE
394+
```
395+
330396
## Future Enhancements
331397

332398
**Write Operations** (v0.3.0)

packages/mcp-server/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/mcp-server/package.json

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,46 @@
11
{
2-
"name": "@gsd/mcp-server",
3-
"version": "0.2.0",
2+
"name": "gsd-mcp-server",
3+
"version": "0.2.1",
44
"description": "MCP server for GSD Task Manager - decrypted read-only access to synced tasks",
55
"type": "module",
66
"main": "dist/index.js",
7+
"types": "dist/index.d.ts",
78
"bin": {
89
"gsd-mcp-server": "dist/index.js"
910
},
11+
"files": [
12+
"dist/**/*",
13+
"README.md",
14+
"LICENSE"
15+
],
1016
"scripts": {
1117
"build": "tsc",
1218
"dev": "tsc --watch",
13-
"start": "node dist/index.js"
19+
"start": "node dist/index.js",
20+
"prepublishOnly": "npm run build"
1421
},
1522
"keywords": [
1623
"mcp",
24+
"model-context-protocol",
1725
"task-manager",
1826
"productivity",
19-
"claude"
27+
"claude",
28+
"claude-desktop",
29+
"eisenhower-matrix",
30+
"encryption",
31+
"privacy"
2032
],
2133
"author": "Vinny Carpenter",
2234
"license": "MIT",
35+
"repository": {
36+
"type": "git",
37+
"url": "git+https://github.com/vscarpenter/gsd-taskmanager.git",
38+
"directory": "packages/mcp-server"
39+
},
40+
"homepage": "https://github.com/vscarpenter/gsd-taskmanager#readme",
41+
"bugs": {
42+
"url": "https://github.com/vscarpenter/gsd-taskmanager/issues"
43+
},
2344
"dependencies": {
2445
"@modelcontextprotocol/sdk": "^1.0.4",
2546
"zod": "^3.24.1"

0 commit comments

Comments
 (0)