Skip to content

Commit 1efa60d

Browse files
authored
ci: Enable publish to mcp registry (#40)
Also update project description
1 parent 382bb23 commit 1efa60d

File tree

6 files changed

+130
-4
lines changed

6 files changed

+130
-4
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Publish to MCP Registry
2+
3+
env:
4+
# Releases: https://github.com/modelcontextprotocol/registry/releases
5+
DEFAULT_MCP_PUBLISHER_VERSION: 'v1.3.10'
6+
7+
on:
8+
# Allow this workflow to be called from other workflows
9+
workflow_call:
10+
# Allow manual triggering
11+
workflow_dispatch:
12+
inputs:
13+
mcp_publisher_version:
14+
description: 'MCP Publisher version to use'
15+
required: false
16+
type: string
17+
default: '${{ env.DEFAULT_MCP_PUBLISHER_VERSION }}'
18+
dry_run:
19+
description: 'Run in dry-run mode (install and login only, no publishing)'
20+
required: false
21+
type: boolean
22+
default: true
23+
# Trigger dry-run on changes to this workflow file
24+
pull_request:
25+
paths:
26+
- '.github/workflows/publish-mcp-registry.yml'
27+
branches:
28+
- main
29+
30+
permissions:
31+
id-token: write # Required for login via github-oidc
32+
contents: read
33+
34+
jobs:
35+
publish-mcp-registry:
36+
runs-on: ubuntu-24.04
37+
steps:
38+
- name: Checkout
39+
uses: actions/checkout@v5
40+
- name: Install MCP Publisher
41+
run: |
42+
MCP_PUBLISHER_VERSION="${{ inputs.mcp_publisher_version || env.DEFAULT_MCP_PUBLISHER_VERSION }}"
43+
MCP_PUBLISHER_OS_ARCH="$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')"
44+
MCP_PUBLISHER_DOWNLOAD_URL="https://github.com/modelcontextprotocol/registry/releases/download/${MCP_PUBLISHER_VERSION}/mcp-publisher_${MCP_PUBLISHER_OS_ARCH}.tar.gz"
45+
curl -L "${MCP_PUBLISHER_DOWNLOAD_URL}" | tar xz mcp-publisher
46+
- name: Login to MCP Registry
47+
run: ./mcp-publisher login github-oidc
48+
- name: Publish to MCP Registry
49+
if: ${{ inputs.dry_run != true && github.event_name != 'pull_request' }}
50+
run: ./mcp-publisher publish

.github/workflows/release-please.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,8 @@ jobs:
5454
mv package.json.bak package.json
5555
- name: Publish to npm
5656
run: npm publish --access public
57+
58+
publish-mcp-registry:
59+
needs: [pull-request, publish-package]
60+
if: ${{needs.pull-request.outputs.releases_created && toJson(fromJson(needs.pull-request.outputs.paths_released)) != '[]'}}
61+
uses: ./.github/workflows/publish-mcp-registry.yml

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# UI5 MCP Server
22

3-
A [Model Context Protocol](https://modelcontextprotocol.io/) server for UI5 development.
3+
A [Model Context Protocol](https://modelcontextprotocol.io/) server for UI5 application development.
44

55
[![OpenUI5 Community Slack (#tooling channel)](https://img.shields.io/badge/slack-join-44cc11.svg)](https://ui5-slack-invite.cfapps.eu10.hana.ondemand.com/)
66
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.1%20adopted-ff69b4.svg)](https://github.com/UI5/mcp-server?tab=coc-ov-file#readme)
@@ -95,7 +95,7 @@ The UI5 MCP server can be configured using the following environment variables.
9595
* Description: Set to any value to disable [resources](https://modelcontextprotocol.io/specification/2025-06-18/server/resources) in the MCP server responses. This is useful for [clients that do not support resources](https://modelcontextprotocol.io/clients), such as Cursor or the Gemini CLI.
9696
* **`UI5_LOG_LVL`**:
9797
* Default Value: `info`
98-
* Description: Internal [log level](https://sap.github.io/ui5-tooling/stable/pages/Troubleshooting/#changing-the-log-level): `silent`, `error`, `warn`, `info`, `perf`, `verbose`, `silly`
98+
* Description: Internal [log level](https://ui5.github.io/cli/stable/pages/Troubleshooting/#changing-the-log-level): `silent`, `error`, `warn`, `info`, `perf`, `verbose`, `silly`
9999
* **`UI5_DATA_DIR`**:
100100
* Default Value: The `.ui5` directory in the user's home directory
101101
* Description: Directory where the MCP server stores its data, such as cached API references

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@ui5/mcp-server",
33
"version": "0.1.3",
4-
"description": "A MCP server for UI5",
4+
"description": "MCP server for UI5 application development",
55
"author": {
66
"name": "SAP SE",
77
"email": "[email protected]",
@@ -25,6 +25,7 @@
2525
"bin": {
2626
"ui5mcp": "bin/ui5mcp.js"
2727
},
28+
"mcpName": "io.github.UI5/mcp-server",
2829
"type": "module",
2930
"scripts": {
3031
"start": "tsx src/cli.ts",

release-please-config.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,13 @@
6363
"hidden": true
6464
}
6565
]
66-
}
66+
},
67+
"extra-files": [
68+
{
69+
"type": "json",
70+
"path": "server.json",
71+
"jsonpath": "$..version"
72+
}
73+
]
6774
}
6875
}

server.json

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
{
2+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json",
3+
"name": "io.github.UI5/mcp-server",
4+
"description": "MCP server for UI5 application development",
5+
"repository": {
6+
"url": "https://github.com/UI5/mcp-server",
7+
"source": "github"
8+
},
9+
"version": "0.1.3",
10+
"packages": [
11+
{
12+
"registryType": "npm",
13+
"registryBaseUrl": "https://registry.npmjs.org",
14+
"identifier": "@ui5/mcp-server",
15+
"version": "0.1.3",
16+
"transport": {
17+
"type": "stdio"
18+
},
19+
"environmentVariables": [
20+
{
21+
"default": "localhost, services.odata.org",
22+
"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'.",
23+
"isRequired": false,
24+
"format": "string",
25+
"isSecret": false,
26+
"name": "UI5_MCP_SERVER_ALLOWED_ODATA_DOMAINS"
27+
},
28+
{
29+
"default": "false",
30+
"description": "Set to any value to disable structured content in the MCP server responses.",
31+
"isRequired": false,
32+
"format": "boolean",
33+
"isSecret": false,
34+
"name": "UI5_MCP_SERVER_RESPONSE_NO_STRUCTURED_CONTENT"
35+
},
36+
{
37+
"default": "false",
38+
"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.",
39+
"isRequired": false,
40+
"format": "string",
41+
"isSecret": false,
42+
"name": "UI5_MCP_SERVER_RESPONSE_NO_RESOURCES"
43+
},
44+
{
45+
"default": "info",
46+
"description": "Internal log level (https://ui5.github.io/cli/stable/pages/Troubleshooting/#changing-the-log-level): 'silent', 'error', 'warn', 'info', 'perf', 'verbose' or 'silly'",
47+
"isRequired": false,
48+
"format": "string",
49+
"isSecret": false,
50+
"name": "UI5_LOG_LVL"
51+
},
52+
{
53+
"default": "The '.ui5' directory in the user's home directory",
54+
"description": "Directory where the MCP server stores its data, such as cached API references.",
55+
"isRequired": false,
56+
"format": "string",
57+
"isSecret": false,
58+
"name": "UI5_DATA_DIR"
59+
}
60+
]
61+
}
62+
]
63+
}

0 commit comments

Comments
 (0)