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 +19 -2
- package/dist/index.js +16 -12
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Prompt Clarifier — MCP Agent
|
|
2
2
|
|
|
3
|
+

|
|
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,
|
|
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 **
|
|
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.
|
|
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.
|
|
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
|
-
//
|
|
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
|
-
//
|
|
82
|
-
if (
|
|
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.
|
|
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,
|
|
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.
|
|
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": {
|