diff --git a/.github/workflows/typescript.yml b/.github/workflows/typescript.yml index 07229176..6579e44e 100644 --- a/.github/workflows/typescript.yml +++ b/.github/workflows/typescript.yml @@ -9,9 +9,26 @@ on: types: [published] jobs: - build: + detect-packages: runs-on: ubuntu-latest + outputs: + packages: ${{ steps.find-packages.outputs.packages }} + steps: + - uses: actions/checkout@v4 + - name: Find JS packages + id: find-packages + working-directory: src + run: | + PACKAGES=$(find . -name package.json -not -path "*/node_modules/*" -exec dirname {} \; | sed 's/^\.\///' | jq -R -s -c 'split("\n")[:-1]') + echo "packages=$PACKAGES" >> $GITHUB_OUTPUT + build: + needs: [detect-packages] + strategy: + matrix: + package: ${{ fromJson(needs.detect-packages.outputs.packages) }} + name: Build ${{ matrix.package }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -20,14 +37,24 @@ jobs: node-version: 18 cache: npm - - run: npm ci - - run: npm run build + - name: Install dependencies + working-directory: src/${{ matrix.package }} + run: npm ci + + - name: Build package + working-directory: src/${{ matrix.package }} + run: npm run build publish: runs-on: ubuntu-latest + needs: [build, detect-packages] if: github.event_name == 'release' environment: release - needs: build + + strategy: + matrix: + package: ${{ fromJson(needs.detect-packages.outputs.packages) }} + name: Publish ${{ matrix.package }} permissions: contents: read @@ -41,9 +68,12 @@ jobs: cache: npm registry-url: "https://registry.npmjs.org" - - run: npm ci + - name: Install dependencies + working-directory: src/${{ matrix.package }} + run: npm ci - # TODO: Add --provenance once the repo is public - - run: npm run publish-all + - name: Publish package + working-directory: src/${{ matrix.package }} + run: npm publish --provenance env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/package-lock.json b/package-lock.json index 7e678278..8a0cd994 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@modelcontextprotocol/servers", - "version": "0.3.0", + "version": "0.5.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@modelcontextprotocol/servers", - "version": "0.3.0", + "version": "0.5.1", "license": "MIT", "workspaces": [ "src/*" @@ -3276,7 +3276,7 @@ }, "src/brave-search": { "name": "@modelcontextprotocol/server-brave-search", - "version": "0.3.0", + "version": "0.5.1", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "0.5.0", @@ -3350,7 +3350,7 @@ }, "src/everything": { "name": "@modelcontextprotocol/server-everything", - "version": "0.3.0", + "version": "0.5.1", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "0.5.0", @@ -3369,11 +3369,12 @@ }, "src/filesystem": { "name": "@modelcontextprotocol/server-filesystem", - "version": "0.3.0", + "version": "0.5.1", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "0.5.0", - "glob": "^10.3.10" + "glob": "^10.3.10", + "zod-to-json-schema": "^3.23.5" }, "bin": { "mcp-server-filesystem": "dist/index.js" @@ -3440,7 +3441,7 @@ }, "src/gdrive": { "name": "@modelcontextprotocol/server-gdrive", - "version": "0.3.0", + "version": "0.5.1", "license": "MIT", "dependencies": { "@google-cloud/local-auth": "^3.0.1", @@ -3451,18 +3452,29 @@ "mcp-server-gdrive": "dist/index.js" }, "devDependencies": { + "@types/node": "^22.9.3", "shx": "^0.3.4", "typescript": "^5.6.2" } }, + "src/gdrive/node_modules/@types/node": { + "version": "22.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.3.tgz", + "integrity": "sha512-F3u1fs/fce3FFk+DAxbxc78DF8x0cY09RRL8GnXLmkJ1jvx3TtPdWoTT5/NiYfI5ASqXBmfqJi9dZ3gxMx4lzw==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.8" + } + }, "src/github": { "name": "@modelcontextprotocol/server-github", - "version": "0.3.0", + "version": "0.5.1", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "0.6.0", "@types/node-fetch": "^2.6.12", - "node-fetch": "^3.3.2" + "node-fetch": "^3.3.2", + "zod-to-json-schema": "^3.23.5" }, "bin": { "mcp-server-github": "dist/index.js" @@ -3509,11 +3521,12 @@ }, "src/google-maps": { "name": "@modelcontextprotocol/server-google-maps", - "version": "0.3.0", + "version": "0.5.1", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "0.6.0", - "@types/node-fetch": "^2.6.12" + "@types/node-fetch": "^2.6.12", + "node-fetch": "^3.3.2" }, "bin": { "mcp-server-google-maps": "dist/index.js" @@ -3534,9 +3547,34 @@ "zod": "^3.23.8" } }, + "src/google-maps/node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, + "src/google-maps/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, "src/memory": { "name": "@modelcontextprotocol/server-memory", - "version": "0.3.0", + "version": "0.5.1", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "0.5.0" @@ -3545,13 +3583,23 @@ "mcp-server-memory": "dist/index.js" }, "devDependencies": { + "@types/node": "^22.9.3", "shx": "^0.3.4", "typescript": "^5.6.2" } }, + "src/memory/node_modules/@types/node": { + "version": "22.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.3.tgz", + "integrity": "sha512-F3u1fs/fce3FFk+DAxbxc78DF8x0cY09RRL8GnXLmkJ1jvx3TtPdWoTT5/NiYfI5ASqXBmfqJi9dZ3gxMx4lzw==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.8" + } + }, "src/postgres": { "name": "@modelcontextprotocol/server-postgres", - "version": "0.3.0", + "version": "0.5.1", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "0.6.0", @@ -3579,7 +3627,7 @@ }, "src/puppeteer": { "name": "@modelcontextprotocol/server-puppeteer", - "version": "0.3.0", + "version": "0.5.1", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "0.5.0", @@ -3595,7 +3643,7 @@ }, "src/slack": { "name": "@modelcontextprotocol/server-slack", - "version": "0.3.0", + "version": "0.5.1", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "0.6.0" @@ -3604,6 +3652,7 @@ "mcp-server-slack": "dist/index.js" }, "devDependencies": { + "@types/node": "^22.9.3", "shx": "^0.3.4", "typescript": "^5.6.2" } @@ -3618,6 +3667,15 @@ "raw-body": "^3.0.0", "zod": "^3.23.8" } + }, + "src/slack/node_modules/@types/node": { + "version": "22.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.3.tgz", + "integrity": "sha512-F3u1fs/fce3FFk+DAxbxc78DF8x0cY09RRL8GnXLmkJ1jvx3TtPdWoTT5/NiYfI5ASqXBmfqJi9dZ3gxMx4lzw==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.8" + } } } } diff --git a/package.json b/package.json index 70ec5c74..19240a5e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@modelcontextprotocol/servers", "private": true, - "version": "0.5.0", + "version": "0.5.1", "description": "Model Context Protocol servers", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", diff --git a/src/brave-search/package.json b/src/brave-search/package.json index 76b2a5ef..98413d4f 100644 --- a/src/brave-search/package.json +++ b/src/brave-search/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-brave-search", - "version": "0.5.0", + "version": "0.5.1", "description": "MCP server for Brave Search API integration", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", diff --git a/src/everything/package.json b/src/everything/package.json index 3608b835..29df070b 100644 --- a/src/everything/package.json +++ b/src/everything/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-everything", - "version": "0.5.0", + "version": "0.5.1", "description": "MCP server that exercises all the features of the MCP protocol", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", diff --git a/src/filesystem/package.json b/src/filesystem/package.json index ca1ecd13..581ad818 100644 --- a/src/filesystem/package.json +++ b/src/filesystem/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-filesystem", - "version": "0.5.0", + "version": "0.5.1", "description": "MCP server for filesystem access", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", @@ -20,7 +20,8 @@ }, "dependencies": { "@modelcontextprotocol/sdk": "0.5.0", - "glob": "^10.3.10" + "glob": "^10.3.10", + "zod-to-json-schema": "^3.23.5" }, "devDependencies": { "@types/node": "^20.11.0", diff --git a/src/gdrive/package.json b/src/gdrive/package.json index d7b521b7..5b16edae 100644 --- a/src/gdrive/package.json +++ b/src/gdrive/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-gdrive", - "version": "0.5.0", + "version": "0.5.1", "description": "MCP server for interacting with Google Drive", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", @@ -24,6 +24,7 @@ "googleapis": "^144.0.0" }, "devDependencies": { + "@types/node": "^22.9.3", "shx": "^0.3.4", "typescript": "^5.6.2" } diff --git a/src/git/pyproject.toml b/src/git/pyproject.toml index 656005f2..92e19c78 100644 --- a/src/git/pyproject.toml +++ b/src/git/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mcp-server-git" -version = "0.5.0" +version = "0.5.1" description = "A Model Context Protocol server providing tools to read, search, and manipulate Git repositories programmatically via LLMs" readme = "README.md" requires-python = ">=3.10" diff --git a/src/github/package.json b/src/github/package.json index 5a68600b..bc7710e4 100644 --- a/src/github/package.json +++ b/src/github/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-github", - "version": "0.5.0", + "version": "0.5.1", "description": "MCP server for using the GitHub API", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", @@ -21,7 +21,8 @@ "dependencies": { "@modelcontextprotocol/sdk": "0.6.0", "@types/node-fetch": "^2.6.12", - "node-fetch": "^3.3.2" + "node-fetch": "^3.3.2", + "zod-to-json-schema": "^3.23.5" }, "devDependencies": { "shx": "^0.3.4", diff --git a/src/google-maps/package.json b/src/google-maps/package.json index a09742f6..dedf73cf 100644 --- a/src/google-maps/package.json +++ b/src/google-maps/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-google-maps", - "version": "0.5.0", + "version": "0.5.1", "description": "MCP server for using the Google Maps API", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", @@ -20,7 +20,8 @@ }, "dependencies": { "@modelcontextprotocol/sdk": "0.6.0", - "@types/node-fetch": "^2.6.12" + "@types/node-fetch": "^2.6.12", + "node-fetch": "^3.3.2" }, "devDependencies": { "shx": "^0.3.4", diff --git a/src/memory/package.json b/src/memory/package.json index d2ff38f4..32bb098d 100644 --- a/src/memory/package.json +++ b/src/memory/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-memory", - "version": "0.5.0", + "version": "0.5.1", "description": "MCP server for enabling memory for Claude through a knowledge graph", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", @@ -22,6 +22,7 @@ "@modelcontextprotocol/sdk": "0.5.0" }, "devDependencies": { + "@types/node": "^22.9.3", "shx": "^0.3.4", "typescript": "^5.6.2" } diff --git a/src/postgres/package.json b/src/postgres/package.json index a9b6b286..243d2de2 100644 --- a/src/postgres/package.json +++ b/src/postgres/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-postgres", - "version": "0.5.0", + "version": "0.5.1", "description": "MCP server for interacting with PostgreSQL databases", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", diff --git a/src/puppeteer/package.json b/src/puppeteer/package.json index 648d22c1..b6f9d8cc 100644 --- a/src/puppeteer/package.json +++ b/src/puppeteer/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-puppeteer", - "version": "0.5.0", + "version": "0.5.1", "description": "MCP server for browser automation using Puppeteer", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", diff --git a/src/sentry/pyproject.toml b/src/sentry/pyproject.toml index 8705a9cf..ff8ed0ba 100644 --- a/src/sentry/pyproject.toml +++ b/src/sentry/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mcp-server-sentry" -version = "0.5.0" +version = "0.5.1" description = "MCP server for retrieving issues from sentry.io" readme = "README.md" requires-python = ">=3.10" diff --git a/src/slack/package.json b/src/slack/package.json index e19b28e1..8c8dcdee 100644 --- a/src/slack/package.json +++ b/src/slack/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/server-slack", - "version": "0.5.0", + "version": "0.5.1", "description": "MCP server for interacting with Slack", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", @@ -22,6 +22,7 @@ "@modelcontextprotocol/sdk": "0.6.0" }, "devDependencies": { + "@types/node": "^22.9.3", "shx": "^0.3.4", "typescript": "^5.6.2" } diff --git a/src/sqlite/pyproject.toml b/src/sqlite/pyproject.toml index 9a0a4cbe..62d0c306 100644 --- a/src/sqlite/pyproject.toml +++ b/src/sqlite/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mcp-server-sqlite" -version = "0.5.0" +version = "0.5.1" description = "A simple SQLite MCP server" readme = "README.md" requires-python = ">=3.10"