@ateam-ai/mcp 0.2.7 → 0.2.9

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 (2) hide show
  1. package/package.json +1 -1
  2. package/src/tools.js +43 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ateam-ai/mcp",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "mcpName": "io.github.ariekogan/ateam-mcp",
5
5
  "description": "A-Team MCP Server — build, validate, and deploy multi-agent solutions from any AI environment",
6
6
  "type": "module",
package/src/tools.js CHANGED
@@ -63,7 +63,7 @@ export const tools = [
63
63
  name: "ateam_get_spec",
64
64
  core: true,
65
65
  description:
66
- "Get the A-Team specification — schemas, validation rules, system tools, agent guides, and templates. Start here after bootstrap to understand how to build skills and solutions.",
66
+ "Get the A-Team specification — schemas, validation rules, system tools, agent guides, and templates. Start here after bootstrap to understand how to build skills and solutions. Use 'section' to get just one part of the skill spec (much smaller than the full spec). Use 'search' to find specific fields or concepts across the spec.",
67
67
  inputSchema: {
68
68
  type: "object",
69
69
  properties: {
@@ -71,7 +71,18 @@ export const tools = [
71
71
  type: "string",
72
72
  enum: ["overview", "skill", "solution", "enums", "connector-multi-user"],
73
73
  description:
74
- "What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide (actor isolation, zod gotcha, complete examples)",
74
+ "What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide",
75
+ },
76
+ section: {
77
+ type: "string",
78
+ enum: ["engine", "tools", "intents", "policy", "triggers", "connectors", "role", "template", "guide"],
79
+ description:
80
+ "Optional: get just one section of the skill spec (only works with topic='skill'). Sections: 'engine' = model/reasoning/planner optimization/bootstrap tools, 'tools' = tool definitions/meta tools, 'intents' = intents/problem/scenarios, 'policy' = access control/grants/workflows, 'triggers' = automation triggers, 'connectors' = connector linking/channels, 'role' = persona/goals, 'template' = minimal quick start, 'guide' = build steps/common mistakes",
81
+ },
82
+ search: {
83
+ type: "string",
84
+ description:
85
+ "Optional: filter the spec to only sections containing this search term. Works with any topic. Example: search='bootstrap' returns only fields/sections mentioning 'bootstrap'.",
75
86
  },
76
87
  },
77
88
  required: ["topic"],
@@ -237,7 +248,22 @@ export const tools = [
237
248
  name: "ateam_patch",
238
249
  core: true,
239
250
  description:
240
- "Update a deployed skill or solution, redeploy, and optionally re-test — all in one step. Use this instead of calling update + redeploy separately. Requires authentication.",
251
+ "Surgically update ANY field in a skill or solution definition, redeploy, and optionally re-test — all in one step.\n\n" +
252
+ "SUPPORTED OPERATIONS:\n" +
253
+ "1. Scalar (dot notation): { \"problem.statement\": \"new value\", \"role.persona\": \"You are...\" }\n" +
254
+ "2. Deep nested: { \"intents.thresholds.accept\": 0.9, \"policy.escalation.enabled\": true }\n" +
255
+ "3. Array push: { \"tools_push\": [{ name: \"new_tool\", description: \"...\" }] }\n" +
256
+ "4. Array delete: { \"tools_delete\": [\"tool_name\"] }\n" +
257
+ "5. Array update: { \"tools_update\": [{ name: \"existing_tool\", description: \"updated\" }] }\n" +
258
+ "6. Replace whole section: { \"role\": { persona: \"...\", goals: [...] } }\n\n" +
259
+ "EXAMPLES:\n" +
260
+ "- Change persona: updates: { \"role.persona\": \"You are a friendly assistant\" }\n" +
261
+ "- Add a guardrail: updates: { \"policy.guardrails.never_push\": [\"Never share passwords\"] }\n" +
262
+ "- Update problem: updates: { \"problem.statement\": \"...\", \"problem.goals\": [\"goal1\"] }\n" +
263
+ "- Add a tool: updates: { \"tools_push\": [{ name: \"conn.tool\", description: \"...\", inputs: [...], output: {...} }] }\n" +
264
+ "- Change intent: updates: { \"intents.supported_update\": [{ id: \"i1\", description: \"new desc\" }] }\n" +
265
+ "- Force redeploy: updates: { \"_force_redeploy\": true }\n\n" +
266
+ "Use target='skill' + skill_id for skill fields. Use target='solution' for solution-level fields (linked_skills, platform_connectors, ui_plugins).",
241
267
  inputSchema: {
242
268
  type: "object",
243
269
  properties: {
@@ -248,16 +274,18 @@ export const tools = [
248
274
  target: {
249
275
  type: "string",
250
276
  enum: ["solution", "skill"],
251
- description: "What to update: 'solution' or 'skill'",
277
+ description: "What to update: 'solution' for solution definition, 'skill' for skill definition fields (problem, role, intents, tools, policy, engine, scenarios, etc.)",
252
278
  },
253
279
  skill_id: {
254
280
  type: "string",
255
- description: "Required when target is 'skill'",
281
+ description: "Required when target is 'skill'. The skill ID to patch.",
256
282
  },
257
283
  updates: {
258
284
  type: "object",
259
285
  description:
260
- "The update payload use dot notation for scalars (e.g. 'problem.statement'), and tools_push/tools_delete/tools_update for array operations",
286
+ "The update payload. Use dot notation for nested scalars (e.g. 'problem.statement': 'new value'). " +
287
+ "For arrays, use _push/_delete/_update suffixes (e.g. 'tools_push', 'tools_delete'). " +
288
+ "You can update ANY field in the skill definition: problem, role, intents, tools, policy, engine, scenarios, glossary, etc.",
261
289
  },
262
290
  test_message: {
263
291
  type: "string",
@@ -1093,7 +1121,15 @@ const handlers = {
1093
1121
  }
1094
1122
  },
1095
1123
 
1096
- ateam_get_spec: async ({ topic }, sid) => get(SPEC_PATHS[topic], sid),
1124
+ ateam_get_spec: async ({ topic, section, search }, sid) => {
1125
+ let path = SPEC_PATHS[topic];
1126
+ const params = new URLSearchParams();
1127
+ if (section) params.set('section', section);
1128
+ if (search) params.set('search', search);
1129
+ const qs = params.toString();
1130
+ if (qs) path += `?${qs}`;
1131
+ return get(path, sid);
1132
+ },
1097
1133
 
1098
1134
  ateam_get_workflows: async (_args, sid) => get("/spec/workflows", sid),
1099
1135