@ateam-ai/mcp 0.2.6 → 0.2.8
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/package.json +1 -1
- package/src/tools.js +37 -9
package/package.json
CHANGED
package/src/tools.js
CHANGED
|
@@ -237,7 +237,22 @@ export const tools = [
|
|
|
237
237
|
name: "ateam_patch",
|
|
238
238
|
core: true,
|
|
239
239
|
description:
|
|
240
|
-
"
|
|
240
|
+
"Surgically update ANY field in a skill or solution definition, redeploy, and optionally re-test — all in one step.\n\n" +
|
|
241
|
+
"SUPPORTED OPERATIONS:\n" +
|
|
242
|
+
"1. Scalar (dot notation): { \"problem.statement\": \"new value\", \"role.persona\": \"You are...\" }\n" +
|
|
243
|
+
"2. Deep nested: { \"intents.thresholds.accept\": 0.9, \"policy.escalation.enabled\": true }\n" +
|
|
244
|
+
"3. Array push: { \"tools_push\": [{ name: \"new_tool\", description: \"...\" }] }\n" +
|
|
245
|
+
"4. Array delete: { \"tools_delete\": [\"tool_name\"] }\n" +
|
|
246
|
+
"5. Array update: { \"tools_update\": [{ name: \"existing_tool\", description: \"updated\" }] }\n" +
|
|
247
|
+
"6. Replace whole section: { \"role\": { persona: \"...\", goals: [...] } }\n\n" +
|
|
248
|
+
"EXAMPLES:\n" +
|
|
249
|
+
"- Change persona: updates: { \"role.persona\": \"You are a friendly assistant\" }\n" +
|
|
250
|
+
"- Add a guardrail: updates: { \"policy.guardrails.never_push\": [\"Never share passwords\"] }\n" +
|
|
251
|
+
"- Update problem: updates: { \"problem.statement\": \"...\", \"problem.goals\": [\"goal1\"] }\n" +
|
|
252
|
+
"- Add a tool: updates: { \"tools_push\": [{ name: \"conn.tool\", description: \"...\", inputs: [...], output: {...} }] }\n" +
|
|
253
|
+
"- Change intent: updates: { \"intents.supported_update\": [{ id: \"i1\", description: \"new desc\" }] }\n" +
|
|
254
|
+
"- Force redeploy: updates: { \"_force_redeploy\": true }\n\n" +
|
|
255
|
+
"Use target='skill' + skill_id for skill fields. Use target='solution' for solution-level fields (linked_skills, platform_connectors, ui_plugins).",
|
|
241
256
|
inputSchema: {
|
|
242
257
|
type: "object",
|
|
243
258
|
properties: {
|
|
@@ -248,16 +263,18 @@ export const tools = [
|
|
|
248
263
|
target: {
|
|
249
264
|
type: "string",
|
|
250
265
|
enum: ["solution", "skill"],
|
|
251
|
-
description: "What to update: 'solution'
|
|
266
|
+
description: "What to update: 'solution' for solution definition, 'skill' for skill definition fields (problem, role, intents, tools, policy, engine, scenarios, etc.)",
|
|
252
267
|
},
|
|
253
268
|
skill_id: {
|
|
254
269
|
type: "string",
|
|
255
|
-
description: "Required when target is 'skill'",
|
|
270
|
+
description: "Required when target is 'skill'. The skill ID to patch.",
|
|
256
271
|
},
|
|
257
272
|
updates: {
|
|
258
273
|
type: "object",
|
|
259
274
|
description:
|
|
260
|
-
"The update payload
|
|
275
|
+
"The update payload. Use dot notation for nested scalars (e.g. 'problem.statement': 'new value'). " +
|
|
276
|
+
"For arrays, use _push/_delete/_update suffixes (e.g. 'tools_push', 'tools_delete'). " +
|
|
277
|
+
"You can update ANY field in the skill definition: problem, role, intents, tools, policy, engine, scenarios, glossary, etc.",
|
|
261
278
|
},
|
|
262
279
|
test_message: {
|
|
263
280
|
type: "string",
|
|
@@ -747,7 +764,10 @@ export const tools = [
|
|
|
747
764
|
name: "ateam_github_patch",
|
|
748
765
|
core: true,
|
|
749
766
|
description:
|
|
750
|
-
"Edit a
|
|
767
|
+
"Edit a file in the solution's GitHub repo and commit. Two modes:\n" +
|
|
768
|
+
"1. FULL FILE: provide `content` — replaces entire file (good for new files or small files)\n" +
|
|
769
|
+
"2. SEARCH/REPLACE: provide `search` + `replace` — surgical edit without sending full file (preferred for large files like server.js)\n" +
|
|
770
|
+
"Always use search/replace for large files (>5KB). Always read the file first with ateam_github_read to get the exact text to search for.",
|
|
751
771
|
inputSchema: {
|
|
752
772
|
type: "object",
|
|
753
773
|
properties: {
|
|
@@ -761,14 +781,22 @@ export const tools = [
|
|
|
761
781
|
},
|
|
762
782
|
content: {
|
|
763
783
|
type: "string",
|
|
764
|
-
description: "The full file content to write",
|
|
784
|
+
description: "The full file content to write (mode 1 — full file replacement)",
|
|
785
|
+
},
|
|
786
|
+
search: {
|
|
787
|
+
type: "string",
|
|
788
|
+
description: "Exact text to find in the file (mode 2 — search/replace). Must match exactly including whitespace.",
|
|
789
|
+
},
|
|
790
|
+
replace: {
|
|
791
|
+
type: "string",
|
|
792
|
+
description: "Text to replace the search string with (mode 2 — required with search)",
|
|
765
793
|
},
|
|
766
794
|
message: {
|
|
767
795
|
type: "string",
|
|
768
796
|
description: "Optional commit message (default: 'Update <path>')",
|
|
769
797
|
},
|
|
770
798
|
},
|
|
771
|
-
required: ["solution_id", "path"
|
|
799
|
+
required: ["solution_id", "path"],
|
|
772
800
|
},
|
|
773
801
|
},
|
|
774
802
|
{
|
|
@@ -1458,8 +1486,8 @@ const handlers = {
|
|
|
1458
1486
|
ateam_github_read: async ({ solution_id, path: filePath }, sid) =>
|
|
1459
1487
|
get(`/deploy/solutions/${solution_id}/github/read?path=${encodeURIComponent(filePath)}`, sid),
|
|
1460
1488
|
|
|
1461
|
-
ateam_github_patch: async ({ solution_id, path: filePath, content, message }, sid) =>
|
|
1462
|
-
post(`/deploy/solutions/${solution_id}/github/patch`, { path: filePath, content, message }, sid),
|
|
1489
|
+
ateam_github_patch: async ({ solution_id, path: filePath, content, search, replace, message }, sid) =>
|
|
1490
|
+
post(`/deploy/solutions/${solution_id}/github/patch`, { path: filePath, content, search, replace, message }, sid),
|
|
1463
1491
|
|
|
1464
1492
|
ateam_github_log: async ({ solution_id, limit }, sid) => {
|
|
1465
1493
|
const qs = limit ? `?limit=${limit}` : "";
|