Skip to content

Commit bfc899b

Browse files
authored
Merge branch 'main' into caozhen/fix-arguments-replace-problem
2 parents 1ff3186 + c0f5156 commit bfc899b

37 files changed

+13299
-947
lines changed

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ concurrency:
1919

2020
jobs:
2121
validate:
22-
uses: ./.github/workflows/validate-manifests.yml
22+
uses: ./.github/workflows/test.yml
2323

2424
build:
2525
runs-on: ubuntu-latest
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: Semantic Version Check
2+
3+
on:
4+
pull_request_target:
5+
types: [opened, synchronize, reopened]
6+
7+
jobs:
8+
semver-check:
9+
name: Validate Semantic Version
10+
runs-on: ubuntu-latest
11+
permissions:
12+
contents: write
13+
pull-requests: write
14+
issues: write
15+
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v4
19+
with:
20+
ref: ${{ github.event.pull_request.head.sha }}
21+
fetch-depth: 0
22+
persist-credentials: false
23+
24+
- name: Install pnpm
25+
uses: pnpm/action-setup@v4
26+
with:
27+
version: 8
28+
run_install: false
29+
30+
- name: Setup Node.js
31+
uses: actions/setup-node@v4
32+
with:
33+
node-version: 'lts/*'
34+
cache: 'pnpm'
35+
36+
- name: Install dependencies
37+
run: pnpm install
38+
39+
- name: Check Release
40+
uses: cycjimmy/semantic-release-action@v4
41+
id: semantic
42+
with:
43+
dry_run: true
44+
ci: true
45+
extra_plugins: |
46+
@semantic-release/commit-analyzer
47+
@semantic-release/release-notes-generator
48+
env:
49+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
50+
51+
- name: Comment PR
52+
uses: thollander/actions-comment-pull-request@v2
53+
with:
54+
message: |
55+
## Semantic Version Check
56+
57+
${{ steps.semantic.outputs.new_release_version && '✅ Valid semantic version changes detected!' || '⚠️ No semantic version changes detected.' }}
58+
59+
${{ steps.semantic.outputs.new_release_version && format('Next version will be: **{0}**', steps.semantic.outputs.new_release_version) || 'Please ensure your commits follow the [Conventional Commits](https://www.conventionalcommits.org/) format:
60+
61+
- `feat: new feature` (triggers MINOR version bump)
62+
- `fix: bug fix` (triggers PATCH version bump)
63+
- `BREAKING CHANGE: description` (triggers MAJOR version bump)' }}
64+
comment_tag: semantic-version-check

.github/workflows/semver-check.yml

Lines changed: 0 additions & 69 deletions
This file was deleted.

.releaserc.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"branches": [
3-
"main",
4-
"master"
3+
"main"
54
],
65
"plugins": [
76
"@semantic-release/commit-analyzer",

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,31 @@
1+
## [1.4.1](https://github.com/pathintegral-institute/mcpm.sh/compare/v1.4.0...v1.4.1) (2025-04-18)
2+
3+
4+
### Bug Fixes
5+
6+
* update goose cli client name ([#77](https://github.com/pathintegral-institute/mcpm.sh/issues/77)) ([6b17d94](https://github.com/pathintegral-institute/mcpm.sh/commit/6b17d94f97cf0b4d01ad1f11e8b1abb169afc509))
7+
8+
# [1.4.0](https://github.com/pathintegral-institute/mcpm.sh/compare/v1.3.0...v1.4.0) (2025-04-18)
9+
10+
11+
### Features
12+
13+
* **router:** Improve function naming in router ([654872d](https://github.com/pathintegral-institute/mcpm.sh/commit/654872dec5d7588f115bab67a08ac2779e9383f3))
14+
15+
# [1.3.0](https://github.com/pathintegral-institute/mcpm.sh/compare/v1.2.0...v1.3.0) (2025-04-18)
16+
17+
18+
### Features
19+
20+
* add share for router ([#74](https://github.com/pathintegral-institute/mcpm.sh/issues/74)) ([e81a852](https://github.com/pathintegral-institute/mcpm.sh/commit/e81a85214f2287acea2b6b667a47a0e7d6f5e462))
21+
22+
# [1.2.0](https://github.com/pathintegral-institute/mcpm.sh/compare/v1.1.2...v1.2.0) (2025-04-17)
23+
24+
25+
### Features
26+
27+
* **command:** Add info command and simplify search output ([#73](https://github.com/pathintegral-institute/mcpm.sh/issues/73)) ([27a4443](https://github.com/pathintegral-institute/mcpm.sh/commit/27a44434c5afe72ee1ceec1b2ef2b6b6a1698f5f))
28+
129
## [1.1.2](https://github.com/pathintegral-institute/mcpm.sh/compare/v1.1.1...v1.1.2) (2025-04-17)
230

331

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,15 @@ The Router also maintains persistent connections to MCP servers, enabling multip
152152

153153
For more technical details on the router's implementation and namespacing, see [`docs/router_tech_design.md`](docs/router_tech_design.md).
154154

155+
The Router can be shared in public network by `mcpm router share`. Be aware that the share link will be exposed to the public, make sure the generated secret is secure and only share to trusted users. See [MCPM Router Share](docs/router_share.md) for more details about how it works.
156+
155157
```bash
156158
mcpm router status # Check if the router daemon is running
157159
mcpm router on # Start the MCP router daemon
158160
mcpm router off # Stop the MCP router daemon
159-
mcpm set --host HOST --port PORT # Set the MCP router daemon's host and port
161+
mcpm router set --host HOST --port PORT --address ADDRESS # Set the MCP router daemon's host port and the remote share address
162+
mcpm router share # Share the router to public
163+
mcpm router unshare # Unshare the router
160164
```
161165

162166
### 🛠️ Utilities (`util`)

README.zh-CN.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,15 @@ MCPM 路由器作为后台守护进程运行,充当稳定端点(例如 `http
152152

153153
有关路由器实现和命名空间的更多技术细节,请参阅 [`docs/router_tech_design.md`](docs/router_tech_design.md)
154154

155+
Router可以通过命令`mcpm router share`来将router分享到公网。注意确保生成的密钥没有暴露,并只分享给可信用户。有关分享的更多细节,请参阅[分享](docs/router_share.md)
156+
155157
```bash
156158
mcpm router status # 检查路由器守护进程是否正在运行
157159
mcpm router on # 启动 MCP 路由器守护进程
158160
mcpm router off # 停止 MCP 路由器守护进程
159-
mcpm set --host HOST --port PORT # 设置 MCP 路由器守护进程的主机和端口
161+
mcpm router set --host HOST --port PORT --address ADDRESS # 设置 MCP 路由器守护进程的主机,端口和分享的远程服务器
162+
mcpm router share # 将router分享到公网
163+
mcpm router unshare # 取消分享
160164
```
161165

162166
### 🛠️ 实用工具 (`util`)

docs/router_share.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
2+
# MCPM Router Share
3+
4+
## Introduction
5+
Your local MCPM Router can be shared in public network and others can connect to your router by the share link and use your configured MCPM Profile. In this document, we will explain how to use it and how it works.
6+
7+
## Create a share link
8+
9+
```bash
10+
mcpm router share
11+
mcpm router share --profile <PROFILE_NAME> --address <ADDRESS>
12+
```
13+
There will be a share link and a secret. The final share link will be `http://<ADDRESS>?s=<SECRET>&profile=<PROFILE_NAME>`. You can share this link with others and by adding this share link to mcpm client, they can connect to your router.
14+
15+
If address is not specified, the share link will be proxied by our server `share.mcpm.sh`. You can also specify a custom address to share.
16+
17+
If profile is not specified, the share link will use the current active profile. If no active profile found, the user need to specify the profile manually.
18+
19+
To be noted that if your router is not on or your system sleeps, the shared link will not be accessible.
20+
21+
## How it works
22+
23+
We use a fork version of frp from [huggingface/frp](https://github.com/huggingface/frp) to create a tunnel to your local MCPM Router. You can also check the [original frp](https://github.com/fatedier/frp) for more details about frp.
24+
25+
If you want to set up your own frp tunnel, you can either build our docker image from scratch or use our published docker images for frps(server) and frpc(client) by following the instructions below.
26+
27+
In your public server, you can create a frps config following the guide [here](https://github.com/huggingface/frp?tab=readme-ov-file#setting-up-a-share-server). Then start the frps container by:
28+
```bash
29+
docker run -d --name frps -p 7000:7000 -p 7001:7001 -v /path/to/frps.ini:/frp/frps.ini ghcr.io/pathintegral-institute/frps:latest
30+
```
31+
32+
Then you can share the router with your own frp server by specifying the address:
33+
```bash
34+
mcpm router share --address <YOUR_ADDRESS>
35+
```
36+
37+
## Authentication
38+
There will be a secret token generated for authentication. The user MUST specify the secret token as a query parameter `s=<SECRET>` when connecting to your router. Make sure to keep the secret token secure and only share it with trusted users.
39+
40+
## Unshare
41+
42+
```bash
43+
mcpm router unshare
44+
```
45+
46+
This will stop the tunnel and remove the share link.

mcp-registry/schema/server-schema.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@
3535
"type": {
3636
"type": "string",
3737
"enum": [
38-
"git"
38+
"git",
39+
"npm"
3940
]
4041
},
4142
"url": {

0 commit comments

Comments
 (0)