@mcp-s/connectors 0.0.20260929124921 → 0.0.20261003181632
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 +9 -3
- package/dist/public/index.json +1 -1
- package/dist/schema/catalog.d.ts +3 -3
- package/dist/schema/catalog.js +3 -3
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -16,7 +16,8 @@ never contain secrets.
|
|
|
16
16
|
|
|
17
17
|
```
|
|
18
18
|
src/schema/ # zod 4 schema; all types are inferred from it
|
|
19
|
-
src/connectors/
|
|
19
|
+
src/connectors/api/ # Willow-authored tools against a vendor API: <name>/<name>.connector.ts (+ .tools.ts)
|
|
20
|
+
src/connectors/mcp/ # proxied MCP servers, tools discovered from the server: <name>/<name>.connector.ts
|
|
20
21
|
src/connectors/index.ts # the list of published connectors
|
|
21
22
|
scripts/build.ts # validates every connector and writes dist/public
|
|
22
23
|
test/ # schema validation + 1:1 parity with db-service's built-ins
|
|
@@ -34,8 +35,9 @@ The same files ship in the npm package under `dist/public`, readable with
|
|
|
34
35
|
|
|
35
36
|
## Adding or changing a connector
|
|
36
37
|
|
|
37
|
-
1. Add `src/connectors/<name>/<name>.connector.ts` exporting a
|
|
38
|
-
(and `.tools.ts` if it has them)
|
|
38
|
+
1. Add `src/connectors/<kind>/<name>/<name>.connector.ts` exporting a
|
|
39
|
+
`CatalogConnector` (and `.tools.ts` if it has them), where `<kind>` is `api`
|
|
40
|
+
or `mcp`.
|
|
39
41
|
2. Register it in `src/connectors/index.ts`.
|
|
40
42
|
3. `npm test && npm run build`.
|
|
41
43
|
4. Open a PR. Once merged, it reaches every org on the `unified-connectors` beta
|
|
@@ -50,6 +52,10 @@ Rules the build enforces:
|
|
|
50
52
|
that is in use.
|
|
51
53
|
- **Exactly one of `definition.api` and `definition.mcp`.** That choice is the
|
|
52
54
|
connector's kind; there is no separate field for it.
|
|
55
|
+
- **Folder matches kind.** A connector with `definition.api` lives under `api/`,
|
|
56
|
+
one with `definition.mcp` under `mcp/`, and every connector on disk is
|
|
57
|
+
registered in `index.ts`. Who publishes an MCP server is the `official`
|
|
58
|
+
label, not a folder. Moving a connector never changes its `id`.
|
|
53
59
|
|
|
54
60
|
## Release flow
|
|
55
61
|
|
package/dist/public/index.json
CHANGED
package/dist/schema/catalog.d.ts
CHANGED
|
@@ -331,7 +331,7 @@ export declare const catalogConnector: z.ZodObject<{
|
|
|
331
331
|
active: "active";
|
|
332
332
|
"super-admin": "super-admin";
|
|
333
333
|
}>;
|
|
334
|
-
applications: z.ZodArray<z.ZodString
|
|
334
|
+
applications: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
335
335
|
definition: z.ZodObject<{
|
|
336
336
|
display: z.ZodObject<{
|
|
337
337
|
name: z.ZodString;
|
|
@@ -658,7 +658,7 @@ export declare const catalogIndexEntry: z.ZodObject<{
|
|
|
658
658
|
description: z.ZodOptional<z.ZodString>;
|
|
659
659
|
icon: z.ZodOptional<z.ZodString>;
|
|
660
660
|
category: z.ZodEnum<typeof import("./enums.js").ConnectorCategory>;
|
|
661
|
-
applications: z.ZodArray<z.ZodString
|
|
661
|
+
applications: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
662
662
|
hash: z.ZodString;
|
|
663
663
|
}, z.core.$loose>;
|
|
664
664
|
export type CatalogIndexEntry = z.infer<typeof catalogIndexEntry>;
|
|
@@ -681,7 +681,7 @@ export declare const catalogIndex: z.ZodObject<{
|
|
|
681
681
|
description: z.ZodOptional<z.ZodString>;
|
|
682
682
|
icon: z.ZodOptional<z.ZodString>;
|
|
683
683
|
category: z.ZodEnum<typeof import("./enums.js").ConnectorCategory>;
|
|
684
|
-
applications: z.ZodArray<z.ZodString
|
|
684
|
+
applications: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
685
685
|
hash: z.ZodString;
|
|
686
686
|
}, z.core.$loose>>;
|
|
687
687
|
}, z.core.$loose>;
|
package/dist/schema/catalog.js
CHANGED
|
@@ -81,8 +81,8 @@ export const catalogConnector = obj({
|
|
|
81
81
|
*/
|
|
82
82
|
id: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
|
|
83
83
|
status: catalogConnectorStatus,
|
|
84
|
-
/** Products this connector covers, e.g. ["jira", "confluence"]. */
|
|
85
|
-
applications: z.array(z.string()),
|
|
84
|
+
/** Products this connector covers, e.g. ["jira", "confluence"]. Absent when the connector is not grouped with a product. */
|
|
85
|
+
applications: z.array(z.string()).optional(),
|
|
86
86
|
definition: catalogConnectorDefinition,
|
|
87
87
|
});
|
|
88
88
|
export const connectorKind = (connector) => (connector.definition.mcp ? "mcp" : "api");
|
|
@@ -95,7 +95,7 @@ export const catalogIndexEntry = obj({
|
|
|
95
95
|
description: z.string().optional(),
|
|
96
96
|
icon: z.string().optional(),
|
|
97
97
|
category: connectorCategory,
|
|
98
|
-
applications: z.array(z.string()),
|
|
98
|
+
applications: z.array(z.string()).optional(),
|
|
99
99
|
/** Content hash of the published definition file. */
|
|
100
100
|
hash: z.string(),
|
|
101
101
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-s/connectors",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.20261003181632",
|
|
4
4
|
"description": "Willow connector catalog: one schema for every connector, plus the published catalog JSON",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
],
|
|
18
18
|
"scripts": {
|
|
19
19
|
"build": "rm -rf dist && tsc -p tsconfig.build.json && tsx scripts/build.ts",
|
|
20
|
+
"dev": "tsx scripts/build.ts && (npx serve dist/public -p 8787 & tsx watch scripts/build.ts & wait)",
|
|
20
21
|
"typecheck": "tsc --noEmit",
|
|
21
22
|
"test": "vitest run",
|
|
22
23
|
"fixtures:parity": "tsx scripts/generate-parity-fixtures.ts"
|