prompt-clarifier-mcp 3.0.4 → 3.0.5

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
@@ -1,5 +1,7 @@
1
1
  # Prompt Clarifier — MCP Agent
2
2
 
3
+ ![version](https://img.shields.io/badge/version-3.0.4-blue)
4
+
3
5
  > Stop the back-and-forth with your LLM. This agent asks the right questions before executing your request.
4
6
 
5
7
  ## How it works
@@ -29,7 +31,7 @@ The MCP server is **LLM-agnostic**: it makes no external API calls and requires
29
31
  | Domain detection | MCP server |
30
32
  | Session state (Q&A history) | MCP server |
31
33
  | Question generation | Your IDE's LLM (Junie, Cursor, Claude Code, Copilot…) |
32
- | Knowledge base search | Your IDE's LLM (Confluence, Notion, etc.) |
34
+ | Knowledge base search | Your IDE's LLM (Confluence, Jira, Figma, Notion, Linear, GitHub Issues…) |
33
35
 
34
36
  **Call flow:**
35
37
 
@@ -52,7 +54,20 @@ The MCP server is **LLM-agnostic**: it makes no external API calls and requires
52
54
 
53
55
  ## Knowledge base search
54
56
 
55
- The returned system prompt instructs your IDE's LLM to **search connected knowledge bases first** (Confluence, Notion, or any connected documentation tool) before formulating questions. This produces questions tailored to your organization's actual standards and workflows rather than generic ones.
57
+ The returned system prompt instructs your IDE's LLM to **use its connected MCP tools** to gather internal context before formulating questions. This produces questions tailored to your organization's actual standards and workflows rather than generic ones.
58
+
59
+ Supported platforms (if connected in your IDE):
60
+
61
+ | Platform | MCP tool used | What is searched |
62
+ | --- | --- | --- |
63
+ | **Confluence** (Atlassian Rovo) | `searchConfluenceUsingCql` | Internal standards, architecture decisions, naming conventions |
64
+ | **Jira** (Atlassian Rovo) | `searchJiraIssuesUsingJql` | Open issues, epics, current constraints |
65
+ | **Figma** | Figma MCP tool | Design specs, component names |
66
+ | **Notion** | Notion MCP tool | Internal documentation |
67
+ | **Linear** | Linear MCP tool | Open issues, roadmap |
68
+ | **GitHub Issues** | GitHub MCP tool | Open issues, discussions |
69
+
70
+ If none of these tools are connected, the LLM falls back to domain best practices.
56
71
 
57
72
  ---
58
73
 
@@ -202,6 +217,8 @@ The server will:
202
217
  }
203
218
  ```
204
219
 
220
+ > Pass back the `question` field (the question your LLM just asked) alongside `answer` so the session history stays complete and the enriched prompt includes the full Q&A context.
221
+
205
222
  **Final response:**
206
223
  ```json
207
224
  {
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
6
  const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
7
7
  const session_js_1 = require("./session.js");
8
8
  const clarifier_js_1 = require("./clarifier.js");
9
- const server = new index_js_1.Server({ name: "prompt-clarifier", version: "3.0.4" }, { capabilities: { tools: {} } });
9
+ const server = new index_js_1.Server({ name: "prompt-clarifier", version: "3.0.5" }, { capabilities: { tools: {} } });
10
10
  server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
11
11
  tools: [
12
12
  {
@@ -59,7 +59,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
59
59
  session_id: session.id,
60
60
  system_prompt: (0, clarifier_js_1.buildClarifySystemPrompt)(args.prompt, [], domain),
61
61
  user_message: `Here is the user prompt to clarify: ${args.prompt}`,
62
- instructions: "Ask the first clarifying question now. Include the session_id in your response so the user knows to pass it back.",
62
+ instructions: "Ask the first clarifying question now. When calling this tool again, pass your question text in the `question` field, the user's answer in `answer`, and the `session_id`.",
63
63
  }),
64
64
  },
65
65
  ],
@@ -73,22 +73,25 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
73
73
  };
74
74
  }
75
75
  const answer = args.answer ?? "";
