Skip to content

Commit c5a68da

Browse files
authored
chore: add DXT file on release (#30)
* chore: add DXT package on release * fixup! chore: add DXT package on release * Apply suggestion from @akinard-postman
1 parent e75f2ce commit c5a68da

File tree

3 files changed

+126
-0
lines changed

3 files changed

+126
-0
lines changed

.dxtignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Ignore everything
2+
src/**
3+
.github/**
4+
.cursor/**
5+
.dockerignore
6+
Docker.md
7+
Dockerfile
8+
eslint.config.mjs
9+
tsconfig.json

.github/workflows/dxt-pack.yaml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Release DXT
2+
3+
on:
4+
push:
5+
tags:
6+
- '*'
7+
8+
jobs:
9+
build-and-release:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout repository
13+
uses: actions/checkout@v5
14+
15+
- name: Use Node.js 20
16+
uses: actions/setup-node@v4
17+
with:
18+
node-version: '20'
19+
cache: 'npm'
20+
21+
- name: Install dependencies
22+
run: npm ci
23+
24+
- name: Sync manifest version with package.json
25+
run: |
26+
pkg_version=$(jq -r .version package.json)
27+
jq --arg v "$pkg_version" '.version = $v' manifest.json > manifest.tmp.json
28+
mv manifest.tmp.json manifest.json
29+
30+
- name: Build project
31+
run: npm run build
32+
33+
- name: Install DXT
34+
run: npm ci --omit=dev
35+
36+
- name: Install DXT
37+
run: npm install -g @anthropic-ai/dxt
38+
39+
- name: Package extension
40+
run: |
41+
dxt pack
42+
current_dir=$(basename "$PWD")
43+
echo "DXT_FILENAME=${current_dir}.dxt" >> $GITHUB_ENV
44+
45+
- name: Upload release asset
46+
uses: svenstaro/upload-release-action@7027b7670c56b9473901daad1fb8a09ab534688e
47+
with:
48+
repo_token: ${{ secrets.GITHUB_TOKEN }}
49+
file: ${{ env.DXT_FILENAME }}
50+
asset_name: ${{ env.DXT_FILENAME }}
51+
tag: ${{ github.ref }}
52+
overwrite: true

manifest.json

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
{
2+
"dxt_version": "0.2",
3+
"version": "",
4+
"name": "postman-mcp-server",
5+
"display_name": "Postman MCP Server",
6+
"description": "A basic MCP server that operates using the Postman API.",
7+
"long_description": "This extension enables AI assistants to interact with the Postman API through Model Context Protocol (MCP). It provides a rich set of tools for managing your collections, environments, mocks, monitors, and more, all secured with your Postman API key.",
8+
"author": {
9+
"name": "Postman, Inc.",
10+
"email": "[email protected]",
11+
"url": "https://www.postman.com"
12+
},
13+
"repository": {
14+
"type": "git",
15+
"url": "https://github.com/postmanlabs/postman-mcp-server"
16+
},
17+
"homepage": "https://github.com/postmanlabs/postman-mcp-server",
18+
"documentation": "https://learning.postman.com/docs/developer/postman-api/postman-mcp-server/overview",
19+
"support": "https://github.com/postmanlabs/postman-api-mcp/issues",
20+
"icon": "icon.png",
21+
"server": {
22+
"type": "node",
23+
"entry_point": "dist/src/index.js",
24+
"mcp_config": {
25+
"command": "node",
26+
"args": [
27+
"${__dirname}/dist/src/index.js"
28+
],
29+
"env": {
30+
"POSTMAN_API_KEY": "${user_config.postman_api_key}"
31+
}
32+
}
33+
},
34+
"keywords": [
35+
"postman",
36+
"api",
37+
"mcp",
38+
"postman-api",
39+
"collections",
40+
"monitors",
41+
"mocks"
42+
],
43+
"license": "Apache-2.0",
44+
"user_config": {
45+
"postman_api_key": {
46+
"type": "string",
47+
"title": "Postman API Key",
48+
"description": "A valid Postman API key used to authenticate requests.",
49+
"sensitive": true,
50+
"required": true
51+
}
52+
},
53+
"compatibility": {
54+
"claude_desktop": ">=0.10.0",
55+
"platforms": [
56+
"darwin",
57+
"win32",
58+
"linux"
59+
],
60+
"runtimes": {
61+
"node": ">=20.0.0"
62+
}
63+
},
64+
"tools_generated": true
65+
}

0 commit comments

Comments
 (0)