spm-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/dist/src/index.js +12 -3
- package/package.json +1 -1
- package/src/index.ts +12 -3
package/dist/src/index.js
CHANGED
|
@@ -44,7 +44,9 @@ export function createSpmMcpServer(options) {
|
|
|
44
44
|
server.tool('spm_analyze', 'Analyze a product document against SPM expert expectations. ' +
|
|
45
45
|
'Pass a document and a nano_app_id (e.g., "prd_critique", "user_story", "growth_strategy") ' +
|
|
46
46
|
'to get an expert analysis with expectations, sub-expectations, scores, and evidence. ' +
|
|
47
|
-
'Call spm_list_nano_apps first if you need to discover available templates.'
|
|
47
|
+
'Call spm_list_nano_apps first if you need to discover available templates. ' +
|
|
48
|
+
'IMPORTANT: Present results as a clear scorecard table (Expectation | Score | Verdict). ' +
|
|
49
|
+
'Highlight critical gaps (score < 50%) and suggest running spm_clarify on the weakest gap next.', {
|
|
48
50
|
document: z.string().describe('The product document text to analyze'),
|
|
49
51
|
nano_app_id: z.string().describe('The nano app template key (e.g., "prd_critique"). Call spm_list_nano_apps to see available options.'),
|
|
50
52
|
}, async (input) => {
|
|
@@ -61,7 +63,12 @@ export function createSpmMcpServer(options) {
|
|
|
61
63
|
// Tool: spm_clarify
|
|
62
64
|
server.tool('spm_clarify', 'Get clarification questions for gaps identified in an SPM analysis. ' +
|
|
63
65
|
'Pass the original document, the expert analysis context, and a target gap. ' +
|
|
64
|
-
'Returns targeted questions with suggested answers to close document gaps.'
|
|
66
|
+
'Returns targeted questions with suggested answers to close document gaps. ' +
|
|
67
|
+
'IMPORTANT: When presenting results to the user, minimize cognitive load. ' +
|
|
68
|
+
'Show the question prominently, then present each answer option as a clear ' +
|
|
69
|
+
'numbered choice the user can pick (1, 2, 3...). Mark the [recommended] option. ' +
|
|
70
|
+
'If you have native interactive UI (buttons, selectable options, AskUserQuestion), use it. ' +
|
|
71
|
+
'The user should be able to pick an option or type their own answer with minimal effort.', {
|
|
65
72
|
document: z.string().describe('The original product document text'),
|
|
66
73
|
nano_app_id: z.string().describe('The nano app template key used in the analysis'),
|
|
67
74
|
main_expectation: z.string().describe('The main expectation name/text from the analysis result'),
|
|
@@ -114,7 +121,9 @@ export function createSpmMcpServer(options) {
|
|
|
114
121
|
server.tool('spm_improve', 'Generate improved document content for a specific gap. ' +
|
|
115
122
|
'Pass the document, the target sub-expectation, and all clarification Q&A pairs. ' +
|
|
116
123
|
'Returns paste-ready content the PM can insert into their document. ' +
|
|
117
|
-
'Use after spm_evaluate confirms the gap is sufficiently covered by clarification answers.'
|
|
124
|
+
'Use after spm_evaluate confirms the gap is sufficiently covered by clarification answers. ' +
|
|
125
|
+
'IMPORTANT: Present the generated content in clean markdown the user can copy-paste directly. ' +
|
|
126
|
+
'If there are [ACTION NEEDED] markers, highlight them so the user knows what to fill in.', {
|
|
118
127
|
document: z.string().describe('The original product document text'),
|
|
119
128
|
nano_app_id: z.string().describe('The nano app template key used in the analysis'),
|
|
120
129
|
main_expectation: z.string().describe('The main expectation name/text from the analysis result'),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "spm-mcp",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Super Product Manager MCP Server - AI-powered product document analysis for PRDs, roadmaps, and 30 PM document types",
|
|
5
5
|
"author": "Super Product Manager <chiranjeevi.gunturi@superproductmanager.ai>",
|
|
6
6
|
"homepage": "https://superproductmanager.ai",
|
package/src/index.ts
CHANGED
|
@@ -55,7 +55,9 @@ export function createSpmMcpServer(options?: { apiKey?: string }): McpServer {
|
|
|
55
55
|
'Analyze a product document against SPM expert expectations. ' +
|
|
56
56
|
'Pass a document and a nano_app_id (e.g., "prd_critique", "user_story", "growth_strategy") ' +
|
|
57
57
|
'to get an expert analysis with expectations, sub-expectations, scores, and evidence. ' +
|
|
58
|
-
'Call spm_list_nano_apps first if you need to discover available templates.'
|
|
58
|
+
'Call spm_list_nano_apps first if you need to discover available templates. ' +
|
|
59
|
+
'IMPORTANT: Present results as a clear scorecard table (Expectation | Score | Verdict). ' +
|
|
60
|
+
'Highlight critical gaps (score < 50%) and suggest running spm_clarify on the weakest gap next.',
|
|
59
61
|
{
|
|
60
62
|
document: z.string().describe('The product document text to analyze'),
|
|
61
63
|
nano_app_id: z.string().describe(
|
|
@@ -79,7 +81,12 @@ export function createSpmMcpServer(options?: { apiKey?: string }): McpServer {
|
|
|
79
81
|
'spm_clarify',
|
|
80
82
|
'Get clarification questions for gaps identified in an SPM analysis. ' +
|
|
81
83
|
'Pass the original document, the expert analysis context, and a target gap. ' +
|
|
82
|
-
'Returns targeted questions with suggested answers to close document gaps.'
|
|
84
|
+
'Returns targeted questions with suggested answers to close document gaps. ' +
|
|
85
|
+
'IMPORTANT: When presenting results to the user, minimize cognitive load. ' +
|
|
86
|
+
'Show the question prominently, then present each answer option as a clear ' +
|
|
87
|
+
'numbered choice the user can pick (1, 2, 3...). Mark the [recommended] option. ' +
|
|
88
|
+
'If you have native interactive UI (buttons, selectable options, AskUserQuestion), use it. ' +
|
|
89
|
+
'The user should be able to pick an option or type their own answer with minimal effort.',
|
|
83
90
|
{
|
|
84
91
|
document: z.string().describe('The original product document text'),
|
|
85
92
|
nano_app_id: z.string().describe('The nano app template key used in the analysis'),
|
|
@@ -160,7 +167,9 @@ export function createSpmMcpServer(options?: { apiKey?: string }): McpServer {
|
|
|
160
167
|
'Generate improved document content for a specific gap. ' +
|
|
161
168
|
'Pass the document, the target sub-expectation, and all clarification Q&A pairs. ' +
|
|
162
169
|
'Returns paste-ready content the PM can insert into their document. ' +
|
|
163
|
-
'Use after spm_evaluate confirms the gap is sufficiently covered by clarification answers.'
|
|
170
|
+
'Use after spm_evaluate confirms the gap is sufficiently covered by clarification answers. ' +
|
|
171
|
+
'IMPORTANT: Present the generated content in clean markdown the user can copy-paste directly. ' +
|
|
172
|
+
'If there are [ACTION NEEDED] markers, highlight them so the user knows what to fill in.',
|
|
164
173
|
{
|
|
165
174
|
document: z.string().describe('The original product document text'),
|
|
166
175
|
nano_app_id: z.string().describe('The nano app template key used in the analysis'),
|