76
- // Save the answer to session
76
+ // Go signal generate final prompt WITHOUT saving "go" to history
77
+ if ((0, clarifier_js_1.isGoSignal)(answer)) {
78
+ const enriched = (0, clarifier_js_1.buildEnrichedPrompt)(session.initialPrompt, session.qaHistory);
79
+ (0, session_js_1.deleteSession)(session.id);
80
+ return {
81
+ content: [{ type: "text", text: JSON.stringify({ final_prompt: enriched }) }],
82
+ };
83
+ }
84
+ // Save the real answer to session
77
85
  if (answer.trim()) {
78
86
  session.qaHistory.push({ question: args.question ?? "", answer });
79
87
  (0, session_js_1.saveSession)(session);
80
88
  }
81
- // Go signal or max questions reached → return final enriched prompt
82
- if ((0, clarifier_js_1.isGoSignal)(answer) || session.qaHistory.length >= 5) {
89
+ // Max questions reached → return final enriched prompt
90
+ if (session.qaHistory.length >= 5) {
83
91
  const enriched = (0, clarifier_js_1.buildEnrichedPrompt)(session.initialPrompt, session.qaHistory);
84
92
  (0, session_js_1.deleteSession)(session.id);
85
93
  return {
86
- content: [
87
- {
88
- type: "text",
89
- text: JSON.stringify({ final_prompt: enriched }),
90
- },
91
- ],
94
+ content: [{ type: "text", text: JSON.stringify({ final_prompt: enriched }) }],
92
95
  };
93
96
  }
94
97
  const domain = (0, clarifier_js_1.detectDomain)(session.initialPrompt);
@@ -101,6 +104,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
101
104
  system_prompt: (0, clarifier_js_1.buildClarifySystemPrompt)(session.initialPrompt, session.qaHistory, domain),
102
105
  user_message: `The user answered: ${answer}. Ask the next question.`,
103
106
  qa_count: session.qaHistory.length,
107
+ instructions: "Ask the next clarifying question. When calling this tool again, pass your question text in the `question` field, the user's answer in `answer`, and the `session_id`.",
104
108
  }),
105
109
  },
106
110
  ],
@@ -109,7 +113,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
109
113
  async function main() {
110
114
  const transport = new stdio_js_1.StdioServerTransport();
111
115
  await server.connect(transport);
112
- process.stderr.write("Prompt Clarifier MCP server v3.0.4 started (stdio)\n");
116
+ process.stderr.write("Prompt Clarifier MCP server v3.0.5 started (stdio)\n");
113
117
  }
114
118
  main().catch((err) => {
115
119
  process.stderr.write(`Fatal: ${err}\n`);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,wEAAmE;AACnE,wEAAiF;AACjF,iEAG4C;AAE5C,6CAKsB;AACtB,iDAKwB;AAExB,MAAM,MAAM,GAAG,IAAI,iBAAM,CACvB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC9C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;AAEF,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE;QACL;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EACT,+QAA+Q;YACjR,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,mDAAmD;qBACjE;oBACD,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,wEAAwE;qBACtF;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+GAA+G;qBAC7H;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oDAAoD;qBAClE;iBACF;gBACD,QAAQ,EAAE,EAAE;aACb;SACF;KACF;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;IACvF,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAK3B,CAAC;IAEF,sBAAsB;IACtB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iDAAiD,EAAE,CAAC;aACrF,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,0BAAa,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAA,2BAAY,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,UAAU,EAAE,OAAO,CAAC,EAAE;wBACtB,aAAa,EAAE,IAAA,uCAAwB,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC;wBAChE,YAAY,EAAE,uCAAuC,IAAI,CAAC,MAAM,EAAE;wBAClE,YAAY,EACV,mHAAmH;qBACtH,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,MAAM,OAAO,GAAG,IAAA,wBAAW,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;SAC3E,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IAEjC,6BAA6B;IAC7B,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAClE,IAAA,wBAAW,EAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,oEAAoE;IACpE,IAAI,IAAA,yBAAU,EAAC,MAAM,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAA,kCAAmB,EAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/E,IAAA,0BAAa,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;iBACjD;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,2BAAY,EAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACnD,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,UAAU,EAAE,OAAO,CAAC,EAAE;oBACtB,aAAa,EAAE,IAAA,uCAAwB,EAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;oBACzF,YAAY,EAAE,sBAAsB,MAAM,0BAA0B;oBACpE,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM;iBACnC,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;AAC/E,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prompt-clarifier-mcp",
3
- "version": "3.0.4",
3
+ "version": "3.0.5",
4
4
  "description": "MCP agent that clarifies user prompts before sending them to any LLM — works in Cursor, VS Code, IntelliJ, PyCharm, Claude Desktop",
5
5
  "main": "dist/index.js",
6
6
  "bin": {