Skip to content

Commit de7a417

Browse files
Merge branch 'main' into scrape-issue-63
2 parents d62981e + 57ce2f2 commit de7a417

28 files changed

+12127
-309
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

.github/workflows/semver-check.yml renamed to .github/workflows/semantic-check.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ on:
44
pull_request:
55
types: [opened, synchronize, reopened]
66

7+
permissions:
8+
contents: read
9+
pull-requests: write
10+
issues: write
11+
712
jobs:
813
semver-check:
914
name: Validate Semantic Version
1015
runs-on: ubuntu-latest
11-
permissions:
12-
contents: read
13-
pull-requests: write
1416

1517
steps:
1618
- name: Checkout
@@ -40,6 +42,13 @@ jobs:
4042
with:
4143
dry_run: true
4244
ci: false
45+
extra_plugins: |
46+
@semantic-release/commit-analyzer
47+
@semantic-release/release-notes-generator
48+
branches: |
49+
[
50+
"${GITHUB_HEAD_REF}"
51+
]
4352
env:
4453
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4554

.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: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
# [1.3.0](https://github.com/pathintegral-institute/mcpm.sh/compare/v1.2.0...v1.3.0) (2025-04-18)
2+
3+
4+
### Features
5+
6+
* add share for router ([#74](https://github.com/pathintegral-institute/mcpm.sh/issues/74)) ([e81a852](https://github.com/pathintegral-institute/mcpm.sh/commit/e81a85214f2287acea2b6b667a47a0e7d6f5e462))
7+
8+
# [1.2.0](https://github.com/pathintegral-institute/mcpm.sh/compare/v1.1.2...v1.2.0) (2025-04-17)
9+
10+
11+
### Features
12+
13+
* **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))
14+
115
## [1.1.2](https://github.com/pathintegral-institute/mcpm.sh/compare/v1.1.1...v1.1.2) (2025-04-17)
216

317

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)