asset-mcp 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -71
- package/package.json +1 -1
- package/src/server.js +1 -1
package/README.md
CHANGED
|
@@ -1,94 +1,44 @@
|
|
|
1
1
|
# asset-mcp
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
在 Cursor 等支持 MCP 的 IDE 中连接资产管理平台(OAuth2 设备码登录,无额外依赖)。
|
|
4
4
|
|
|
5
5
|
## 功能
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
- 写操作权限由后端统一拦截(scope + RBAC + 资源级权限)
|
|
7
|
+
- `mcp_auth`:`methods` / `start` / `poll` / `status` / `logout`(OAuth2 设备码)
|
|
8
|
+
- `auth.me`:当前用户
|
|
9
|
+
- `assets.search`:查询资产
|
|
10
|
+
- `assets.create`:创建资产(权限由后端拦截)
|
|
12
11
|
|
|
13
|
-
##
|
|
12
|
+
## 使用
|
|
14
13
|
|
|
15
14
|
```bash
|
|
16
|
-
|
|
17
|
-
npm start
|
|
15
|
+
npx -y asset-mcp@latest
|
|
18
16
|
```
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
npx -y asset-mcp
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## 发布到 npm
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
npm login
|
|
30
|
-
npm publish --access public
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
> 如果包名已被占用,请先修改 `package.json` 里的 `name`(例如加组织作用域)。
|
|
34
|
-
|
|
35
|
-
## 在 Cursor 中配置(示例)
|
|
36
|
-
|
|
37
|
-
将 MCP 命令配置为:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
npx -y asset-mcp
|
|
41
|
-
```
|
|
18
|
+
在 Cursor 的 MCP 配置里将启动命令设为上述命令,并配置下方环境变量。
|
|
42
19
|
|
|
43
20
|
## 环境变量
|
|
44
21
|
|
|
45
22
|
```bash
|
|
46
23
|
export ASSET_MCP_BASE_URL="http://localhost:8080"
|
|
47
|
-
export ASSET_MCP_CLIENT_ID="asset-mcp"
|
|
48
|
-
export ASSET_MCP_SCOPES="assets.read assets.write"
|
|
49
24
|
```
|
|
50
25
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
- `ASSET_MCP_DEVICE_CODE_PATH`(默认 `/oauth/device/code`)
|
|
54
|
-
- `ASSET_MCP_TOKEN_PATH`(默认 `/oauth/token`)
|
|
55
|
-
- `ASSET_MCP_REVOKE_PATH`(默认 `/oauth/revoke`)
|
|
56
|
-
|
|
57
|
-
## 标准授权流程(Device Code)
|
|
58
|
-
|
|
59
|
-
1. 先调用 `mcp_auth`,参数:`{ "action": "start" }`
|
|
60
|
-
2. 按返回的 `verificationUri + userCode` 去浏览器授权
|
|
61
|
-
3. 再调用 `mcp_auth`,参数:`{ "action": "poll" }`
|
|
62
|
-
4. 成功后用 `auth.me` 验证登录身份
|
|
63
|
-
5. 然后可调用 `assets.create`
|
|
64
|
-
|
|
65
|
-
可选先调 `mcp_auth`:`{ "action": "methods" }` 查看步骤说明。
|
|
66
|
-
|
|
67
|
-
说明:登录**仅**走 OAuth2 设备码;用户在浏览器授权页输入账号密码,**不要**通过 MCP 传密码。
|
|
68
|
-
|
|
69
|
-
## 工具入参(assets.search)
|
|
70
|
-
|
|
71
|
-
- `assetType`: `"rule" | "skill" | "mcp" | "all"`(默认 `all`)
|
|
72
|
-
- `keyword`: 关键词
|
|
26
|
+
## 登录(设备码)
|
|
73
27
|
|
|
74
|
-
|
|
28
|
+
1. 调用 `mcp_auth`,`{ "action": "start" }`
|
|
29
|
+
2. 在浏览器打开返回的 `verificationUri`,按提示完成授权(可配合 `userCode`)
|
|
30
|
+
3. 调用 `mcp_auth`,`{ "action": "poll" }`
|
|
31
|
+
4. 使用 `auth.me` 确认已登录
|
|
75
32
|
|
|
76
|
-
|
|
77
|
-
- `keyword` 直接透传平台后端,因此搜索逻辑与平台当前页面一致
|
|
78
|
-
- 不开放分页参数,固定查询第 1 页、每类最多 10 条
|
|
79
|
-
- `assetType=all` 时:`rule/skill/mcp` 各返回最多 10 条
|
|
33
|
+
可先调用 `{ "action": "methods" }` 查看说明。请在浏览器中登录,**不要**在对话里向 MCP 发送密码。
|
|
80
34
|
|
|
81
|
-
##
|
|
35
|
+
## `assets.search`
|
|
82
36
|
|
|
83
|
-
- `assetType
|
|
84
|
-
- `
|
|
85
|
-
- `description`: 资产描述
|
|
86
|
-
- `version`: 可选,默认 `v1.0`
|
|
87
|
-
- `changeLog`: 可选,默认 `初始创建`
|
|
88
|
-
- `content`: 可选(rule/skill)
|
|
89
|
-
- `mcpType/configJson/toolsJson/remark`: 可选(mcp)
|
|
37
|
+
- `assetType`:`rule` | `skill` | `mcp` | `all`(默认 `all`)
|
|
38
|
+
- `keyword`:关键词,透传后端,与平台搜索一致;固定第 1 页,每类最多 10 条;`all` 时每类各最多 10 条
|
|
90
39
|
|
|
91
|
-
##
|
|
40
|
+
## `assets.create`
|
|
92
41
|
|
|
93
|
-
-
|
|
94
|
-
-
|
|
42
|
+
- `assetType`:`rule` | `skill` | `mcp`
|
|
43
|
+
- `name`、`description`:必填(按后端校验)
|
|
44
|
+
- `version`、`changeLog`、`content`(rule/skill)、`mcpType` / `configJson` / `toolsJson` / `remark`(mcp)等见平台接口约定
|
package/package.json
CHANGED
package/src/server.js
CHANGED
|
@@ -34,7 +34,7 @@ const TOOL_DEFS = [
|
|
|
34
34
|
{
|
|
35
35
|
name: 'assets.search',
|
|
36
36
|
description:
|
|
37
|
-
'查询资产(rule/skill/mcp/all),GET /api/v1/assets/{assetType};固定每类最多 10 条(第 1
|
|
37
|
+
'查询资产(rule/skill/mcp/all),GET /api/v1/assets/{assetType};固定每类最多 10 条(第 1 页),无分页参数。若用户只说「查询资产」等而未给出筛选条件,助手应先询问需要哪些条件,并列出可选:assetType、keyword、mine、status、categoryId/categoryIds、type(仅 mcp:local/remote);用户补充或确认后再调用。',
|
|
38
38
|
inputSchema: {
|
|
39
39
|
type: 'object',
|
|
40
40
|
properties: {
|