Skip to content

Commit 7f9aeda

Browse files
committed
Enhance CI workflow and documentation for DXT package integration
- Added Node.js setup for DXT CLI in the CI workflow - Installed DXT CLI as a build dependency - Created DXT manifest file during the build process - Updated README with instructions for using the MCP server with VS Code and Claude Desktop
1 parent 7a9810a commit 7f9aeda

File tree

2 files changed

+157
-1
lines changed

2 files changed

+157
-1
lines changed

.github/workflows/publish-mcp-package.yml

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,70 @@ jobs:
2929
with:
3030
python-version: '3.10'
3131

32+
- name: Set up Node.js for DXT CLI
33+
uses: actions/setup-node@v4
34+
with:
35+
node-version: '20'
36+
3237
- name: Install build dependencies
3338
run: |
3439
python -m pip install --upgrade pip
3540
python -m pip install build
41+
npm install -g @anthropic-ai/dxt
3642
37-
- name: Build package
43+
- name: Build Python package
3844
run: python -m build
3945

46+
- name: Create DXT manifest
47+
run: |
48+
cat > manifest.json << 'EOF'
49+
{
50+
"dxt_version": "1.0.0",
51+
"name": "github-projects-mcp",
52+
"version": "${{ github.ref_name }}",
53+
"author": "Red Duck Labs",
54+
"description": "A Model Context Protocol server for GitHub Projects",
55+
"server": {
56+
"type": "python",
57+
"module": "github_projects_mcp.server"
58+
},
59+
"dependencies": {
60+
"pip": ["github-projects-mcp==${{ github.ref_name }}"]
61+
},
62+
"configuration": {
63+
"GITHUB_TOKEN": {
64+
"type": "secret",
65+
"description": "GitHub Personal Access Token with project permissions",
66+
"required": true
67+
},
68+
"API_MAX_RETRIES": {
69+
"type": "string",
70+
"description": "Maximum retries for rate-limited requests",
71+
"default": "3"
72+
},
73+
"API_RETRY_DELAY": {
74+
"type": "string",
75+
"description": "Delay in seconds between retries",
76+
"default": "60"
77+
}
78+
}
79+
}
80+
EOF
81+
82+
- name: Build DXT package
83+
run: dxt pack
84+
4085
- name: Upload build artifacts
4186
uses: actions/upload-artifact@v4
4287
with:
4388
name: dist
4489
path: dist/
90+
91+
- name: Upload DXT package
92+
uses: actions/upload-artifact@v4
93+
with:
94+
name: dxt-package
95+
path: "*.dxt"
4596

4697
publish:
4798
needs: build

README.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,111 @@ claude mcp add github-projects ./venv/Scripts/python github_projects_mcp/server.
347347
- Test token with: `gh auth status` or `curl -H "Authorization: token YOUR_TOKEN" https://api.github.com/user`
348348
- For Windows: Unicode console issues may appear but don't affect functionality
349349

350+
## Using with VS Code
351+
352+
VS Code supports MCP servers through GitHub Copilot (requires VS Code 1.102+ with MCP support enabled):
353+
354+
### Option 1: Using MCP Commands (Recommended)
355+
356+
1. **Install the MCP server:**
357+
```bash
358+
pip install github-projects-mcp
359+
```
360+
361+
2. **Add server using VS Code command:**
362+
- Open Command Palette (`Ctrl+Shift+P` / `Cmd+Shift+P`)
363+
- Run `MCP: Add Server`
364+
- Choose workspace or global configuration
365+
- Enter server details when prompted
366+
367+
### Option 2: Manual Configuration
368+
369+
1. **Install the server:**
370+
```bash
371+
pip install github-projects-mcp
372+
```
373+
374+
2. **Create MCP configuration file:**
375+
376+
**For workspace-specific:** `.vscode/mcp.json`
377+
378+
**For user-wide:** Use Command Palette → `MCP: Open User Configuration`
379+
380+
```json
381+
{
382+
"inputs": [
383+
{
384+
"type": "promptString",
385+
"id": "github-token",
386+
"description": "GitHub Personal Access Token",
387+
"password": true
388+
}
389+
],
390+
"servers": {
391+
"github-projects": {
392+
"type": "stdio",
393+
"command": "github-projects-mcp",
394+
"env": {
395+
"GITHUB_TOKEN": "${input:github-token}"
396+
}
397+
}
398+
}
399+
}
400+
```
401+
402+
3. **Restart VS Code** and configure your GitHub token when prompted
403+
404+
## Using with Claude Desktop
405+
406+
### Option 1: Install via DXT Extension (Recommended)
407+
408+
When available, download the `.dxt` file from the [releases page](https://github.com/redducklabs/github-projects-mcp/releases) and install:
409+
410+
1. **Download the `.dxt` file** from the latest release
411+
2. **Open Claude Desktop**
412+
3. **Install extension** by dragging the `.dxt` file into Claude Desktop or using the extension installer
413+
4. **Configure your GitHub token** when prompted
414+
415+
### Option 2: Manual Installation
416+
417+
1. **Install the MCP server:**
418+
```bash
419+
pip install github-projects-mcp
420+
```
421+
422+
2. **Add to Claude Desktop configuration:**
423+
424+
**On macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
425+
426+
**On Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
427+
428+
```json
429+
{
430+
"mcpServers": {
431+
"github-projects": {
432+
"command": "github-projects-mcp",
433+
"env": {
434+
"GITHUB_TOKEN": "your_github_token_here"
435+
}
436+
}
437+
}
438+
}
439+
```
440+
441+
3. **Restart Claude Desktop**
442+
443+
### Getting Your GitHub Token
444+
445+
For both VS Code and Claude Desktop setup:
446+
447+
1. **Go to GitHub Settings** → Developer settings → Personal access tokens
448+
2. **Create a new token** with these scopes:
449+
- `project` (for managing projects)
450+
- `read:project` (for reading project data)
451+
3. **Copy the token** and use it in your configuration
452+
453+
**For organization projects:** Use a Fine-grained Personal Access Token with organization access.
454+
350455
### Example Usage with MCP Client
351456

352457
For developers integrating programmatically:

0 commit comments

Comments
 (0)