@ty_krystal/sei-ai 0.1.0

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 ADDED
@@ -0,0 +1,211 @@
1
+ # sei-ai
2
+
3
+ 独立的 SEI MCP 服务,使用 `@modelcontextprotocol/sdk` 运行。
4
+ 支持 `stdio`、`streamable-http` 和开发者 CLI 启动,默认只开放受控的低代码查询、保存和字段元数据工具,`querySql` 默认关闭。
5
+ 构建改为使用 Vite 进行 Node 侧打包,产物输出到 `dist/`。
6
+
7
+ ## 安装
8
+
9
+ ```bash
10
+ npm install -g sei-ai
11
+ ```
12
+
13
+ ## 命令
14
+
15
+ ```bash
16
+ pnpm -F sei-ai-mcp dev -- --config ./apps/sei-ai-mcp/config.example.json
17
+ pnpm -F sei-ai-mcp run start:stdio
18
+ pnpm -F sei-ai-mcp run start:http
19
+ pnpm -F sei-ai-mcp run build
20
+ pnpm -F sei-ai-mcp run test
21
+ ```
22
+
23
+ 打包后 CLI:
24
+
25
+ ```bash
26
+ sei-ai help
27
+ sei-ai stdio --config ./config.example.json
28
+ sei-ai streamable-http --host 0.0.0.0 --port 3000 --path /mcp --config ./config.example.json
29
+ sei-ai cli api-docs --format markdown
30
+ sei-ai cli query-sql "SELECT _UID,_NAME FROM _SYS_USER"
31
+ sei-ai cli call POST /api/sei/data/removeAllCache --json '{}'
32
+ ```
33
+
34
+ ## 开发者 CLI
35
+
36
+ CLI 是新增的开发者命令面,不会改变现有 MCP server 的启动方式、tool 列表或 Host 集成配置。
37
+
38
+ 首版支持:
39
+
40
+ - `call`
41
+ - `query`
42
+ - `save`
43
+ - `query-sql`
44
+ - `api-docs`
45
+
46
+ 命令示例:
47
+
48
+ ```bash
49
+ sei-ai cli query --json '{"head":{"module":"sys_user"},"option":{"fields":"_UID,_NAME"}}'
50
+ sei-ai cli save --json '{"head":{"module":"sys_user"},"data":[{"action":"edit","rows":[{"keyVal":"admin","row":{"_NAME":"管理员"}}]}]}'
51
+ sei-ai cli query-sql "SELECT _UID,_NAME FROM _SYS_USER" --page 1 --size 20
52
+ sei-ai cli api-docs --keyword login --format json
53
+ ```
54
+
55
+ 常用认证参数:
56
+
57
+ - `--base-url`
58
+ - `--ai-key`
59
+ - `--role`
60
+ - `--account`
61
+ - `--account-project`
62
+ - `--account-checkcode`
63
+ - `--token`
64
+ - `--timeout`
65
+
66
+ 载荷输入支持:
67
+
68
+ - `--json '<payload>'`
69
+ - `--file ./payload.json`
70
+ - `--stdin`
71
+
72
+ 当前仍未覆盖:
73
+
74
+ - `init-base-data`
75
+ - 字典相关命令
76
+ - DDL/DML
77
+ - 文件上传下载
78
+
79
+ HTTP 模式:
80
+
81
+ ```bash
82
+ pnpm -F sei-ai-mcp dev -- --transport streamable-http --host 0.0.0.0 --port 3000 --path /mcp --config ./apps/sei-ai-mcp/config.example.json
83
+ ```
84
+
85
+ Docker Compose:
86
+
87
+ ```bash
88
+ docker compose -f apps/sei-ai-mcp/docker-compose.yml up -d --build
89
+ ```
90
+
91
+ 容器默认暴露 `http://127.0.0.1:3719/mcp`,并通过 `host.docker.internal` 访问宿主机上的 SEI 后端。
92
+ 如果后端也在 compose 中运行,把 `SEI_BASE_URL` 改成对应服务名即可。
93
+
94
+ ## 配置
95
+
96
+ 支持的配置项:
97
+
98
+ - `baseUrl`
99
+ - `auth.mode`: `ai-login` 或 `token`
100
+ - `auth.token`
101
+ - `auth.aiKey`
102
+ - `auth.account`
103
+ - `auth.role`
104
+ - `tools.query`
105
+ - `tools.save`
106
+ - `tools.schema`
107
+ - `tools.querySql`
108
+ - `targets.modules`
109
+ - `targets.tables`
110
+ - `targets.sources`
111
+ - `targets.views`
112
+
113
+ 敏感值可通过环境变量注入:
114
+
115
+ - `SEI_BASE_URL`
116
+ - `SEI_AI_LOGIN_KEY`
117
+ - `SEI_AI_LOGIN_ACCOUNT`
118
+ - `SEI_AI_LOGIN_ROLE`
119
+ - `SEI_TOKEN`
120
+ - `SEI_MCP_TRANSPORT`
121
+ - `SEI_MCP_HOST`
122
+ - `SEI_MCP_PORT`
123
+ - `SEI_MCP_PATH`
124
+ - `SEI_MCP_HTTP_JSON_RESPONSE`
125
+
126
+ ## 权限模型
127
+
128
+ - 未配置目标时默认拒绝。
129
+ - 查询字段必须命中白名单。
130
+ - 保存字段必须命中白名单。
131
+ - `querySql` 默认关闭,只允许单条 `SELECT/WITH`。
132
+ - stdio 日志只写 `stderr`,不污染 MCP 协议输出。
133
+
134
+ 注意:
135
+
136
+ - 上面的权限模型只约束 MCP tool 面。
137
+ - 开发者 CLI 直接调用 SEI HTTP 接口,不走 MCP 白名单过滤,因此它是调试/开发入口,不是给模型暴露的 tool 面。
138
+
139
+ ## 工具
140
+
141
+ - `sei_query`
142
+ - `sei_save`
143
+ - `sei_schema`
144
+ - `sei_query_sql`(默认关闭)
145
+
146
+ ## MCP Host
147
+
148
+ 可直接作为 stdio MCP server 启动,再由上层 Host 注册。
149
+
150
+ stdio Host 配置示例:
151
+
152
+ ```json
153
+ {
154
+ "mcpServers": {
155
+ "sei-ai-mcp": {
156
+ "command": "sei-ai",
157
+ "args": [
158
+ "stdio",
159
+ "--config",
160
+ "/abs/path/config.dev.json"
161
+ ]
162
+ }
163
+ }
164
+ }
165
+ ```
166
+
167
+ HTTP 模式可直接挂载到容器端口,Host 地址示例:
168
+
169
+ ```json
170
+ {
171
+ "mcpServers": {
172
+ "sei-ai-mcp": {
173
+ "url": "http://127.0.0.1:3719/mcp"
174
+ }
175
+ }
176
+ }
177
+ ```
178
+
179
+ ## Spring AI Java 接入
180
+
181
+ 如果 `apps/backend` 通过 Spring AI MCP client 接入,直接使用 `streamable-http`:
182
+
183
+ ```yaml
184
+ spring:
185
+ ai:
186
+ mcp:
187
+ client:
188
+ enabled: true
189
+ type: SYNC
190
+ request-timeout: 30s
191
+ toolcallback:
192
+ enabled: true
193
+ streamable-http:
194
+ connections:
195
+ sei-ai-mcp:
196
+ url: http://127.0.0.1:3719
197
+ endpoint: /mcp
198
+ ```
199
+
200
+ 如果后端默认直接访问宿主机暴露端口,可这样配置:
201
+
202
+ ```bash
203
+ SEI_AI_MCP_HTTP_URL=http://127.0.0.1:3719
204
+ SEI_AI_MCP_HTTP_ENDPOINT=/mcp
205
+ ```
206
+
207
+ 如果是宿主机或外部服务直连容器暴露端口,则访问地址为:
208
+
209
+ ```bash
210
+ http://127.0.0.1:3719/mcp
211
+ ```
@@ -0,0 +1,33 @@
1
+ {
2
+ "baseUrl": "http://127.0.0.1:8081",
3
+ "auth": {
4
+ "mode": "ai-login",
5
+ "aiKeyEnv": "SEI_AI_LOGIN_KEY",
6
+ "roleEnv": "SEI_AI_LOGIN_ROLE"
7
+ },
8
+ "tools": {
9
+ "query": true,
10
+ "save": true,
11
+ "schema": true,
12
+ "querySql": false
13
+ },
14
+ "targets": {
15
+ "modules": {
16
+ "demo_order": {
17
+ "mainTable": "demo_order",
18
+ "query": {
19
+ "fields": ["_ID", "ORDER_NO", "STATUS", "AMOUNT"],
20
+ "defaultFields": ["_ID", "ORDER_NO", "STATUS"],
21
+ "allowAllFields": false
22
+ },
23
+ "save": {
24
+ "actions": ["add", "edit"],
25
+ "fields": ["STATUS", "MEMO"]
26
+ }
27
+ }
28
+ },
29
+ "tables": {},
30
+ "sources": {},
31
+ "views": {}
32
+ }
33
+ }
package/dist/README.md ADDED
@@ -0,0 +1,211 @@
1
+ # sei-ai
2
+
3
+ 独立的 SEI MCP 服务,使用 `@modelcontextprotocol/sdk` 运行。
4
+ 支持 `stdio`、`streamable-http` 和开发者 CLI 启动,默认只开放受控的低代码查询、保存和字段元数据工具,`querySql` 默认关闭。
5
+ 构建改为使用 Vite 进行 Node 侧打包,产物输出到 `dist/`。
6
+
7
+ ## 安装
8
+
9
+ ```bash
10
+ npm install -g sei-ai
11
+ ```
12
+
13
+ ## 命令
14
+
15
+ ```bash
16
+ pnpm -F sei-ai-mcp dev -- --config ./apps/sei-ai-mcp/config.example.json
17
+ pnpm -F sei-ai-mcp run start:stdio
18
+ pnpm -F sei-ai-mcp run start:http
19
+ pnpm -F sei-ai-mcp run build
20
+ pnpm -F sei-ai-mcp run test
21
+ ```
22
+
23
+ 打包后 CLI:
24
+
25
+ ```bash
26
+ sei-ai help
27
+ sei-ai stdio --config ./config.example.json
28
+ sei-ai streamable-http --host 0.0.0.0 --port 3000 --path /mcp --config ./config.example.json
29
+ sei-ai cli api-docs --format markdown
30
+ sei-ai cli query-sql "SELECT _UID,_NAME FROM _SYS_USER"
31
+ sei-ai cli call POST /api/sei/data/removeAllCache --json '{}'
32
+ ```
33
+
34
+ ## 开发者 CLI
35
+
36
+ CLI 是新增的开发者命令面,不会改变现有 MCP server 的启动方式、tool 列表或 Host 集成配置。
37
+
38
+ 首版支持:
39
+
40
+ - `call`
41
+ - `query`
42
+ - `save`
43
+ - `query-sql`
44
+ - `api-docs`
45
+
46
+ 命令示例:
47
+
48
+ ```bash
49
+ sei-ai cli query --json '{"head":{"module":"sys_user"},"option":{"fields":"_UID,_NAME"}}'
50
+ sei-ai cli save --json '{"head":{"module":"sys_user"},"data":[{"action":"edit","rows":[{"keyVal":"admin","row":{"_NAME":"管理员"}}]}]}'
51
+ sei-ai cli query-sql "SELECT _UID,_NAME FROM _SYS_USER" --page 1 --size 20
52
+ sei-ai cli api-docs --keyword login --format json
53
+ ```
54
+
55
+ 常用认证参数:
56
+
57
+ - `--base-url`
58
+ - `--ai-key`
59
+ - `--role`
60
+ - `--account`
61
+ - `--account-project`
62
+ - `--account-checkcode`
63
+ - `--token`
64
+ - `--timeout`
65
+
66
+ 载荷输入支持:
67
+
68
+ - `--json '<payload>'`
69
+ - `--file ./payload.json`
70
+ - `--stdin`
71
+
72
+ 当前仍未覆盖:
73
+
74
+ - `init-base-data`
75
+ - 字典相关命令
76
+ - DDL/DML
77
+ - 文件上传下载
78
+
79
+ HTTP 模式:
80
+
81
+ ```bash
82
+ pnpm -F sei-ai-mcp dev -- --transport streamable-http --host 0.0.0.0 --port 3000 --path /mcp --config ./apps/sei-ai-mcp/config.example.json
83
+ ```
84
+
85
+ Docker Compose:
86
+
87
+ ```bash
88
+ docker compose -f apps/sei-ai-mcp/docker-compose.yml up -d --build
89
+ ```
90
+
91
+ 容器默认暴露 `http://127.0.0.1:3719/mcp`,并通过 `host.docker.internal` 访问宿主机上的 SEI 后端。
92
+ 如果后端也在 compose 中运行,把 `SEI_BASE_URL` 改成对应服务名即可。
93
+
94
+ ## 配置
95
+
96
+ 支持的配置项:
97
+
98
+ - `baseUrl`
99
+ - `auth.mode`: `ai-login` 或 `token`
100
+ - `auth.token`
101
+ - `auth.aiKey`
102
+ - `auth.account`
103
+ - `auth.role`
104
+ - `tools.query`
105
+ - `tools.save`
106
+ - `tools.schema`
107
+ - `tools.querySql`
108
+ - `targets.modules`
109
+ - `targets.tables`
110
+ - `targets.sources`
111
+ - `targets.views`
112
+
113
+ 敏感值可通过环境变量注入:
114
+
115
+ - `SEI_BASE_URL`
116
+ - `SEI_AI_LOGIN_KEY`
117
+ - `SEI_AI_LOGIN_ACCOUNT`
118
+ - `SEI_AI_LOGIN_ROLE`
119
+ - `SEI_TOKEN`
120
+ - `SEI_MCP_TRANSPORT`
121
+ - `SEI_MCP_HOST`
122
+ - `SEI_MCP_PORT`
123
+ - `SEI_MCP_PATH`
124
+ - `SEI_MCP_HTTP_JSON_RESPONSE`
125
+
126
+ ## 权限模型
127
+
128
+ - 未配置目标时默认拒绝。
129
+ - 查询字段必须命中白名单。
130
+ - 保存字段必须命中白名单。
131
+ - `querySql` 默认关闭,只允许单条 `SELECT/WITH`。
132
+ - stdio 日志只写 `stderr`,不污染 MCP 协议输出。
133
+
134
+ 注意:
135
+
136
+ - 上面的权限模型只约束 MCP tool 面。
137
+ - 开发者 CLI 直接调用 SEI HTTP 接口,不走 MCP 白名单过滤,因此它是调试/开发入口,不是给模型暴露的 tool 面。
138
+
139
+ ## 工具
140
+
141
+ - `sei_query`
142
+ - `sei_save`
143
+ - `sei_schema`
144
+ - `sei_query_sql`(默认关闭)
145
+
146
+ ## MCP Host
147
+
148
+ 可直接作为 stdio MCP server 启动,再由上层 Host 注册。
149
+
150
+ stdio Host 配置示例:
151
+
152
+ ```json
153
+ {
154
+ "mcpServers": {
155
+ "sei-ai-mcp": {
156
+ "command": "sei-ai",
157
+ "args": [
158
+ "stdio",
159
+ "--config",
160
+ "/abs/path/config.dev.json"
161
+ ]
162
+ }
163
+ }
164
+ }
165
+ ```
166
+
167
+ HTTP 模式可直接挂载到容器端口,Host 地址示例:
168
+
169
+ ```json
170
+ {
171
+ "mcpServers": {
172
+ "sei-ai-mcp": {
173
+ "url": "http://127.0.0.1:3719/mcp"
174
+ }
175
+ }
176
+ }
177
+ ```
178
+
179
+ ## Spring AI Java 接入
180
+
181
+ 如果 `apps/backend` 通过 Spring AI MCP client 接入,直接使用 `streamable-http`:
182
+
183
+ ```yaml
184
+ spring:
185
+ ai:
186
+ mcp:
187
+ client:
188
+ enabled: true
189
+ type: SYNC
190
+ request-timeout: 30s
191
+ toolcallback:
192
+ enabled: true
193
+ streamable-http:
194
+ connections:
195
+ sei-ai-mcp:
196
+ url: http://127.0.0.1:3719
197
+ endpoint: /mcp
198
+ ```
199
+
200
+ 如果后端默认直接访问宿主机暴露端口,可这样配置:
201
+
202
+ ```bash
203
+ SEI_AI_MCP_HTTP_URL=http://127.0.0.1:3719
204
+ SEI_AI_MCP_HTTP_ENDPOINT=/mcp
205
+ ```
206
+
207
+ 如果是宿主机或外部服务直连容器暴露端口,则访问地址为:
208
+
209
+ ```bash
210
+ http://127.0.0.1:3719/mcp
211
+ ```
@@ -0,0 +1,33 @@
1
+ {
2
+ "baseUrl": "http://127.0.0.1:8081",
3
+ "auth": {
4
+ "mode": "ai-login",
5
+ "aiKeyEnv": "SEI_AI_LOGIN_KEY",
6
+ "roleEnv": "SEI_AI_LOGIN_ROLE"
7
+ },
8
+ "tools": {
9
+ "query": true,
10
+ "save": true,
11
+ "schema": true,
12
+ "querySql": false
13
+ },
14
+ "targets": {
15
+ "modules": {
16
+ "demo_order": {
17
+ "mainTable": "demo_order",
18
+ "query": {
19
+ "fields": ["_ID", "ORDER_NO", "STATUS", "AMOUNT"],
20
+ "defaultFields": ["_ID", "ORDER_NO", "STATUS"],
21
+ "allowAllFields": false
22
+ },
23
+ "save": {
24
+ "actions": ["add", "edit"],
25
+ "fields": ["STATUS", "MEMO"]
26
+ }
27
+ }
28
+ },
29
+ "tables": {},
30
+ "sources": {},
31
+ "views": {}
32
+ }
33
+ }