From fd054353f490c029abd9d5e5888f2d597451653c Mon Sep 17 00:00:00 2001 From: MQ Date: Mon, 21 Jul 2025 15:47:44 +0200 Subject: [PATCH 1/2] add dxt manifest, wip release cicd for testing --- .github/workflows/release.yaml | 74 +++++++++++++++++++++++---------- docs/apify-logo.png | Bin 0 -> 3129 bytes manifest.json | 70 +++++++++++++++++++++++++++++++ 3 files changed, 122 insertions(+), 22 deletions(-) create mode 100644 docs/apify-logo.png create mode 100644 manifest.json diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 84eb6479..105ece3f 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -71,13 +71,14 @@ jobs: write-mode: overwrite contents: ${{ needs.release_metadata.outputs.changelog }} - - name: Commit changes - id: commit - uses: EndBug/add-and-commit@v9 - with: - author_name: Apify Release Bot - author_email: noreply@apify.com - message: "chore(release): Update changelog and package version [skip ci]" + # TEMP + #- name: Commit changes + # id: commit + # uses: EndBug/add-and-commit@v9 + # with: + # author_name: Apify Release Bot + # author_email: noreply@apify.com + # message: "chore(release): Update changelog and package version [skip ci]" create_github_release: name: Create github release @@ -85,19 +86,6 @@ jobs: runs-on: ubuntu-latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - steps: - - name: Create release - uses: softprops/action-gh-release@v2 - with: - tag_name: ${{ needs.release_metadata.outputs.tag_name }} - name: ${{ needs.release_metadata.outputs.version_number }} - target_commitish: ${{ needs.update_changelog.outputs.changelog_commitish }} - body: ${{ needs.release_metadata.outputs.release_notes }} - - publish_to_npm: - name: Publish to NPM - needs: [ update_changelog ] - runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: @@ -115,8 +103,50 @@ jobs: npm ci - name: Build module run: npm run build - - name: Publish to NPM - run: npm publish --tag latest + - name: Prepare DXT package + run: | + mkdir dxt + cp -r node_modules dxt/node_modules + cp -r dist dxt/dist + cp -r docs dxt/docs + cp package.json dxt/package.json + cp manifest.json dxt/manifest.json + - name: Create DXT package + run: npx -y @anthropic-ai/dxt pack dxt/ actors-mcp-server.dxt + - name: Create release + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ needs.release_metadata.outputs.tag_name }} + name: ${{ needs.release_metadata.outputs.version_number }} + target_commitish: ${{ needs.update_changelog.outputs.changelog_commitish }} + body: ${{ needs.release_metadata.outputs.release_notes }} + files: | + actors-mcp-server.dxt + + # TEMP + #publish_to_npm: + # name: Publish to NPM + # needs: [ update_changelog ] + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # with: + # ref: ${{ needs.update_changelog.changelog_commitish }} + # - name: Use Node.js 22 + # uses: actions/setup-node@v4 + # with: + # node-version: 22 + # cache: 'npm' + # cache-dependency-path: 'package-lock.json' + # - name: Install dependencies + # run: | + # echo "access=public" >> .npmrc + # echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" >> .npmrc + # npm ci + # - name: Build module + # run: npm run build + # - name: Publish to NPM + # run: npm publish --tag latest env: NODE_AUTH_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_NPM_TOKEN }} diff --git a/docs/apify-logo.png b/docs/apify-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..db38b8e3dfd3d7b0268a6b9b28e66bb0a1b1cb7b GIT binary patch literal 3129 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 Kf~~}yx%)peHXeHb literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 00000000..9c84bf26 --- /dev/null +++ b/manifest.json @@ -0,0 +1,70 @@ +{ + "dxt_version": "0.1", + "name": "apify-actors-mcp-server", + "version": "0.0.0", + "description": "A simple MCP extension", + "keywords": [ + "apify", + "actors", + "dataset", + "mcp", + "automation", + "web", + "web scraping", + "web automation", + "web scraper", + "web crawler", + "scraping", + "data extraction", + "API" + ], + "author": { + "name": "Apify Technologies s.r.o.", + "url": "https://apify.com" + }, + "license": "Apache-2.0", + "repository": { + "type": "git", + "url": "https://github.com/apify/actors-mcp-server" + }, + "homepage": "https://mcp.apify.com", + "support": "https://github.com/apify/actors-mcp-server/issues", + "icon": "docs/apify-logo.png", + "screenshots": [ + "docs/actors-mcp-server.png" + ], + "server": { + "type": "node", + "entry_point": "dist/stdio.js", + "mcp_config": { + "command": "node", + "args": [ + "${__dirname}/dist/stdio.js" + ], + "env": { + "APIFY_TOKEN": "${user_config.apify_token}" + } + } + }, + "tools_generated": true, + "user_config": { + "apify_token": { + "type": "string", + "title": "Apify token", + "description": "Your Apify API token for authentication", + "sensitive": true, + "required": true + } + }, + "compatibility": { + "claude_desktop": ">=0.2.16", + "platforms": [ + "darwin", + "win32", + "linux" + ], + "runtimes": { + "node": ">=20.0.0" + } + } +} \ No newline at end of file From bbc5c58417d53baa5ba0da01eddd86c5f3cf5729 Mon Sep 17 00:00:00 2001 From: MQ Date: Mon, 21 Jul 2025 15:56:39 +0200 Subject: [PATCH 2/2] add description, finalize release cicd --- .github/workflows/release.yaml | 62 ++++++++++++++++------------------ manifest.json | 2 +- 2 files changed, 31 insertions(+), 33 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 105ece3f..79393803 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -71,14 +71,13 @@ jobs: write-mode: overwrite contents: ${{ needs.release_metadata.outputs.changelog }} - # TEMP - #- name: Commit changes - # id: commit - # uses: EndBug/add-and-commit@v9 - # with: - # author_name: Apify Release Bot - # author_email: noreply@apify.com - # message: "chore(release): Update changelog and package version [skip ci]" + - name: Commit changes + id: commit + uses: EndBug/add-and-commit@v9 + with: + author_name: Apify Release Bot + author_email: noreply@apify.com + message: "chore(release): Update changelog and package version [skip ci]" create_github_release: name: Create github release @@ -123,30 +122,29 @@ jobs: files: | actors-mcp-server.dxt - # TEMP - #publish_to_npm: - # name: Publish to NPM - # needs: [ update_changelog ] - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - # with: - # ref: ${{ needs.update_changelog.changelog_commitish }} - # - name: Use Node.js 22 - # uses: actions/setup-node@v4 - # with: - # node-version: 22 - # cache: 'npm' - # cache-dependency-path: 'package-lock.json' - # - name: Install dependencies - # run: | - # echo "access=public" >> .npmrc - # echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" >> .npmrc - # npm ci - # - name: Build module - # run: npm run build - # - name: Publish to NPM - # run: npm publish --tag latest + publish_to_npm: + name: Publish to NPM + needs: [ update_changelog ] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ needs.update_changelog.changelog_commitish }} + - name: Use Node.js 22 + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: 'npm' + cache-dependency-path: 'package-lock.json' + - name: Install dependencies + run: | + echo "access=public" >> .npmrc + echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" >> .npmrc + npm ci + - name: Build module + run: npm run build + - name: Publish to NPM + run: npm publish --tag latest env: NODE_AUTH_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_NPM_TOKEN }} diff --git a/manifest.json b/manifest.json index 9c84bf26..dd095f35 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "dxt_version": "0.1", "name": "apify-actors-mcp-server", "version": "0.0.0", - "description": "A simple MCP extension", + "description": "The Apify Model Context Protocol (MCP) Server at mcp.apify.com instantly connects AI applications and agents to thousands of ready‑built tools. It allows your AI assistant to use any Apify Actor for web scraping, data extraction, and automation tasks in real time.", "keywords": [ "apify", "actors",