@nbiish/cognitive-tools-mcp 2.0.1 → 2.0.2

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
@@ -34,7 +34,7 @@ Copyright © 2025 ᓂᐲᔥ ᐙᐸᓂᒥᑮ-ᑭᓇᐙᐸᑭᓯ (Nbiish Waabanimi
34
34
 
35
35
  This project is licensed under the [COMPREHENSIVE RESTRICTED USE LICENSE FOR INDIGENOUS CREATIONS WITH TRIBAL SOVEREIGNTY, DATA SOVEREIGNTY, AND WEALTH RECLAMATION PROTECTIONS](LICENSE).
36
36
 
37
- ᑭᑫᓐᑖᓱᐎᓐ ᐋᐸᒋᒋᑲᓇᓐ - Gikendaasowin Aabajichiganan - Cognitive Tools MCP: SOTA reasoning suite focused on iterative refinement and tool integration for AI Pair Programming. Enables structured, iterative problem-solving through Chain of Draft methodology, with tools for draft generation, analysis, and refinement. Features include advanced deliberation (`think`), rapid checks (`quick_think`), mandatory complexity assessment (`assess_cuc_n_mode`), context synthesis, confidence gauging, proactive planning, explicit reasoning (CoT), and reflection.
37
+ ᑭᑫᓐᑖᓱᐎᓐ ᐋᐸᒋᒋᑲᓇᓐ - Agentic Cognitive Tools (v3.2): Implements Gikendaasowin v7 Guidelines. Enforces MANDATORY internal **Observe-Orient-Reason-Decide-Act (OOReDAct)** cycle: Starts with 'assess_and_orient', continues with 'think' deliberation before actions. Guides adaptive reasoning (**Chain-of-Thought (CoT)**, **Chain-of-Draft/Condensed Reasoning (CoD/CR)**, **Structured Chain-of-Thought (SCoT)**) & CodeAct preference. Returns Markdown.
38
38
 
39
39
  Known as:
40
40
  - Anishinaabemowin: [`@nbiish/gikendaasowin-aabajichiganan-mcp`](https://www.npmjs.com/package/@nbiish/gikendaasowin-aabajichiganan-mcp)
package/build/index.js CHANGED
@@ -1,29 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * -----------------------------------------------------------------------------
4
- * Gikendaasowin Aabajichiganan - Agentic Cognitive Tools MCP Server (v2.0)
4
+ * Gikendaasowin Aabajichiganan - Agentic Cognitive Tools MCP Server (v3.2)
5
5
  *
6
- * Description: Provides cognitive tools for an AI agent based on the
7
- * Gikendaasowin Cognitive Framework (v7 Guidelines). Emphasizes
8
- * a mandatory structured deliberation cycle (Observe-Orient-Decide-Act)
9
- * performed *after* receiving information and *before* significant actions,
10
- * ideally using the `think` tool. Supports adaptive reasoning styles
11
- * (CoT, CoD/CRP, SCoT) and integrates with potentially dynamic toolsets,
12
- * including a preference for Executable Code Actions (CodeAct) if available.
13
- * Returns Markdown.
6
+ * Description: Provides cognitive tools implementing the Gikendaasowin v7
7
+ * Agentic Operational Guidelines. Enforces a mandatory structured
8
+ * deliberation cycle, **Observe-Orient-Reason-Decide-Act (OOReDAct)**, via
9
+ * internal cognitive steps, initiated by mandatory assessment/orientation.
10
+ * Guides adaptive reasoning using techniques like **Chain-of-Thought (CoT)**,
11
+ * **Chain-of-Draft/Condensed Reasoning (CoD/CR)**, and **Structured
12
+ * Chain-of-Thought (SCoT)**. Aligns with dynamic tool environments,
13
+ * including CodeAct preference. Returns Markdown.
14
14
  *
15
- * Key Principles (v7 Alignment):
16
- * 1. **Mandatory Deliberation:** A structured internal reasoning cycle is required
17
- * before non-trivial actions.
18
- * 2. **Centralized Analysis (`think`):** The `think` tool is the preferred mechanism
19
- * for the mandatory deliberation cycle (analysis, planning, OODReAct structure).
20
- * 3. **Adaptability:** Assumes the agent adapts to dynamically available tools.
21
- * 4. **CodeAct Preference:** Aligns with agent preference for executable code actions.
22
- * 5. **Adaptive Reasoning:** Supports CoT, CoD/CRP, SCoT styles within `think`.
23
- * 6. **Traceability:** Logs tool usage; `think` tool provides reasoning trace.
24
- * 7. **Markdown Output:** Tool results formatted as Markdown.
25
- *
26
- * Protocol: Model Context Protocol (MCP) over stdio.
15
+ * v3.2 Enhancements:
16
+ * - Expanded cognitive technique acronyms (OOReDAct, CoT, CoD/CR, SCoT)
17
+ * with brief explanations on first use in descriptions.
18
+ * - Maintained internal system prompt framing.
27
19
  * -----------------------------------------------------------------------------
28
20
  */
29
21
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
@@ -32,11 +24,12 @@ import { z } from "zod";
32
24
  // --- Server Definition ---
33
25
  const serverInfo = {
34
26
  name: "gikendaasowin-agentic-cognitive-tools-mcp",
35
- version: "2.0.0", // Version reflects alignment with v7 guidelines
36
- description: `ᑭᑫᓐᑖᓱᐎᓐ ᐋᐸᒋᒋᑲᓇᓐ - Agentic Cognitive Tools (v2.0): Implements Gikendaasowin v7 Guidelines. Facilitates mandatory Observe-Orient-Decide-Act deliberation cycle (using 'think' tool) before actions. Supports adaptive reasoning (CoT, CoD/CRP, SCoT) and dynamic tool environments (incl. CodeAct preference). Returns Markdown.`
27
+ version: "3.2.0", // Version reflects acronym expansion
28
+ // Updated description with expanded acronyms
29
+ description: `ᑭᑫᓐᑖᓱᐎᓐ ᐋᐸᒋᒋᑲᓇᓐ - Agentic Cognitive Tools (v3.2): Implements Gikendaasowin v7 Guidelines. Enforces MANDATORY internal **Observe-Orient-Reason-Decide-Act (OOReDAct)** cycle: Starts with 'assess_and_orient', continues with 'think' deliberation before actions. Guides adaptive reasoning (**Chain-of-Thought (CoT)**, **Chain-of-Draft/Condensed Reasoning (CoD/CR)**, **Structured Chain-of-Thought (SCoT)**) & CodeAct preference. Returns Markdown.`
37
30
  };
38
31
  const server = new McpServer(serverInfo);
39
- // --- Logging Helpers ---
32
+ // --- Logging Helpers (Internal - No changes needed) ---
40
33
  /**
41
34
  * Logs an incoming tool call to stderr.
42
35
  * @param toolName The name of the tool being called.
@@ -57,7 +50,8 @@ function logToolResult(toolName, success, resultDetails) {
57
50
  console.error(`[${timestamp}] [MCP Server] < Tool Result: ${toolName} - ${success ? 'Success' : 'Failure'}${resultDetails ? ` - ${resultDetails}` : ''}`);
58
51
  }
59
52
  /**
60
- * Logs an error during tool execution and formats a standard error response for the LLM.
53
+ * Logs an error during tool execution and formats a standard error response for the LLM,
54
+ * guiding towards the mandatory internal deliberation cycle with expanded acronyms on first use.
61
55
  * @param toolName The name of the tool where the error occurred.
62
56
  * @param error The error object or message.
63
57
  * @returns An object matching the required MCP tool result structure containing the error message.
@@ -67,121 +61,119 @@ function logToolError(toolName, error) {
67
61
  const errorMessage = error instanceof Error ? error.message : String(error);
68
62
  console.error(`[${timestamp}] [MCP Server] ! Tool Error: ${toolName} - ${errorMessage}`);
69
63
  logToolResult(toolName, false, errorMessage); // Log failure result as well
70
- // Return a structured error message suitable for the LLM, guiding towards the mandatory deliberation step
64
+ // **Refined Error Guidance:** Expanded acronyms on first mention here.
71
65
  return {
72
66
  content: [{
73
67
  type: "text",
74
- text: `Error executing tool '${toolName}': ${errorMessage}. **Action Required:** Initiate the mandatory deliberation cycle (use the 'think' tool if available) to analyze this error (Observe/Orient), review context/goals, and plan the next corrective step (Decide/Reason/Act(Plan)).`
68
+ text: `**INTERNAL ERROR during '${toolName}':** ${errorMessage}\n\n**CORRECTIVE ACTION REQUIRED:** You MUST now perform the full **Observe-Orient-Reason-Decide-Act (OOReDAct)** deliberation cycle to address this error. Structure your thinking with: 1. **Observe** this error message. 2. **Orient** by analyzing the error in context of the goal and previous steps. 3. **Reason** about potential causes and solutions (use adaptive reasoning: **Chain-of-Thought (CoT)** for detailed steps, **Chain-of-Draft/Condensed Reasoning (CoD/CR)** for efficient summaries, or **Structured Chain-of-Thought (SCoT)** for plans/code, as appropriate). 4. **Decide** on the *single best* corrective action (e.g., retry, modify parameters, use different tool/CodeAct, ask USER). 5. **Act(Plan)** the exact parameters or code for the correction. 6. Define **Verification** and **Risk/Contingency**.`
75
69
  }]
76
70
  };
77
71
  }
78
- // --- Core Cognitive Deliberation & Refinement Tools (Aligned with v7 Guidelines) ---
72
+ // --- Core Cognitive Deliberation & Refinement Steps (v3.2 - Expanded Acronyms) ---
79
73
  /**
80
- * Tool: assess_cuc_n_mode (Optional Initial Assessment)
81
- * Purpose: Optional initial assessment of task characteristics (Complexity, Uncertainty, Consequence, Novelty)
82
- * to *inform* the strategy for the mandatory deliberation cycle.
83
- * Workflow: Can be called *optionally* at the start of complex tasks to help frame the initial approach.
84
- * The primary, mandatory deliberation happens *later* using `think` or internally.
85
- * Output: Returns the assessment text formatted as Markdown.
74
+ * Step: assess_and_orient (Mandatory Initial Assessment & Orientation)
75
+ * Purpose: **Mandatory first step** for every new user request AND before any significant strategic pivot.
76
+ * Establishes initial context by assessing task characteristics (Complexity, Uncertainty, Consequence, Novelty - CUC-N)
77
+ * and performing the initial Observe/Orient steps of the **Observe-Orient-Reason-Decide-Act (OOReDAct)** cycle.
78
+ * Workflow: **Perform this step** at the beginning of processing a user request or when changing overall approach.
79
+ * Its output informs the *first* full OOReDAct cycle (`think` step).
80
+ * Output: The assessment and initial orientation text formatted as Markdown.
86
81
  */
87
- server.tool("assess_cuc_n_mode", "**(Optional) Initial Task Assessment.** Evaluates task Complexity, Uncertainty, Consequence, Novelty (CUC-N) to *inform* the initial strategy. Call optionally before complex tasks. This assessment helps frame the mandatory deliberation cycle (which uses `think` or occurs internally) but does *not* replace it. Output is your assessment.", {
88
- assessment_text: z.string().describe("Your structured CUC-N assessment including: 1) Situation/Task Summary, 2) CUC-N Analysis (Low/Medium/High rationale), 3) Potential Strategy Considerations (e.g., 'Requires careful step-by-step planning via CoT', 'Efficiency via CoD/CRP seems appropriate', 'Need to prioritize CodeAct for file manipulation'). This informs, but does not dictate, the mandatory deliberation step.")
89
- }, async ({ assessment_text }) => {
90
- const toolName = 'assess_cuc_n_mode';
82
+ server.tool("assess_and_orient",
83
+ // **Internal Framing:** Expanded OOReDAct on first mention.
84
+ "**Mandatory Initial Assessment & Orientation:** At the start of EVERY user request AND before any major change in strategy, you MUST perform this initial assessment and orientation. Analyze the request/situation using CUC-N (Complexity, Uncertainty, Consequence, Novelty) to perform the initial 'Observe' and 'Orient' steps of the **Observe-Orient-Reason-Decide-Act (OOReDAct)** cycle. This assessment is CRITICAL for grounding your subsequent reasoning and planning within the main OOReDAct cycle.", {
85
+ assessment_and_orientation_text: z.string().describe("Provide your structured CUC-N assessment and initial Orientation. MUST include: 1) Task/Situation Summary (Observe). 2) CUC-N Analysis (Rationale for Low/Medium/High ratings). 3) Initial Orientation (Contextualize task based on CUC-N, goals, constraints, available tools/knowledge; identify key challenges/unknowns). 4) Strategic Implications (How CUC-N influences the approach, e.g., 'High consequence requires rigorous verification in subsequent OOReDAct cycles', 'High uncertainty suggests iterative refinement').")
86
+ }, async ({ assessment_and_orientation_text }) => {
87
+ const toolName = 'assess_and_orient';
91
88
  logToolCall(toolName);
92
89
  try {
93
- if (assessment_text.trim().length === 0) {
94
- throw new Error('Invalid assessment_text: Must be a non-empty string containing the CUC-N analysis.');
90
+ if (assessment_and_orientation_text.trim().length === 0) {
91
+ throw new Error('Invalid input: Must provide a non-empty CUC-N assessment and orientation.');
92
+ }
93
+ if (!assessment_and_orientation_text.includes("CUC-N Analysis") || !assessment_and_orientation_text.includes("Initial Orientation")) {
94
+ console.warn(`[${new Date().toISOString()}] [MCP Server] WARNING: '${toolName}' input may be missing key sections (CUC-N Analysis, Initial Orientation). Ensure full assessment.`);
95
95
  }
96
- logToolResult(toolName, true, `Assessment logged (length: ${assessment_text.length})`);
97
- console.error(`[${new Date().toISOString()}] [MCP Server] - ${toolName} Input:\n${assessment_text}`);
98
- // Return the assessment text directly
99
- return {
100
- content: [{
101
- type: "text",
102
- text: assessment_text
103
- }]
104
- };
96
+ logToolResult(toolName, true, `Assessment & Orientation logged (length: ${assessment_and_orientation_text.length})`);
97
+ console.error(`[${new Date().toISOString()}] [MCP Server] - ${toolName} Input:\n${assessment_and_orientation_text}`);
98
+ return { content: [{ type: "text", text: assessment_and_orientation_text }] };
105
99
  }
106
100
  catch (error) {
107
101
  return logToolError(toolName, error);
108
102
  }
109
103
  });
110
104
  /**
111
- * Tool: think (Mandatory Deliberation Hub)
112
- * Purpose: The **PREFERRED & CENTRAL HUB** for the **MANDATORY** structured deliberation cycle
113
- * (Observe-Orient-Decide-Act).
114
- * Workflow: **MUST** be called (if available) *after* receiving new information (tool results, CodeAct output/errors,
115
- * USER input, file reads) and *before* executing any non-trivial action (tool call, CodeAct execution,
116
- * complex response generation). Use it to analyze inputs, orient context/goals/policies, decide the next
117
- * action, reason (CoT, CoD/CRP, SCoT), plan the action details (tool params, CodeAct code), define
118
- * verification, and consider risks. Essential for reliability, error handling, and complex tasks.
119
- * Output: Returns the structured thought process itself, formatted as Markdown, serving as an internal log.
105
+ * Step: think (Mandatory OOReDAct Deliberation Cycle)
106
+ * Purpose: The **REQUIRED & CENTRAL cognitive process** for the **MANDATORY** structured deliberation cycle
107
+ * (**Observe-Orient-Reason-Decide-Act (OOReDAct)**).
108
+ * Workflow: **You MUST perform this full, structured OOReDAct cycle** *after* the initial `assess_and_orient` step,
109
+ * *after* receiving subsequent new information (tool results, CodeAct output/errors, USER input, file reads),
110
+ * and *before* executing any non-trivial action or providing a final response. Use it to rigorously follow the OOReDAct
111
+ * structure, document reasoning (adapting reasoning styles like **Chain-of-Thought (CoT)**, **Chain-of-Draft/Condensed Reasoning (CoD/CR)**,
112
+ * or **Structured Chain-of-Thought (SCoT)** as needed), decide the next step, and plan actions precisely.
113
+ * Output: The structured thought process itself (Markdown), serving as your verifiable internal reasoning log.
120
114
  */
121
- server.tool("think", "**Mandatory Deliberation Hub.** Use this tool (if available) for the required structured deliberation cycle *after* info and *before* action. Input MUST follow the OODReAct structure: ## Observe (analyze inputs/results/errors), ## Orient (context/goals/policy check), ## Decide (next action: tool, CodeAct, query, respond), ## Reason (justify decision; use CoT, CoD/CRP, or SCoT style), ## Act (Plan) (tool params, CodeAct code, response draft), ## Verification (success criteria), ## Risk & Contingency (briefly).", {
122
- thought: z.string().describe("Your **structured OODReAct deliberation**. MUST include all sections: Observe, Orient, Decide, Reason (using appropriate CoT/CoD/CRP/SCoT style), Act(Plan) (with specific tool parameters or CodeAct code), Verification, Risk & Contingency. This is critical for documenting the mandatory reasoning process before acting.")
115
+ server.tool("think",
116
+ // **Internal Framing:** Expanded OOReDAct, CoT, CoD/CR, SCoT on first mention in this tool's description.
117
+ "**Mandatory OOReDAct Deliberation Cycle:** You MUST perform the full, structured **Observe-Orient-Reason-Decide-Act (OOReDAct)** cycle *after* the initial `assess_and_orient` step, *after* receiving new information (tool/CodeAct results, errors, USER input), and *before* any non-trivial action or final response. Follow the complete OOReDAct structure, adapting your reasoning style within the 'Reason' step (e.g., using detailed **Chain-of-Thought (CoT)** for complexity, concise **Chain-of-Draft/Condensed Reasoning (CoD/CR)** for efficiency, or **Structured Chain-of-Thought (SCoT)** for planning/code) for reliable, verifiable, and adaptive behavior.", {
118
+ // **Internal Framing:** Expanded acronyms with explanations in the input description.
119
+ thought: z.string().describe("Provide your **complete, structured OOReDAct deliberation**. MUST include ALL sections: ## Observe (Analyze latest inputs/results/errors objectively), ## Orient (Contextualize vs goal/policy/prior state/assessment), ## Reason (Justify decision; adapt reasoning style: use **Chain-of-Thought (CoT)** for detailed, step-by-step derivation when complexity is high; use **Chain-of-Draft/Condensed Reasoning (CoD/CR)** for a more concise, high-signal summary when appropriate; use **Structured Chain-of-Thought (SCoT)** for outlining plans or generating structured code), ## Decide (Single, immediate next action: specific tool call, CodeAct execution, query USER, final response), ## Act (Plan) (Detail execution: EXACT tool params per current schema, OR complete runnable CodeAct Python snippet, OR precise response draft), ## Verification (Expected outcome/success criteria for *this* step), ## Risk & Contingency (Brief fallback if verification fails).")
123
120
  }, async ({ thought }) => {
124
121
  const toolName = 'think';
125
122
  logToolCall(toolName);
126
123
  try {
127
- // Basic validation: Check if it's non-empty and maybe contains expected markers
128
124
  if (thought.trim().length === 0) {
129
- throw new Error('Invalid thought: Must be a non-empty string.');
125
+ throw new Error('Invalid thought: Input cannot be empty.');
130
126
  }
131
- if (!thought.includes("## Observe:") || !thought.includes("## Orient:") || !thought.includes("## Decide:") || !thought.includes("## Reason:") || !thought.includes("## Act (Plan):")) {
132
- throw new Error('Invalid thought structure: Must contain required OODReAct sections (Observe, Orient, Decide, Reason, Act(Plan)).');
127
+ const requiredSections = ["## Observe", "## Orient", "## Reason", "## Decide", "## Act (Plan)", "## Verification", "## Risk & Contingency"];
128
+ const missingSections = requiredSections.filter(section => !thought.includes(section));
129
+ if (missingSections.length > 0) {
130
+ throw new Error(`Invalid thought structure: Missing required OOReDAct section(s): ${missingSections.join(', ')}. You must provide the complete deliberation.`);
133
131
  }
134
132
  logToolResult(toolName, true, `Deliberation logged (length: ${thought.length})`);
135
133
  console.error(`[${new Date().toISOString()}] [MCP Server] - ${toolName} Input:\n${thought}`);
136
- // Return the thought process itself as the result
137
- return {
138
- content: [{
139
- type: "text",
140
- text: thought
141
- }]
142
- };
134
+ return { content: [{ type: "text", text: thought }] };
143
135
  }
144
136
  catch (error) {
145
137
  return logToolError(toolName, error);
146
138
  }
147
139
  });
148
140
  /**
149
- * Tool: quick_think (Minimal Cognitive Step - Use With Extreme Caution)
150
- * Purpose: A minimal cognitive step ONLY for acknowledging *trivial*, *immediately obvious* successes or state transitions.
151
- * Workflow: **STRONGLY DISCOURAGED.** Use ONLY if the mandatory deliberation cycle (`think` or internal) is genuinely unnecessary
152
- * because the situation involves absolutely no analysis, planning, policy check, error handling, or complex reasoning.
153
- * Example: Confirming receipt of simple data before an already-planned trivial action.
154
- * **DO NOT USE** after most tool calls, CodeAct executions, or before any complex action - use `think` instead.
155
- * Output: Returns the brief thought text, formatted as Markdown.
141
+ * Step: quick_think (Minimal Cognitive Acknowledgement)
142
+ * Purpose: For acknowledging *simple, expected, non-problematic* outcomes ONLY, where the next step is
143
+ * *already clearly defined* by a prior **Observe-Orient-Reason-Decide-Act (OOReDAct)** cycle (`think` step)
144
+ * and requires NO re-evaluation or adaptation.
145
+ * Workflow: Use sparingly to maintain cognitive flow in straightforward sequences. **Does NOT replace the mandatory OOReDAct cycle**.
146
+ * The full OOReDAct cycle (`think` step) is MANDATORY for handling new information, errors, planning changes,
147
+ * or any step requiring analysis or decision-making.
148
+ * Output: The brief acknowledgement text (Markdown).
156
149
  */
157
- server.tool("quick_think", "**(Use Sparingly/Discouraged) Minimal Cognitive Step.** Use ONLY for acknowledging *trivial successes* or confirming *obvious, pre-planned* simple steps where NO analysis/planning/policy check is needed (e.g., 'Data received, proceeding with planned step X'). **The mandatory deliberation cycle (`think` tool or internal) is required for almost all situations.** Prefer `think` after any tool/CodeAct output or error.", {
158
- brief_thought: z.string().describe("Your **extremely concise** confirmation for a truly trivial step (e.g., 'Trivial action X succeeded'). Must be non-empty but very short. DO NOT use for analysis, planning, error reflection, or complex reasoning - use the `think` tool for the mandatory deliberation cycle.")
150
+ server.tool("quick_think",
151
+ // **Internal Framing:** Expanded OOReDAct on first mention here.
152
+ "**Minimal Cognitive Acknowledgement:** Use ONLY for acknowledging *simple, expected, non-problematic* outcomes (e.g., 'Data fetch OK, proceeding with planned analysis') where the next step is *already determined* by a prior **Observe-Orient-Reason-Decide-Act (OOReDAct)** cycle (`think` step) and needs NO re-evaluation. Helps maintain flow in simple sequences. **This step DOES NOT satisfy the mandatory OOReDAct deliberation requirement.** Perform the full OOReDAct cycle (`think` step) for any analysis, planning, reasoning, error handling, or decision making.", {
153
+ // **Internal Framing:** Expanded OOReDAct on first mention here.
154
+ brief_thought: z.string().describe("Provide your **extremely concise** acknowledgement for a genuinely trivial step (max ~15 words recommended, e.g., 'Step X succeeded as expected.'). Must be non-empty. **Do NOT use this for ANY analysis, planning, reasoning, decision-making, or error handling** - perform the full **Observe-Orient-Reason-Decide-Act (OOReDAct)** cycle (`think` step) instead.")
159
155
  }, async ({ brief_thought }) => {
160
156
  const toolName = 'quick_think';
161
157
  logToolCall(toolName);
162
158
  try {
163
159
  if (brief_thought.trim().length === 0) {
164
- throw new Error('Invalid brief_thought: Must be a non-empty string.');
160
+ throw new Error('Invalid brief_thought: Must be non-empty.');
161
+ }
162
+ if (brief_thought.includes("##")) {
163
+ throw new Error("Invalid brief_thought: Cannot contain '##' sections. Use the full OOReDAct cycle (`think` step) for structured deliberation.");
165
164
  }
166
- // Optional stricter length check to enforce brevity
167
- if (brief_thought.length > 150) { // Example limit
168
- console.error(`[${new Date().toISOString()}] [MCP Server] WARNING: 'quick_think' input is long. Ensure 'think' wasn't more appropriate.`);
165
+ if (brief_thought.length > 100) {
166
+ console.warn(`[${new Date().toISOString()}] [MCP Server] WARNING: 'quick_think' input is long (${brief_thought.length} chars). Confirm this step was truly trivial and required no OOReDAct deliberation.`);
169
167
  }
170
168
  logToolResult(toolName, true, `Logged: ${brief_thought.substring(0, 80)}...`);
171
169
  console.error(`[${new Date().toISOString()}] [MCP Server] - ${toolName} Input:\n${brief_thought}`);
172
- // Return the brief thought
173
- return {
174
- content: [{
175
- type: "text",
176
- text: brief_thought
177
- }]
178
- };
170
+ return { content: [{ type: "text", text: brief_thought }] };
179
171
  }
180
172
  catch (error) {
181
173
  return logToolError(toolName, error);
182
174
  }
183
175
  });
184
- // --- Server Lifecycle and Error Handling ---
176
+ // --- Server Lifecycle and Error Handling (Internal - No changes needed) ---
185
177
  /**
186
178
  * Gracefully shuts down the server.
187
179
  */
@@ -204,14 +196,14 @@ process.on('SIGTERM', shutdown);
204
196
  process.on('uncaughtException', (error, origin) => {
205
197
  const timestamp = new Date().toISOString();
206
198
  console.error(`[${timestamp}] [MCP Server] FATAL: Uncaught Exception at: ${origin}`, error);
207
- shutdown().catch(() => process.exit(1)); // Attempt graceful shutdown
199
+ shutdown().catch(() => process.exit(1));
208
200
  });
209
201
  process.on('unhandledRejection', (reason, promise) => {
210
202
  const timestamp = new Date().toISOString();
211
203
  console.error(`[${timestamp}] [MCP Server] FATAL: Unhandled Promise Rejection:`, reason);
212
- shutdown().catch(() => process.exit(1)); // Attempt graceful shutdown
204
+ shutdown().catch(() => process.exit(1));
213
205
  });
214
- // --- Start the Server ---
206
+ // --- Start the Server (Internal - No changes needed) ---
215
207
  /**
216
208
  * Initializes and starts the MCP server.
217
209
  */
@@ -221,9 +213,9 @@ async function main() {
221
213
  await server.connect(transport);
222
214
  const border = '=====================================================';
223
215
  console.error(border);
224
- console.error(` ${serverInfo.description}`);
216
+ console.error(` ${serverInfo.description}`); // Uses updated description
225
217
  console.error(` Version: ${serverInfo.version}`);
226
- console.error(` Aligned with Gikendaasowin v7 Agentic Guidelines`);
218
+ console.error(` Enforcing Gikendaasowin v7 Guidelines with Internal OOReDAct Cycle`);
227
219
  console.error(' Status: Running on stdio, awaiting MCP requests...');
228
220
  console.error(border);
229
221
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nbiish/cognitive-tools-mcp",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "description": "Cognitive Tools MCP: SOTA reasoning suite focused on iterative refinement and tool integration for AI Pair Programming. Enables structured, iterative problem-solving through Chain of Draft methodology, with tools for draft generation, analysis, and refinement. Features advanced deliberation (`think`), rapid checks (`quick_think`), mandatory complexity assessment & thought mode selection (`assess_cuc_n_mode`), context synthesis, confidence gauging, proactive planning, explicit reasoning (CoT), and reflection with content return. Alternative package name for gikendaasowin-aabajichiganan-mcp.",
5
5
  "private": false,
6
6
  "type": "module",