diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 65dc68e..3067b56 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -58,3 +58,10 @@ jobs: run: | echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' >> ./.npmrc npm publish --provenance --access public + - name: Install MCP Publisher + run: | + curl -L "https://github.com/modelcontextprotocol/registry/releases/download/v1.0.0/mcp-publisher_1.0.0_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher + - name: Login to MCP Registry + run: ./mcp-publisher login github-oidc + - name: Publish to MCP Registry + run: ./mcp-publisher publish diff --git a/package.json b/package.json index d6efa48..0b3d487 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "bin": { "ui5mcp": "bin/ui5mcp.js" }, + "mcpName": "io.github.UI5/mcp-server", "type": "module", "scripts": { "start": "tsx src/cli.ts", diff --git a/release-please-config.json b/release-please-config.json index ba621df..4010b4b 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -63,6 +63,13 @@ "hidden": true } ] - } + }, + "extra-files": [ + { + "type": "json", + "path": "server.json", + "jsonpath": "$..version" + } + ] } } diff --git a/server.json b/server.json new file mode 100644 index 0000000..e421434 --- /dev/null +++ b/server.json @@ -0,0 +1,64 @@ +{ + "$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json", + "name": "io.github.UI5/mcp-server", + "description": "A MCP server for UI5", + "status": "active", + "repository": { + "url": "https://github.com/UI5/mcp-server", + "source": "github" + }, + "version": "0.1.1", + "packages": [ + { + "registry_type": "npm", + "registry_base_url": "https://registry.npmjs.org", + "identifier": "@ui5/mcp-server", + "version": "0.1.1", + "transport": { + "type": "stdio" + }, + "environment_variables": [ + { + "default": "localhost, services.odata.org", + "description": "A comma-separated list of domains that are allowed to be used in the 'oDataV4Url' parameter of the 'create_ui5_app' tool, for example: 'localhost, example.com, sub.example.com'. Set to an empty string to allow any domains. For wildcard subdomains, prefix the domain with a dot: '.example.com'. This will match 'www.example.com' but not 'example.com'.", + "is_required": false, + "format": "string", + "is_secret": false, + "name": "UI5_MCP_SERVER_ALLOWED_ODATA_DOMAINS" + }, + { + "default": "false", + "description": "Set to any value to disable structured content in the MCP server responses.", + "is_required": false, + "format": "boolean", + "is_secret": false, + "name": "UI5_MCP_SERVER_RESPONSE_NO_STRUCTURED_CONTENT" + }, + { + "default": "false", + "description": "Set to any value to disable resources in the MCP server responses, see https://modelcontextprotocol.io/specification/2025-06-18/server/resource. This is useful for clients that do not support resources, see https://modelcontextprotocol.io/clients, such as Cursor or the Gemini CLI.", + "is_required": false, + "format": "string", + "is_secret": false, + "name": "UI5_MCP_SERVER_RESPONSE_NO_RESOURCES" + }, + { + "default": "info", + "description": "Internal log level, see https://sap.github.io/ui5-tooling/stable/pages/Troubleshooting/#changing-the-log-level): 'silent', 'error', 'warn', 'info', 'perf', 'verbose' or 'silly'", + "is_required": false, + "format": "string", + "is_secret": false, + "name": "UI5_LOG_LVL" + }, + { + "default": "The '.ui5' directory in the user's home directory", + "description": "Directory where the MCP server stores its data, such as cached API references.", + "is_required": false, + "format": "string", + "is_secret": false, + "name": "UI5_DATA_DIR" + } + ] + } + ] +}