@ign8t/mcp 0.3.0 → 0.3.1

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 CHANGED
@@ -212,7 +212,10 @@ The write tools (`create_task`, `update_task_status`, `accept_recommendations`,
212
212
 
213
213
  ### Updating the implementation context
214
214
 
215
- `update_context` lets the project owner's AI change what ign8t knows about the implementation: the tech stack's platform and framework (set or unset), its databases and AI models, and the project constraints (add or remove items: added values are trimmed, removed values must match the stored text exactly). Vision, features, users and success criteria are not writable through it.
215
+ `update_context` lets the project owner's AI change what ign8t knows about the implementation: the tech stack and the project constraints. Vision, features, users and success criteria are not writable through it.
216
+
217
+ - Any key already in the project's tech stack can be changed or removed, spelled exactly as stored (`backend` and `Backend` are different keys). A key stored as text takes a new text value; a key stored as a list takes items to add or remove (added values are trimmed, removed values must match the stored text exactly). Constraints work like a list.
218
+ - Besides the stored keys, only `platform`, `framework`, `database` and `ai_models` can be added, as text or as a list. Any other new key is rejected, so the stack doesn't split into near-duplicate keys.
216
219
 
217
220
  - The AI reads the project with `get_project` first, shows you the exact change, and applies it only after you agree. The change is saved immediately and costs no Sparks.
218
221
  - All previously generated documents (BRD/PRD/TRD, delivery brief, master spec, task specs) may be marked stale. They are not regenerated automatically, and regenerating them costs Sparks.
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { CallToolRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
5
  import { buildWorkspaceSnapshot } from "./workspace-snapshot.js";
6
- const VERSION = "0.3.0";
6
+ const VERSION = "0.3.1";
7
7
  // Parse command line arguments
8
8
  function parseArgs() {
9
9
  const args = process.argv.slice(2);
@@ -585,7 +585,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
585
585
  },
586
586
  {
587
587
  name: "update_context",
588
- description: "Change the project's implementation context: tech_stack platform/framework (set, or list them in tech_stack.unset to clear), tech_stack database/ai_models and constraints (add/remove items: add values are trimmed; remove values must match the stored text exactly). Writes immediately and costs zero Sparks. Call get_project first and pass its context.context_version as expected_context_version. Before calling, show the user the exact change and tell them that all previously generated documents (BRD/PRD/TRD, delivery brief, master spec, task specs) may be marked stale, and that regenerating them costs Sparks; set confirmed_with_user to true only after the user agreed. A CONTEXT_CHANGED error means the context changed since you read it: read it again, reconcile, and ask the user again. Vision, features, users and success criteria are not writable here: use add_user_persona, update_success_criteria or add_feature_request.",
588
+ description: "Change the project's implementation context: tech_stack keys and constraints. Use the tech_stack key names you see in get_project's context.tech_stack, spelled exactly as stored (\"backend\" and \"Backend\" are different keys); besides those, only platform, framework, database and ai_models can be added. Every key follows what is stored: a key stored as text takes a new text value; a key stored as a list takes add/remove items (add values are trimmed; remove values must match the stored text exactly), as do constraints; a key not stored yet takes either. List keys in tech_stack.unset to remove them. Writes immediately and costs zero Sparks. Call get_project first and pass its context.context_version as expected_context_version. Before calling, show the user the exact change and tell them that all previously generated documents (BRD/PRD/TRD, delivery brief, master spec, task specs) may be marked stale, and that regenerating them costs Sparks; set confirmed_with_user to true only after the user agreed. A CONTEXT_CHANGED error means the context changed since you read it: read it again, reconcile, and ask the user again. Vision, features, users and success criteria are not writable here: use add_user_persona, update_success_criteria or add_feature_request.",
589
589
  inputSchema: {
590
590
  type: "object",
591
591
  properties: {
@@ -616,17 +616,15 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
616
616
  tech_stack: {
617
617
  type: "object",
618
618
  properties: {
619
- platform: { type: "string", minLength: 1, maxLength: 200 },
620
- framework: { type: "string", minLength: 1, maxLength: 200 },
621
619
  unset: {
622
620
  type: "array",
623
- items: { type: "string", enum: ["platform", "framework"] },
624
- description: "Keys to clear; a key cannot be both set and unset",
621
+ items: { type: "string", minLength: 1, maxLength: 60 },
622
+ description: "Keys to remove; a key cannot be both changed and unset",
625
623
  },
626
- database: listOps(200),
627
- ai_models: listOps(200),
628
624
  },
629
- additionalProperties: false,
625
+ additionalProperties: {
626
+ description: "A key already stored in tech_stack, or one of the canonical keys platform, framework, database, ai_models (at most 60 characters): a string of 1-200 characters if it is stored as text, {add, remove} arrays of 1-200 character strings if it is stored as a list, either if it is not stored yet. Other new keys are rejected with UNKNOWN_TECH_STACK_KEY.",
627
+ },
630
628
  },
631
629
  constraints: listOps(500),
632
630
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ign8t/mcp",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "MCP server for ign8t project management - AI IDE integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -38,7 +38,7 @@
38
38
  "mcp": {
39
39
  "name": "ign8t-mcp",
40
40
  "description": "MCP server for ign8t project management - AI IDE integration",
41
- "version": "0.3.0"
41
+ "version": "0.3.1"
42
42
  },
43
43
  "author": "nocodecat",
44
44
  "license": "MIT",