@forestadmin/mcp-server 1.10.0 → 1.11.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.
|
@@ -63,6 +63,8 @@ Actions properties:
|
|
|
63
63
|
- hasForm: true if action requires form input (use getActionForm to see fields)
|
|
64
64
|
- download: true if action returns a file download (not executable via AI)
|
|
65
65
|
|
|
66
|
+
Polymorphic relations (isPolymorphic=true) point to multiple collections. When creating/updating, you must set both the _id and _type fields (e.g. commentable_id and commentable_type).
|
|
67
|
+
|
|
66
68
|
Check \`_meta\` for data availability context.`,
|
|
67
69
|
inputSchema: argumentShape,
|
|
68
70
|
}, async (options, extra) => {
|
|
@@ -107,20 +109,30 @@ Check \`_meta\` for data availability context.`,
|
|
|
107
109
|
// Extract relations from schema
|
|
108
110
|
const relations = schemaFields
|
|
109
111
|
.filter(f => f.relationship)
|
|
110
|
-
.map(f =>
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
.map(f => {
|
|
113
|
+
const polymorphicTargets = f.polymorphicReferencedModels;
|
|
114
|
+
const isPolymorphic = Array.isArray(polymorphicTargets) && polymorphicTargets.length > 0;
|
|
115
|
+
return {
|
|
116
|
+
name: f.field,
|
|
117
|
+
type: mapRelationType(f.relationship),
|
|
118
|
+
targetCollection: isPolymorphic ? null : f.reference?.split('.')[0] || null,
|
|
119
|
+
...(isPolymorphic && { isPolymorphic: true, polymorphicTargets }),
|
|
120
|
+
};
|
|
121
|
+
});
|
|
115
122
|
// Extract actions from schema
|
|
116
123
|
const schemaActions = (0, schema_fetcher_1.getActionsOfCollection)(schema, options.collectionName);
|
|
117
|
-
const actions = schemaActions
|
|
124
|
+
const actions = schemaActions
|
|
125
|
+
.filter(action => action.endpoint)
|
|
126
|
+
.map(action => ({
|
|
118
127
|
name: action.name,
|
|
119
128
|
type: action.type, // 'single', 'bulk', or 'global'
|
|
120
129
|
description: action.description || null,
|
|
121
130
|
hasForm: action.fields.length > 0 || action.hooks.load,
|
|
122
131
|
download: action.download,
|
|
123
132
|
}));
|
|
133
|
+
const skippedActions = schemaActions
|
|
134
|
+
.filter(action => !action.endpoint)
|
|
135
|
+
.map(action => ({ name: action.name, reason: 'no endpoint configured' }));
|
|
124
136
|
const result = {
|
|
125
137
|
collection: options.collectionName,
|
|
126
138
|
fields,
|
|
@@ -133,6 +145,7 @@ Check \`_meta\` for data availability context.`,
|
|
|
133
145
|
: {
|
|
134
146
|
note: 'Operators unavailable (older agent version). Fields have operators: null.',
|
|
135
147
|
}),
|
|
148
|
+
...(skippedActions.length > 0 && { skippedActions }),
|
|
136
149
|
},
|
|
137
150
|
};
|
|
138
151
|
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
@@ -140,4 +153,4 @@ Check \`_meta\` for data availability context.`,
|
|
|
140
153
|
});
|
|
141
154
|
}, logger);
|
|
142
155
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpYmUtY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9kZXNjcmliZS1jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBZ0ZBLGdEQStIQztBQTNNRCw2QkFBd0I7QUFFeEIseUVBQWdEO0FBQ2hELDREQUlpQztBQUNqQyxtRkFBaUU7QUFDakUsbUZBQXlEO0FBVXpELFNBQVMscUNBQXFDLENBQUMsZUFBeUI7SUFDdEUsT0FBTztRQUNMLGNBQWMsRUFDWixlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBQyxDQUFDLElBQUksQ0FBQyxlQUF3QyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUU7S0FDN0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsS0FBSyxVQUFVLG9CQUFvQixDQUNqQyxTQUFzRCxFQUN0RCxjQUFzQixFQUN0QixNQUFjO0lBRWQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxZQUFZLEdBQUcsTUFBTSxTQUFTLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRS9FLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxZQUFZLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVFLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqRixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxDQUNKLE9BQU8sRUFDUCxtREFBbUQsY0FBYyx5QkFBeUIsQ0FDM0YsQ0FBQztZQUVG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
|
package/dist/tools/list.js
CHANGED
|
@@ -27,11 +27,13 @@ const listArgumentSchema = zod_1.z.object({
|
|
|
27
27
|
collectionName: zod_1.z.string(),
|
|
28
28
|
search: zod_1.z.string().optional(),
|
|
29
29
|
filters: filtersWithPreprocess
|
|
30
|
-
.describe('Filters to apply on collection. To filter on a
|
|
30
|
+
.describe('Filters to apply on collection. To filter on a relation field, use ":" as separator in the field name, e.g. { "field": "relationName:fieldName", "operator": "Equal", "value": "..." }. One level deep max. For polymorphic relations, filtering via relation:field is not supported and will fail. Instead use two steps: 1) list the target collection to get IDs, 2) filter on the _type and _id fields directly, e.g. { "field": "commentable_type", "operator": "Equal", "value": "Post" }.')
|
|
31
31
|
.optional(),
|
|
32
32
|
sort: zod_1.z
|
|
33
33
|
.object({
|
|
34
|
-
field: zod_1.z
|
|
34
|
+
field: zod_1.z
|
|
35
|
+
.string()
|
|
36
|
+
.describe('Field to sort by. For relation fields, use ":" as separator, e.g. "relationName:fieldName".'),
|
|
35
37
|
ascending: zod_1.z.boolean().optional().default(true),
|
|
36
38
|
})
|
|
37
39
|
.optional(),
|
|
@@ -118,4 +120,4 @@ function declareListTool(mcpServer, forestServerClient, logger, collectionNames
|
|
|
118
120
|
});
|
|
119
121
|
}, logger);
|
|
120
122
|
}
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBcUVBLDBEQU1DO0FBRUQsa0NBOEVDO0FBdEpELDZCQUF3QjtBQUV4QiwrREFBNkM7QUFDN0MseUVBQWdEO0FBQ2hELDREQUFtRjtBQUNuRixtRkFBaUU7QUFDakUsbUZBQXlEO0FBRXpELDRFQUE0RTtBQUM1RSxNQUFNLHFCQUFxQixHQUFHLE9BQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDL0MsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFFeEMsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxxRUFBcUU7UUFDckUsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0FBQ0gsQ0FBQyxFQUFFLGdCQUFZLENBQUMsQ0FBQztBQUVqQixNQUFNLGtCQUFrQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEMsY0FBYyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7SUFDMUIsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsT0FBTyxFQUFFLHFCQUFxQjtTQUMzQixRQUFRLENBQ1Asa2VBQWtlLENBQ25lO1NBQ0EsUUFBUSxFQUFFO0lBQ2IsSUFBSSxFQUFFLE9BQUM7U0FDSixNQUFNLENBQUM7UUFDTixLQUFLLEVBQUUsT0FBQzthQUNMLE1BQU0sRUFBRTthQUNSLFFBQVEsQ0FDUCw2RkFBNkYsQ0FDOUY7UUFDSCxTQUFTLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7S0FDaEQsQ0FBQztTQUNELFFBQVEsRUFBRTtJQUNiLHNCQUFzQixFQUFFLE9BQUM7U0FDdEIsT0FBTyxFQUFFO1NBQ1QsUUFBUSxFQUFFO1NBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUNkLFFBQVEsQ0FBQywrQ0FBK0MsQ0FBQztJQUM1RCxNQUFNLEVBQUUsT0FBQztTQUNOLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDakIsUUFBUSxDQUNQLHVKQUF1SixDQUN4SjtTQUNBLFFBQVEsRUFBRTtJQUNiLFVBQVUsRUFBRSxPQUFDO1NBQ1YsTUFBTSxDQUFDO1FBQ04sSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO1FBQ3ZDLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtLQUN6QyxDQUFDO1NBQ0QsUUFBUSxFQUFFO0lBQ2IsV0FBVyxFQUFFLE9BQUM7U0FDWCxPQUFPLEVBQUU7U0FDVCxRQUFRLEVBQUU7U0FDVixPQUFPLENBQUMsS0FBSyxDQUFDO1NBQ2QsUUFBUSxDQUFDLHdEQUF3RCxDQUFDO0NBQ3RFLENBQUMsQ0FBQztBQUlILFNBQWdCLHVCQUF1QixDQUFDLGVBQXlCO0lBQy9ELE9BQU87UUFDTCxHQUFHLGtCQUFrQixDQUFDLEtBQUs7UUFDM0IsY0FBYyxFQUNaLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFDLENBQUMsSUFBSSxDQUFDLGVBQXdDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRTtLQUM3RixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQXdCLGVBQWUsQ0FDckMsU0FBb0IsRUFDcEIsa0JBQXNDLEVBQ3RDLE1BQWMsRUFDZCxrQkFBNEIsRUFBRTtJQUU5QixNQUFNLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRW5FLE9BQU8sSUFBQSwyQkFBdUIsRUFDNUIsU0FBUyxFQUNULE1BQU0sRUFDTjtRQUNFLEtBQUssRUFBRSxnQ0FBZ0M7UUFDdkMsV0FBVyxFQUFFLDJEQUEyRDtRQUN4RSxXQUFXLEVBQUUsaUJBQWlCO0tBQy9CLEVBQ0QsS0FBSyxFQUFFLE9BQXFCLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDckMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsc0JBQVcsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUV6QyxJQUFJLFVBQVUsR0FBa0MsT0FBTyxDQUFDO1FBRXhELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDeEIsQ0FBQzthQUFNLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzNCLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDeEIsQ0FBQztRQUVELE9BQU8sSUFBQSwyQkFBZSxFQUFDO1lBQ3JCLGtCQUFrQjtZQUNsQixPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQ25ELE1BQU07WUFDTixTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ3BCLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUVoRSxJQUFJLFFBQXFELENBQUM7Z0JBRTFELElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUN4QixNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQzt3QkFDOUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUF3QixDQUFDO3dCQUN6QyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQXdCLENBQUM7cUJBQzNDLENBQUMsQ0FBQztvQkFFSCxRQUFRLEdBQUcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUM7Z0JBQ3JDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBd0IsQ0FBQyxDQUFDO29CQUNoRSxRQUFRLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDekIsQ0FBQztnQkFFRCxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3pFLENBQUM7WUFDRCxhQUFhLEVBQUUsS0FBSyxFQUFDLFlBQVksRUFBQyxFQUFFO2dCQUNsQywrREFBK0Q7Z0JBQy9ELElBQUksWUFBWSxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO29CQUMzQyxJQUFJLENBQUM7d0JBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBQSxzQ0FBcUIsRUFDbEMsTUFBTSxJQUFBLGtDQUFpQixFQUFDLGtCQUFrQixDQUFDLEVBQzNDLE9BQU8sQ0FBQyxjQUFjLENBQ3ZCLENBQUM7d0JBRUYsT0FBTywrRkFDTCxPQUFPLENBQUMsY0FDVixTQUFTLE1BQU07NkJBQ1osTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQzs2QkFDakMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQzs2QkFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQ25CLENBQUM7b0JBQUMsT0FBTyxXQUFXLEVBQUUsQ0FBQzt3QkFDckIsTUFBTSxDQUFDLE9BQU8sRUFBRSxpREFBaUQsV0FBVyxFQUFFLENBQUMsQ0FBQztvQkFDbEYsQ0FBQztnQkFDSCxDQUFDO2dCQUVELE9BQU8sWUFBWSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLEVBQ0QsTUFBTSxDQUNQLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -84,16 +84,18 @@ function getActionEndpoints(schema) {
|
|
|
84
84
|
if (collection.actions && collection.actions.length > 0) {
|
|
85
85
|
actionEndpoints[collection.name] = {};
|
|
86
86
|
for (const action of collection.actions) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
87
|
+
if (action.endpoint) {
|
|
88
|
+
actionEndpoints[collection.name][action.name] = {
|
|
89
|
+
id: action.id,
|
|
90
|
+
name: action.name,
|
|
91
|
+
endpoint: action.endpoint,
|
|
92
|
+
hooks: action.hooks,
|
|
93
|
+
fields: action.fields,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
}
|
|
97
99
|
return actionEndpoints;
|
|
98
100
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZldGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc2NoZW1hLWZldGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF5Q0EsOENBbUJDO0FBUUQsZ0RBRUM7QUFFRCxzREFRQztBQUtELDRDQUVDO0FBS0Qsd0NBS0M7QUFLRCx3REFXQztBQVNELGdEQXNCQztBQWxIRCxNQUFNLFVBQVUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFdkMsSUFBSSxXQUFXLEdBQXVCLElBQUksQ0FBQztBQUUzQzs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLGtCQUFzQztJQUV0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFdkIsb0VBQW9FO0lBQ3BFLElBQUksV0FBVyxJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsU0FBUyxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQzVELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUUzRCxlQUFlO0lBQ2YsV0FBVyxHQUFHO1FBQ1osTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFO1FBQ3ZCLFNBQVMsRUFBRSxHQUFHO0tBQ2YsQ0FBQztJQUVGLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxNQUFvQjtJQUNyRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCxTQUFnQixxQkFBcUIsQ0FBQyxNQUFvQixFQUFFLGNBQXNCO0lBQ2hGLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsQ0FBQztJQUUvRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLGNBQWMsdUJBQXVCLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDO0FBQzNCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGdCQUFnQjtJQUM5QixXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQ3JCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxNQUFvQixFQUFFLFNBQWtCO0lBQ3JFLFdBQVcsR0FBRztRQUNaLE1BQU07UUFDTixTQUFTLEVBQUUsU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7S0FDbkMsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHNCQUFzQixDQUNwQyxNQUFvQixFQUNwQixjQUFzQjtJQUV0QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLENBQUM7SUFFL0UsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxjQUFjLHVCQUF1QixDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDbEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLE1BQW9CO0lBQ3JELE1BQU0sZUFBZSxHQUFvQixFQUFFLENBQUM7SUFFNUMsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUMsSUFBSSxVQUFVLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hELGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBRXRDLEtBQUssTUFBTSxNQUFNLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN4QyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDcEIsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUc7d0JBQzlDLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTt3QkFDYixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7d0JBQ2pCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTt3QkFDekIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO3dCQUNuQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07cUJBQ3RCLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.0",
|
|
4
4
|
"description": "Model Context Protocol server for Forest Admin with OAuth authentication",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"directory": "packages/mcp-server"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@forestadmin/agent-client": "1.
|
|
20
|
-
"@forestadmin/forestadmin-client": "1.
|
|
19
|
+
"@forestadmin/agent-client": "1.5.0",
|
|
20
|
+
"@forestadmin/forestadmin-client": "1.39.0",
|
|
21
21
|
"@modelcontextprotocol/sdk": "^1.28.0",
|
|
22
22
|
"cors": "^2.8.5",
|
|
23
23
|
"express": "^5.2.1",
|