@double-coding/dsh-connectors 0.0.0-stage → 0.1.0-test.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.
Files changed (125) hide show
  1. package/CONTRIBUTING.md +173 -0
  2. package/LICENSE +21 -0
  3. package/README.en.md +156 -0
  4. package/README.md +153 -2
  5. package/assets/readme/architecture.webp +0 -0
  6. package/assets/readme/hero-en.svg +62 -0
  7. package/assets/readme/hero.svg +62 -0
  8. package/assets/readme/panel.webp +0 -0
  9. package/cordis.patch.yml +8 -0
  10. package/dist/client.js +5385 -0
  11. package/dist/client.js.map +7 -0
  12. package/dist/host/catalog.d.ts +7 -0
  13. package/dist/host/catalog.js +15 -0
  14. package/dist/host/catalog.js.map +1 -0
  15. package/dist/host/cli/adapters.d.ts +69 -0
  16. package/dist/host/cli/adapters.js +577 -0
  17. package/dist/host/cli/adapters.js.map +1 -0
  18. package/dist/host/cli/exec.d.ts +34 -0
  19. package/dist/host/cli/exec.js +186 -0
  20. package/dist/host/cli/exec.js.map +1 -0
  21. package/dist/host/cli/service.d.ts +44 -0
  22. package/dist/host/cli/service.js +711 -0
  23. package/dist/host/cli/service.js.map +1 -0
  24. package/dist/host/cli/version.d.ts +1 -0
  25. package/dist/host/cli/version.js +16 -0
  26. package/dist/host/cli/version.js.map +1 -0
  27. package/dist/host/connections.d.ts +106 -0
  28. package/dist/host/connections.js +1207 -0
  29. package/dist/host/connections.js.map +1 -0
  30. package/dist/host/errors.d.ts +4 -0
  31. package/dist/host/errors.js +8 -0
  32. package/dist/host/errors.js.map +1 -0
  33. package/dist/host/instanceUrl.d.ts +1 -0
  34. package/dist/host/instanceUrl.js +27 -0
  35. package/dist/host/instanceUrl.js.map +1 -0
  36. package/dist/host/mcpServers.d.ts +19 -0
  37. package/dist/host/mcpServers.js +243 -0
  38. package/dist/host/mcpServers.js.map +1 -0
  39. package/dist/host/oauth.d.ts +49 -0
  40. package/dist/host/oauth.js +215 -0
  41. package/dist/host/oauth.js.map +1 -0
  42. package/dist/host/openExternal.d.ts +1 -0
  43. package/dist/host/openExternal.js +45 -0
  44. package/dist/host/openExternal.js.map +1 -0
  45. package/dist/host/providers.d.ts +105 -0
  46. package/dist/host/providers.js +199 -0
  47. package/dist/host/providers.js.map +1 -0
  48. package/dist/host/routes.d.ts +18 -0
  49. package/dist/host/routes.js +514 -0
  50. package/dist/host/routes.js.map +1 -0
  51. package/dist/host/sse-bridge.d.ts +1 -0
  52. package/dist/host/sse-bridge.js +168 -0
  53. package/dist/host/sse-bridge.js.map +1 -0
  54. package/dist/host/store.d.ts +184 -0
  55. package/dist/host/store.js +98 -0
  56. package/dist/host/store.js.map +1 -0
  57. package/dist/index.d.ts +5 -0
  58. package/dist/index.js +35 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/shared/categories.d.ts +12 -0
  61. package/dist/shared/categories.js +59 -0
  62. package/dist/shared/categories.js.map +1 -0
  63. package/dist/shared/customConfig.d.ts +1 -0
  64. package/dist/shared/customConfig.js +2 -0
  65. package/dist/shared/customConfig.js.map +1 -0
  66. package/dist/shared/types.d.ts +222 -0
  67. package/dist/shared/types.js +2 -0
  68. package/dist/shared/types.js.map +1 -0
  69. package/package.json +96 -4
  70. package/providers/README.md +44 -0
  71. package/providers/amap/icon.png +0 -0
  72. package/providers/amap/provider.json +34 -0
  73. package/providers/baidu-netdisk/icon.png +0 -0
  74. package/providers/baidu-netdisk/provider.json +36 -0
  75. package/providers/circleci/icon.svg +1 -0
  76. package/providers/circleci/provider.json +29 -0
  77. package/providers/cloudflare-docs/icon.svg +1 -0
  78. package/providers/cloudflare-docs/provider.json +26 -0
  79. package/providers/context7/icon.png +0 -0
  80. package/providers/context7/provider.json +25 -0
  81. package/providers/deepwiki/icon.svg +5 -0
  82. package/providers/deepwiki/provider.json +26 -0
  83. package/providers/firecrawl/icon.png +0 -0
  84. package/providers/firecrawl/provider.json +40 -0
  85. package/providers/gitee/icon.svg +1 -0
  86. package/providers/gitee/provider.json +32 -0
  87. package/providers/github/icon.svg +1 -0
  88. package/providers/github/provider.json +33 -0
  89. package/providers/gitlab/icon.svg +1 -0
  90. package/providers/gitlab/provider.json +31 -0
  91. package/providers/gitlab-self-hosted/icon.svg +1 -0
  92. package/providers/gitlab-self-hosted/provider.json +39 -0
  93. package/providers/grafana/icon.svg +1 -0
  94. package/providers/grafana/provider.json +32 -0
  95. package/providers/linear/icon.svg +1 -0
  96. package/providers/linear/provider.json +41 -0
  97. package/providers/microsoft-learn/icon.svg +6 -0
  98. package/providers/microsoft-learn/provider.json +26 -0
  99. package/providers/neon/icon.svg +1 -0
  100. package/providers/neon/provider.json +41 -0
  101. package/providers/notion/icon.svg +1 -0
  102. package/providers/notion/provider.json +29 -0
  103. package/providers/posthog/icon.svg +1 -0
  104. package/providers/posthog/provider.json +38 -0
  105. package/providers/postman/icon.svg +1 -0
  106. package/providers/postman/provider.json +29 -0
  107. package/providers/qcc/icon.png +0 -0
  108. package/providers/qcc/provider.json +50 -0
  109. package/providers/sentry/icon.svg +1 -0
  110. package/providers/sentry/provider.json +30 -0
  111. package/providers/sourcegraph/icon.png +0 -0
  112. package/providers/sourcegraph/provider.json +32 -0
  113. package/providers/supabase/icon.svg +1 -0
  114. package/providers/supabase/provider.json +52 -0
  115. package/providers/tavily/icon.svg +4 -0
  116. package/providers/tavily/provider.json +41 -0
  117. package/providers/tencent-docs/icon.png +0 -0
  118. package/providers/tencent-docs/provider.json +34 -0
  119. package/providers/tencent-yuanbao-search/icon.png +0 -0
  120. package/providers/tencent-yuanbao-search/provider.json +32 -0
  121. package/providers/tianyancha/icon.png +0 -0
  122. package/providers/tianyancha/provider.json +34 -0
  123. package/providers/yunxiao/icon.svg +1 -0
  124. package/providers/yunxiao/provider.json +30 -0
  125. package/schema/provider.schema.json +325 -0
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "../../schema/provider.schema.json",
3
+ "schemaVersion": 1,
4
+ "id": "tencent-docs",
5
+ "name": "腾讯文档",
6
+ "vendor": "腾讯",
7
+ "category": "办公协作",
8
+ "summary": "读写腾讯文档、在线表格与智能画布。",
9
+ "description": "腾讯文档官方 MCP 服务:在空间里搜索与新建文档、读写正文、导入导出,也能按 Markdown 生成智能画布。",
10
+ "examples": [
11
+ "在腾讯文档新建一份「Q3 项目周报」,把我给的大纲补成完整正文",
12
+ "搜一下我空间里最近改过的需求文档,列出标题和更新时间",
13
+ "把这份 Markdown 导入腾讯文档,生成可协作的在线文档",
14
+ "把会议纪要整理成一页智能画布,包含时间线和待办"
15
+ ],
16
+ "tags": ["文档", "在线表格", "智能画布"],
17
+ "order": 91,
18
+ "server": {
19
+ "serverName": "tencent-docs",
20
+ "transport": "streamable-http",
21
+ "url": "https://docs.qq.com/openapi/mcp"
22
+ },
23
+ "auth": {
24
+ "type": "oauth2",
25
+ "flow": "pkce",
26
+ "registration": "dcr",
27
+ "scopes": ["docs:read", "docs:write"],
28
+ "help": {
29
+ "url": "https://docs.qq.com/open/document/mcp/",
30
+ "label": "查看腾讯文档 MCP 说明",
31
+ "hint": "授权后在浏览器登录腾讯文档即可;调用按账号的每日额度计,令牌只保存在本机。"
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "../../schema/provider.schema.json",
3
+ "schemaVersion": 1,
4
+ "id": "tencent-yuanbao-search",
5
+ "name": "腾讯元宝搜索",
6
+ "vendor": "腾讯云",
7
+ "category": "知识检索",
8
+ "summary": "联网搜索,返回与查询相关的网页内容。",
9
+ "description": "腾讯云联网搜索 MCP 服务,适合查询最新资讯、技术资料与网页来源。",
10
+ "examples": [
11
+ "搜索最近关于某个主题的网页",
12
+ "查一个技术问题的最新资料",
13
+ "汇总某个新闻事件的来源",
14
+ "对比两个产品的官方介绍"
15
+ ],
16
+ "tags": ["联网搜索", "网页", "资讯"],
17
+ "order": 68,
18
+ "server": {
19
+ "serverName": "tencent-yuanbao-search",
20
+ "transport": "streamable-http",
21
+ "url": "https://api.wsa.cloud.tencent.com/Mcp"
22
+ },
23
+ "auth": {
24
+ "type": "bearer",
25
+ "label": "腾讯云 WSA API Key",
26
+ "help": {
27
+ "url": "https://cloud.tencent.com/developer/mcp/server/11764",
28
+ "label": "查看腾讯云 MCP 说明",
29
+ "hint": "在腾讯云 MCP 广场对应服务中获取 API Key;令牌只保存在本机。"
30
+ }
31
+ }
32
+ }
Binary file
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "../../schema/provider.schema.json",
3
+ "schemaVersion": 1,
4
+ "id": "tianyancha",
5
+ "name": "天眼查",
6
+ "vendor": "天眼查",
7
+ "category": "数据分析",
8
+ "summary": "查企业工商、股权、司法与知识产权信息。",
9
+ "description": "天眼查官方 MCP 服务:按公司名或统一社会信用代码查询工商登记、股东与股权穿透、司法涉诉、知识产权、经营与招投标信息。",
10
+ "examples": [
11
+ "查一下「某某科技有限公司」的工商信息和主要股东",
12
+ "把这家公司的对外投资和股权穿透整理成表",
13
+ "看这家公司近三年的司法涉诉和被执行记录",
14
+ "对比两家同行的注册资本、参保人数和专利数量"
15
+ ],
16
+ "tags": ["企业查询", "工商", "司法风险"],
17
+ "order": 83,
18
+ "server": {
19
+ "serverName": "tianyancha",
20
+ "transport": "streamable-http",
21
+ "url": "https://mcp.tianyancha.com/mcp"
22
+ },
23
+ "auth": {
24
+ "type": "oauth2",
25
+ "flow": "pkce",
26
+ "registration": "dcr",
27
+ "scopes": ["mcp:tools.call"],
28
+ "help": {
29
+ "url": "https://ai.tianyancha.com/guide",
30
+ "label": "查看天眼查 MCP 接入说明",
31
+ "hint": "授权使用你开放平台账号的额度,按接口计费;需先在开放平台开通用量。"
32
+ }
33
+ }
34
+ }
@@ -0,0 +1 @@
1
+ <svg fill="#FF6A00" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Alibaba Cloud</title><path d="M3.996 4.517h5.291L8.01 6.324 4.153 7.506a1.668 1.668 0 0 0-1.165 1.601v5.786a1.668 1.668 0 0 0 1.165 1.6l3.857 1.183 1.277 1.807H3.996A3.996 3.996 0 0 1 0 15.487V8.513a3.996 3.996 0 0 1 3.996-3.996m16.008 0h-5.291l1.277 1.807 3.857 1.182c.715.227 1.17.889 1.165 1.601v5.786a1.668 1.668 0 0 1-1.165 1.6l-3.857 1.183-1.277 1.807h5.291A3.996 3.996 0 0 0 24 15.487V8.513a3.996 3.996 0 0 0-3.996-3.996m-4.007 8.345H8.002v-1.804h7.995Z"/></svg>
@@ -0,0 +1,30 @@
1
+ {
2
+ "$schema": "../../schema/provider.schema.json",
3
+ "schemaVersion": 1,
4
+ "id": "yunxiao",
5
+ "name": "云效 DevOps",
6
+ "vendor": "阿里云",
7
+ "category": "开发工具",
8
+ "summary": "查询云效项目、代码库、流水线与工作项。",
9
+ "description": "阿里云云效官方 MCP 服务(公共云),支持 OAuth 授权,可查询项目、代码库、流水线与工作项。专有云实例请使用自定义连接器。",
10
+ "examples": [
11
+ "查当前项目最近的流水线运行状态",
12
+ "列出我负责的工作项和截止时间",
13
+ "查一个代码库最近的合并请求",
14
+ "总结一个迭代里未完成的任务"
15
+ ],
16
+ "tags": ["DevOps", "流水线", "工作项"],
17
+ "order": 74,
18
+ "server": {
19
+ "serverName": "yunxiao",
20
+ "transport": "streamable-http",
21
+ "url": "https://openapi-rdc.aliyuncs.com/ai/mcp"
22
+ },
23
+ "auth": {
24
+ "type": "oauth2",
25
+ "flow": "pkce",
26
+ "registration": "dcr",
27
+ "scopes": ["mcp"],
28
+ "clientName": "DSH 连接器"
29
+ }
30
+ }
@@ -0,0 +1,325 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "DSH Connector Provider",
4
+ "description": "dsh-connectors 内置 provider 的唯一声明格式。新增 provider 时在 providers/<id>/provider.json 中提供此结构。",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "id", "name", "category", "summary", "server", "auth"],
8
+ "properties": {
9
+ "$schema": {
10
+ "type": "string",
11
+ "description": "编辑器提示用,可省略;插件运行时忽略。"
12
+ },
13
+ "schemaVersion": {
14
+ "const": 1,
15
+ "description": "provider 契约版本,当前固定为 1。"
16
+ },
17
+ "id": {
18
+ "type": "string",
19
+ "pattern": "^[a-z0-9][a-z0-9-]*$",
20
+ "description": "全局唯一,必须与目录名一致;只允许小写字母、数字和连字符。"
21
+ },
22
+ "name": {
23
+ "type": "string",
24
+ "minLength": 1
25
+ },
26
+ "vendor": {
27
+ "type": "string",
28
+ "minLength": 1
29
+ },
30
+ "category": {
31
+ "enum": ["开发工具", "项目管理", "数据库", "知识检索", "办公协作", "安全运维", "数据分析", "其他"]
32
+ },
33
+ "summary": {
34
+ "type": "string",
35
+ "minLength": 1,
36
+ "description": "卡片上展示的一句话说明。"
37
+ },
38
+ "description": {
39
+ "type": "string",
40
+ "minLength": 1
41
+ },
42
+ "examples": {
43
+ "type": "array",
44
+ "maxItems": 6,
45
+ "items": {
46
+ "type": "string",
47
+ "minLength": 1
48
+ }
49
+ },
50
+ "tags": {
51
+ "type": "array",
52
+ "items": {
53
+ "type": "string",
54
+ "minLength": 1
55
+ }
56
+ },
57
+ "featured": {
58
+ "type": "boolean"
59
+ },
60
+ "order": {
61
+ "type": "integer",
62
+ "minimum": 0,
63
+ "description": "目录排序,越小越靠前;缺省为 100。"
64
+ },
65
+ "instance": {
66
+ "type": "object",
67
+ "additionalProperties": false,
68
+ "required": ["label"],
69
+ "description": "需要用户填写或选择 MCP 服务地址的 provider;存在时 server.url 不应设置。提供 presets 时界面改为从预置地址中选择。",
70
+ "properties": {
71
+ "label": {
72
+ "type": "string",
73
+ "minLength": 1
74
+ },
75
+ "noun": {
76
+ "type": "string",
77
+ "minLength": 1,
78
+ "description": "界面上对这项配置的叫法,默认「地址」;例如企查查用「数据域」。"
79
+ },
80
+ "placeholder": {
81
+ "type": "string",
82
+ "minLength": 1
83
+ },
84
+ "hint": {
85
+ "type": "string",
86
+ "minLength": 1
87
+ },
88
+ "help": {
89
+ "$ref": "#/$defs/help"
90
+ },
91
+ "presets": {
92
+ "type": "array",
93
+ "minItems": 1,
94
+ "description": "预置地址列表;存在时用户从列表中选择,不再手填 URL。",
95
+ "items": {
96
+ "type": "object",
97
+ "additionalProperties": false,
98
+ "required": ["label", "url"],
99
+ "properties": {
100
+ "label": {
101
+ "type": "string",
102
+ "minLength": 1
103
+ },
104
+ "url": {
105
+ "type": "string",
106
+ "pattern": "^https://",
107
+ "description": "必须是 https 地址。"
108
+ },
109
+ "hint": {
110
+ "type": "string",
111
+ "minLength": 1
112
+ }
113
+ }
114
+ }
115
+ }
116
+ }
117
+ },
118
+ "server": {
119
+ "type": "object",
120
+ "additionalProperties": false,
121
+ "required": ["transport"],
122
+ "properties": {
123
+ "serverName": {
124
+ "type": "string",
125
+ "pattern": "^[a-z0-9][a-z0-9_-]*$",
126
+ "description": "MCP 工具前缀 mcp__<serverName>__;缺省等于 provider id,必须全局唯一。"
127
+ },
128
+ "transport": {
129
+ "enum": ["streamable-http", "sse"],
130
+ "description": "远程传输:Streamable HTTP 或旧版 SSE(SSE 由插件内置桥接进程转成 stdio);本地 stdio 通过自定义 mcpServers 导入。"
131
+ },
132
+ "url": {
133
+ "type": "string",
134
+ "minLength": 1,
135
+ "description": "不带 instance 时必须是 https 地址;带 instance 时不要设置,完整地址由用户填写。"
136
+ }
137
+ }
138
+ },
139
+ "auth": {
140
+ "oneOf": [
141
+ {
142
+ "type": "object",
143
+ "additionalProperties": false,
144
+ "required": ["type"],
145
+ "properties": {
146
+ "type": {
147
+ "const": "none"
148
+ }
149
+ }
150
+ },
151
+ {
152
+ "type": "object",
153
+ "additionalProperties": false,
154
+ "required": ["type", "label"],
155
+ "properties": {
156
+ "type": {
157
+ "const": "bearer"
158
+ },
159
+ "label": {
160
+ "type": "string",
161
+ "minLength": 1
162
+ },
163
+ "help": {
164
+ "$ref": "#/$defs/help"
165
+ }
166
+ }
167
+ },
168
+ {
169
+ "type": "object",
170
+ "additionalProperties": false,
171
+ "required": ["type", "header", "label"],
172
+ "properties": {
173
+ "type": {
174
+ "const": "header"
175
+ },
176
+ "header": {
177
+ "type": "string",
178
+ "minLength": 1
179
+ },
180
+ "prefix": {
181
+ "type": "string"
182
+ },
183
+ "label": {
184
+ "type": "string",
185
+ "minLength": 1
186
+ },
187
+ "help": {
188
+ "$ref": "#/$defs/help"
189
+ }
190
+ }
191
+ },
192
+ {
193
+ "type": "object",
194
+ "additionalProperties": false,
195
+ "required": ["type", "flow", "registration"],
196
+ "properties": {
197
+ "type": {
198
+ "const": "oauth2"
199
+ },
200
+ "flow": {
201
+ "const": "pkce"
202
+ },
203
+ "registration": {
204
+ "oneOf": [
205
+ {
206
+ "const": "dcr"
207
+ },
208
+ {
209
+ "const": "user"
210
+ },
211
+ {
212
+ "type": "object",
213
+ "additionalProperties": false,
214
+ "required": ["clientId"],
215
+ "properties": {
216
+ "clientId": {
217
+ "type": "string",
218
+ "minLength": 1
219
+ }
220
+ }
221
+ }
222
+ ],
223
+ "description": "dcr 自动注册;user 由用户在面板里填写应用 AppKey/SecretKey;对象形式为静态 clientId。"
224
+ },
225
+ "endpoints": {
226
+ "type": "object",
227
+ "additionalProperties": false,
228
+ "required": ["authorization", "token"],
229
+ "description": "显式授权与令牌端点;设置后跳过 OAuth 元数据发现。registration=user 时必填。",
230
+ "properties": {
231
+ "authorization": {
232
+ "type": "string",
233
+ "format": "uri"
234
+ },
235
+ "token": {
236
+ "type": "string",
237
+ "format": "uri"
238
+ }
239
+ }
240
+ },
241
+ "authorizeParams": {
242
+ "type": "object",
243
+ "additionalProperties": {
244
+ "type": "string"
245
+ },
246
+ "description": "附加到授权 URL 的固定参数,例如百度网盘的 qrcode=1。"
247
+ },
248
+ "tokenMethod": {
249
+ "enum": ["POST", "GET"],
250
+ "description": "换取与刷新令牌的 HTTP 方法,默认 POST。"
251
+ },
252
+ "pkce": {
253
+ "type": "boolean",
254
+ "description": "是否使用 PKCE,默认 true;不支持 PKCE 的服务设为 false。"
255
+ },
256
+ "scopes": {
257
+ "type": "array",
258
+ "items": {
259
+ "type": "string",
260
+ "minLength": 1
261
+ }
262
+ },
263
+ "clientName": {
264
+ "type": "string",
265
+ "minLength": 1
266
+ },
267
+ "help": {
268
+ "$ref": "#/$defs/help"
269
+ }
270
+ }
271
+ }
272
+ ]
273
+ }
274
+ },
275
+ "allOf": [
276
+ {
277
+ "if": {
278
+ "required": ["instance"]
279
+ },
280
+ "then": {
281
+ "properties": {
282
+ "server": {
283
+ "not": {
284
+ "required": ["url"]
285
+ }
286
+ }
287
+ }
288
+ },
289
+ "else": {
290
+ "properties": {
291
+ "server": {
292
+ "required": ["url"],
293
+ "properties": {
294
+ "url": {
295
+ "pattern": "^https://"
296
+ }
297
+ }
298
+ }
299
+ }
300
+ }
301
+ }
302
+ ],
303
+ "$defs": {
304
+ "help": {
305
+ "type": "object",
306
+ "additionalProperties": false,
307
+ "required": ["url", "label"],
308
+ "properties": {
309
+ "url": {
310
+ "type": "string",
311
+ "format": "uri",
312
+ "pattern": "^https://"
313
+ },
314
+ "label": {
315
+ "type": "string",
316
+ "minLength": 1
317
+ },
318
+ "hint": {
319
+ "type": "string",
320
+ "minLength": 1
321
+ }
322
+ }
323
+ }
324
+ }
325
+ }