autoproject-mcp 1.1.0 → 1.3.0
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 +56 -3
- package/dist/client.d.ts +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +19 -10
- package/dist/client.js.map +1 -1
- package/dist/index.js +53 -3
- package/dist/index.js.map +1 -1
- package/dist/prompts/index.d.ts +4 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +76 -1
- package/dist/prompts/index.js.map +1 -1
- package/dist/tools/applicationTools.d.ts +5 -5
- package/dist/tools/applicationTools.js +43 -43
- package/dist/tools/applicationTools.js.map +1 -1
- package/dist/tools/documentTools.d.ts +9 -10
- package/dist/tools/documentTools.d.ts.map +1 -1
- package/dist/tools/documentTools.js +124 -66
- package/dist/tools/documentTools.js.map +1 -1
- package/dist/tools/hierarchyTools.d.ts +5 -1
- package/dist/tools/hierarchyTools.d.ts.map +1 -1
- package/dist/tools/hierarchyTools.js +82 -13
- package/dist/tools/hierarchyTools.js.map +1 -1
- package/dist/tools/releaseCycleLinkTools.d.ts +4 -4
- package/dist/tools/releaseCycleLinkTools.d.ts.map +1 -1
- package/dist/tools/releaseCycleLinkTools.js +60 -36
- package/dist/tools/releaseCycleLinkTools.js.map +1 -1
- package/dist/tools/screenTools.d.ts +9 -1
- package/dist/tools/screenTools.d.ts.map +1 -1
- package/dist/tools/screenTools.js +90 -21
- package/dist/tools/screenTools.js.map +1 -1
- package/dist/tools/useCaseTools.js +2 -2
- package/dist/tools/useCaseTools.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* MCP Tools: Application listing and feature/
|
|
3
|
+
* MCP Tools: Application listing and feature-group / feature application-link management.
|
|
4
4
|
*
|
|
5
5
|
* IDE agents use these tools to:
|
|
6
6
|
* 1. Discover what applications exist in a product.
|
|
7
|
-
* 2. Read which applications a feature or
|
|
8
|
-
* 3. Replace the application links for a feature or
|
|
7
|
+
* 2. Read which applications a feature group or feature is currently linked to.
|
|
8
|
+
* 3. Replace the application links for a feature group or feature.
|
|
9
9
|
*
|
|
10
10
|
* Terminology (aligned with AGENTS.md):
|
|
11
|
-
* "feature"
|
|
12
|
-
* "
|
|
11
|
+
* "feature group" = FeatureGroup (Feature Group in UI)
|
|
12
|
+
* "feature" = Feature (Feature in UI)
|
|
13
13
|
*
|
|
14
14
|
* Link operations are replace-semantics (idempotent PUT):
|
|
15
15
|
* Providing an empty applicationIds array removes all links.
|
|
@@ -24,7 +24,7 @@ exports.applicationToolDefinitions = [
|
|
|
24
24
|
name: 'list_applications',
|
|
25
25
|
description: 'List all applications (services, frontends, APIs, etc.) defined for a product. ' +
|
|
26
26
|
'Returns application id, name, applicationType, platform, and architecture pattern. ' +
|
|
27
|
-
'Use this first to discover valid applicationIds before calling
|
|
27
|
+
'Use this first to discover valid applicationIds before calling set_feature_group_applications or set_feature_applications.',
|
|
28
28
|
inputSchema: {
|
|
29
29
|
type: 'object',
|
|
30
30
|
properties: {
|
|
@@ -34,67 +34,67 @@ exports.applicationToolDefinitions = [
|
|
|
34
34
|
},
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
|
-
name: '
|
|
38
|
-
description: 'Get the list of applications currently linked to a feature
|
|
37
|
+
name: 'get_feature_group_applications',
|
|
38
|
+
description: 'Get the list of applications currently linked to a feature group. ' +
|
|
39
39
|
'Returns the same application objects as list_applications but filtered to only those linked.',
|
|
40
40
|
inputSchema: {
|
|
41
41
|
type: 'object',
|
|
42
42
|
properties: {
|
|
43
43
|
productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
|
|
44
|
-
|
|
44
|
+
featureGroupId: { type: 'string', description: 'Feature Group UUID.' },
|
|
45
45
|
},
|
|
46
|
-
required: ['
|
|
46
|
+
required: ['featureGroupId'],
|
|
47
47
|
},
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
name: '
|
|
51
|
-
description: 'Replace the full set of application links for a feature
|
|
50
|
+
name: 'set_feature_group_applications',
|
|
51
|
+
description: 'Replace the full set of application links for a feature group. ' +
|
|
52
52
|
'This is a replace operation — provide the complete desired list of applicationIds. ' +
|
|
53
53
|
'Pass an empty array to remove all links. Call list_applications first to get valid applicationIds.',
|
|
54
54
|
inputSchema: {
|
|
55
55
|
type: 'object',
|
|
56
56
|
properties: {
|
|
57
57
|
productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
|
|
58
|
-
|
|
58
|
+
featureGroupId: { type: 'string', description: 'Feature Group UUID.' },
|
|
59
59
|
applicationIds: {
|
|
60
60
|
type: 'array',
|
|
61
61
|
items: { type: 'string' },
|
|
62
62
|
description: 'Complete list of application UUIDs to link. Replaces any existing links.',
|
|
63
63
|
},
|
|
64
64
|
},
|
|
65
|
-
required: ['
|
|
65
|
+
required: ['featureGroupId', 'applicationIds'],
|
|
66
66
|
},
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
|
-
name: '
|
|
70
|
-
description: 'Get the list of applications currently linked to a
|
|
71
|
-
'Returns application objects filtered to only those linked to the given
|
|
69
|
+
name: 'get_feature_applications',
|
|
70
|
+
description: 'Get the list of applications currently linked to a feature. ' +
|
|
71
|
+
'Returns application objects filtered to only those linked to the given feature.',
|
|
72
72
|
inputSchema: {
|
|
73
73
|
type: 'object',
|
|
74
74
|
properties: {
|
|
75
75
|
productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
|
|
76
|
-
|
|
76
|
+
featureId: { type: 'string', description: 'Feature UUID (third hierarchy level).' },
|
|
77
77
|
},
|
|
78
|
-
required: ['
|
|
78
|
+
required: ['featureId'],
|
|
79
79
|
},
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
|
-
name: '
|
|
83
|
-
description: 'Replace the full set of application links for a
|
|
82
|
+
name: 'set_feature_applications',
|
|
83
|
+
description: 'Replace the full set of application links for a feature. ' +
|
|
84
84
|
'This is a replace operation — provide the complete desired list of applicationIds. ' +
|
|
85
85
|
'Pass an empty array to remove all links. Call list_applications first to get valid applicationIds.',
|
|
86
86
|
inputSchema: {
|
|
87
87
|
type: 'object',
|
|
88
88
|
properties: {
|
|
89
89
|
productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
|
|
90
|
-
|
|
90
|
+
featureId: { type: 'string', description: 'Feature UUID (third hierarchy level).' },
|
|
91
91
|
applicationIds: {
|
|
92
92
|
type: 'array',
|
|
93
93
|
items: { type: 'string' },
|
|
94
94
|
description: 'Complete list of application UUIDs to link. Replaces any existing links.',
|
|
95
95
|
},
|
|
96
96
|
},
|
|
97
|
-
required: ['
|
|
97
|
+
required: ['featureId', 'applicationIds'],
|
|
98
98
|
},
|
|
99
99
|
},
|
|
100
100
|
];
|
|
@@ -113,6 +113,26 @@ async function handleApplicationTool(toolName, args) {
|
|
|
113
113
|
const lines = apps.map((a) => `[${a.id}] ${a.name}\n Type: ${a.applicationType ?? 'N/A'} | Platform: ${a.platform ?? 'N/A'} | Architecture: ${a.architecturePattern ?? 'N/A'}${a.description ? `\n ${a.description}` : ''}`);
|
|
114
114
|
return { content: [{ type: 'text', text: `Applications (${apps.length}):\n\n${lines.join('\n\n')}` }] };
|
|
115
115
|
}
|
|
116
|
+
case 'get_feature_group_applications': {
|
|
117
|
+
const featureGroupId = args.featureGroupId;
|
|
118
|
+
if (!featureGroupId)
|
|
119
|
+
return { content: [{ type: 'text', text: 'Error: featureGroupId is required.' }] };
|
|
120
|
+
const data = await (0, client_js_1.apiGet)(`/products/${productId}/feature-groups/${featureGroupId}/applications`, {});
|
|
121
|
+
const apps = data?.items ?? [];
|
|
122
|
+
if (apps.length === 0) {
|
|
123
|
+
return { content: [{ type: 'text', text: 'No applications linked to this feature group.' }] };
|
|
124
|
+
}
|
|
125
|
+
const lines = apps.map((a) => `[${a.id}] ${a.name} (${a.applicationType ?? 'N/A'})`);
|
|
126
|
+
return { content: [{ type: 'text', text: `Linked applications (${apps.length}):\n${lines.join('\n')}` }] };
|
|
127
|
+
}
|
|
128
|
+
case 'set_feature_group_applications': {
|
|
129
|
+
const featureGroupId = args.featureGroupId;
|
|
130
|
+
if (!featureGroupId)
|
|
131
|
+
return { content: [{ type: 'text', text: 'Error: featureGroupId is required.' }] };
|
|
132
|
+
const applicationIds = args.applicationIds;
|
|
133
|
+
await (0, client_js_1.apiPut)(`/products/${productId}/feature-groups/${featureGroupId}/applications`, { applicationIds });
|
|
134
|
+
return { content: [{ type: 'text', text: `Feature group application links updated.\nLinked ${applicationIds.length} application(s) to feature group ${featureGroupId}.` }] };
|
|
135
|
+
}
|
|
116
136
|
case 'get_feature_applications': {
|
|
117
137
|
const featureId = args.featureId;
|
|
118
138
|
if (!featureId)
|
|
@@ -133,26 +153,6 @@ async function handleApplicationTool(toolName, args) {
|
|
|
133
153
|
await (0, client_js_1.apiPut)(`/products/${productId}/features/${featureId}/applications`, { applicationIds });
|
|
134
154
|
return { content: [{ type: 'text', text: `Feature application links updated.\nLinked ${applicationIds.length} application(s) to feature ${featureId}.` }] };
|
|
135
155
|
}
|
|
136
|
-
case 'get_subfeature_applications': {
|
|
137
|
-
const subFeatureId = args.subFeatureId;
|
|
138
|
-
if (!subFeatureId)
|
|
139
|
-
return { content: [{ type: 'text', text: 'Error: subFeatureId is required.' }] };
|
|
140
|
-
const data = await (0, client_js_1.apiGet)(`/products/${productId}/sub-features/${subFeatureId}/applications`, {});
|
|
141
|
-
const apps = data?.items ?? [];
|
|
142
|
-
if (apps.length === 0) {
|
|
143
|
-
return { content: [{ type: 'text', text: 'No applications linked to this sub-feature.' }] };
|
|
144
|
-
}
|
|
145
|
-
const lines = apps.map((a) => `[${a.id}] ${a.name} (${a.applicationType ?? 'N/A'})`);
|
|
146
|
-
return { content: [{ type: 'text', text: `Linked applications (${apps.length}):\n${lines.join('\n')}` }] };
|
|
147
|
-
}
|
|
148
|
-
case 'set_subfeature_applications': {
|
|
149
|
-
const subFeatureId = args.subFeatureId;
|
|
150
|
-
if (!subFeatureId)
|
|
151
|
-
return { content: [{ type: 'text', text: 'Error: subFeatureId is required.' }] };
|
|
152
|
-
const applicationIds = args.applicationIds;
|
|
153
|
-
await (0, client_js_1.apiPut)(`/products/${productId}/sub-features/${subFeatureId}/applications`, { applicationIds });
|
|
154
|
-
return { content: [{ type: 'text', text: `Sub-feature application links updated.\nLinked ${applicationIds.length} application(s) to sub-feature ${subFeatureId}.` }] };
|
|
155
|
-
}
|
|
156
156
|
default:
|
|
157
157
|
return { content: [{ type: 'text', text: `Unknown application tool: ${toolName}` }] };
|
|
158
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applicationTools.js","sourceRoot":"","sources":["../../src/tools/applicationTools.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AA4FH,sDAwEC;AAjKD,4CAA8C;AAE9C,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;AAEvD,QAAA,0BAA0B,GAAW;IAChD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,iFAAiF;YACjF,qFAAqF;YACrF,
|
|
1
|
+
{"version":3,"file":"applicationTools.js","sourceRoot":"","sources":["../../src/tools/applicationTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP Tools: Product Document Management
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* within a product via the AutoProject Agent API.
|
|
4
|
+
* Read + write tools for product content documents (PRD, BRD, ARCHITECTURE, etc.).
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* Typical align-with-implementation workflow:
|
|
7
|
+
* 1. list_documents (optional search/name) → pick documentId
|
|
8
|
+
* 2. get_document or get_document_sections → read current content
|
|
9
|
+
* 3. update_document_section (section-wise) and/or update_document (fullText/metadata)
|
|
10
|
+
*
|
|
11
|
+
* Common documentTypeCode values: PRD, BRD, TRD, SRS, FSD, ARCHITECTURE,
|
|
12
|
+
* USER_GUIDE, RELEASE_NOTES, MEETING_NOTES, TEST_PLAN, etc.
|
|
9
13
|
*/
|
|
10
14
|
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
11
15
|
export declare const documentToolDefinitions: Tool[];
|
|
12
|
-
export declare function handleDocumentTool(toolName: string, args: Record<string, unknown>): Promise<
|
|
13
|
-
content: {
|
|
14
|
-
type: string;
|
|
15
|
-
text: string;
|
|
16
|
-
}[];
|
|
17
|
-
}>;
|
|
16
|
+
export declare function handleDocumentTool(toolName: string, args: Record<string, unknown>): Promise<unknown>;
|
|
18
17
|
//# sourceMappingURL=documentTools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentTools.d.ts","sourceRoot":"","sources":["../../src/tools/documentTools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"documentTools.d.ts","sourceRoot":"","sources":["../../src/tools/documentTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAK1D,eAAO,MAAM,uBAAuB,EAAE,IAAI,EAuHzC,CAAC;AAUF,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBAgEvF"}
|
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* MCP Tools: Product Document Management
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* within a product via the AutoProject Agent API.
|
|
5
|
+
* Read + write tools for product content documents (PRD, BRD, ARCHITECTURE, etc.).
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* Typical align-with-implementation workflow:
|
|
8
|
+
* 1. list_documents (optional search/name) → pick documentId
|
|
9
|
+
* 2. get_document or get_document_sections → read current content
|
|
10
|
+
* 3. update_document_section (section-wise) and/or update_document (fullText/metadata)
|
|
11
|
+
*
|
|
12
|
+
* Common documentTypeCode values: PRD, BRD, TRD, SRS, FSD, ARCHITECTURE,
|
|
13
|
+
* USER_GUIDE, RELEASE_NOTES, MEETING_NOTES, TEST_PLAN, etc.
|
|
10
14
|
*/
|
|
11
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
16
|
exports.documentToolDefinitions = void 0;
|
|
@@ -16,8 +20,9 @@ const DEFAULT_PRODUCT_ID = process.env.AUTOPROJECT_PRODUCT_ID ?? '';
|
|
|
16
20
|
exports.documentToolDefinitions = [
|
|
17
21
|
{
|
|
18
22
|
name: 'list_documents',
|
|
19
|
-
description: 'List
|
|
20
|
-
'
|
|
23
|
+
description: 'List documents for a product (names, types, status, summary). '
|
|
24
|
+
+ 'Filter by documentType code and/or search/name (matches document name, slug, or summary). '
|
|
25
|
+
+ 'Use this first to find the documentId before get_document or updates.',
|
|
21
26
|
inputSchema: {
|
|
22
27
|
type: 'object',
|
|
23
28
|
properties: {
|
|
@@ -26,6 +31,14 @@ exports.documentToolDefinitions = [
|
|
|
26
31
|
type: 'string',
|
|
27
32
|
description: 'Filter by document type code (e.g. PRD, BRD, TRD, ARCHITECTURE, RELEASE_NOTES, USER_GUIDE).',
|
|
28
33
|
},
|
|
34
|
+
search: {
|
|
35
|
+
type: 'string',
|
|
36
|
+
description: 'Search by document name, slug, or summary (case-insensitive). Alias: name.',
|
|
37
|
+
},
|
|
38
|
+
name: {
|
|
39
|
+
type: 'string',
|
|
40
|
+
description: 'Alias for search — find documents by name.',
|
|
41
|
+
},
|
|
29
42
|
limit: { type: 'number', description: 'Maximum number of results to return. Default: 50, max: 200.' },
|
|
30
43
|
},
|
|
31
44
|
required: [],
|
|
@@ -33,8 +46,8 @@ exports.documentToolDefinitions = [
|
|
|
33
46
|
},
|
|
34
47
|
{
|
|
35
48
|
name: 'get_document',
|
|
36
|
-
description: 'Get
|
|
37
|
-
'Use
|
|
49
|
+
description: 'Get a document fully: metadata, latest version fullText, and all sections. '
|
|
50
|
+
+ 'Use when aligning a PRD/architecture doc with the current implementation.',
|
|
38
51
|
inputSchema: {
|
|
39
52
|
type: 'object',
|
|
40
53
|
properties: {
|
|
@@ -46,7 +59,8 @@ exports.documentToolDefinitions = [
|
|
|
46
59
|
},
|
|
47
60
|
{
|
|
48
61
|
name: 'get_document_sections',
|
|
49
|
-
description: 'Get the structured sections of a document\'s current version
|
|
62
|
+
description: 'Get the structured sections of a document\'s current version (sectionId, sectionKey, sectionName, content). '
|
|
63
|
+
+ 'Prefer this for section-wise review before update_document_section.',
|
|
50
64
|
inputSchema: {
|
|
51
65
|
type: 'object',
|
|
52
66
|
properties: {
|
|
@@ -58,89 +72,133 @@ exports.documentToolDefinitions = [
|
|
|
58
72
|
},
|
|
59
73
|
{
|
|
60
74
|
name: 'search_documents',
|
|
61
|
-
description: 'Full-text search across
|
|
62
|
-
'
|
|
75
|
+
description: 'Full-text search across document sections (and document names) in a product. '
|
|
76
|
+
+ 'Returns matching sections with documentId, document name, and type.',
|
|
63
77
|
inputSchema: {
|
|
64
78
|
type: 'object',
|
|
65
79
|
properties: {
|
|
66
80
|
productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
|
|
67
|
-
query: { type: 'string', description: 'Search term to find in
|
|
81
|
+
query: { type: 'string', description: 'Search term to find in section content, section titles, or document names.' },
|
|
68
82
|
},
|
|
69
83
|
required: ['query'],
|
|
70
84
|
},
|
|
71
85
|
},
|
|
86
|
+
{
|
|
87
|
+
name: 'update_document',
|
|
88
|
+
description: 'Update a document\'s metadata and/or full text. '
|
|
89
|
+
+ 'Metadata (name, summary, tags, status, visibility) patches in place. '
|
|
90
|
+
+ 'fullText/content patches the current DRAFT version, or creates a new DRAFT version if the current one is published. '
|
|
91
|
+
+ 'Requires write:documents scope. Prefer update_document_section for section-level edits.',
|
|
92
|
+
inputSchema: {
|
|
93
|
+
type: 'object',
|
|
94
|
+
properties: {
|
|
95
|
+
productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
|
|
96
|
+
documentId: { type: 'string', description: 'Document UUID.' },
|
|
97
|
+
name: { type: 'string', description: 'New document name.' },
|
|
98
|
+
summary: { type: 'string', description: 'New document summary.' },
|
|
99
|
+
tags: { type: 'array', items: { type: 'string' }, description: 'Replacement tag list.' },
|
|
100
|
+
status: { type: 'string', description: 'Document status (e.g. DRAFT, PUBLISHED).' },
|
|
101
|
+
visibility: { type: 'string', description: 'Visibility (e.g. INTERNAL, PUBLIC).' },
|
|
102
|
+
fullText: { type: 'string', description: 'Full document markdown/text content.' },
|
|
103
|
+
content: { type: 'string', description: 'Alias for fullText.' },
|
|
104
|
+
changeSummary: { type: 'string', description: 'Optional note when creating/patching a version.' },
|
|
105
|
+
},
|
|
106
|
+
required: ['documentId'],
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
name: 'update_document_section',
|
|
111
|
+
description: 'Update one section of a document\'s current version (section-wise edit). '
|
|
112
|
+
+ 'Identify the section by sectionId (from get_document_sections) and/or sectionKey. '
|
|
113
|
+
+ 'If sectionKey is new, the section is created. Use to realign a section with the current implementation. '
|
|
114
|
+
+ 'Requires write:documents scope.',
|
|
115
|
+
inputSchema: {
|
|
116
|
+
type: 'object',
|
|
117
|
+
properties: {
|
|
118
|
+
productId: { type: 'string', description: 'Product UUID. Defaults to AUTOPROJECT_PRODUCT_ID env.' },
|
|
119
|
+
documentId: { type: 'string', description: 'Document UUID.' },
|
|
120
|
+
sectionId: { type: 'string', description: 'Existing section UUID (preferred when updating).' },
|
|
121
|
+
sectionKey: { type: 'string', description: 'Stable section key (used to update or create).' },
|
|
122
|
+
sectionName: { type: 'string', description: 'Section title/heading.' },
|
|
123
|
+
content: { type: 'string', description: 'Section body content (markdown).' },
|
|
124
|
+
summary: { type: 'string', description: 'Optional short section summary.' },
|
|
125
|
+
sectionType: { type: 'string', description: 'Section type (e.g. PARAGRAPH, HEADING).' },
|
|
126
|
+
displayOrder: { type: 'number', description: 'Order among sections.' },
|
|
127
|
+
headingLevel: { type: 'number', description: 'Heading level (1–6) if applicable.' },
|
|
128
|
+
contentFormat: { type: 'string', description: 'Content format (default MARKDOWN).' },
|
|
129
|
+
},
|
|
130
|
+
required: ['documentId'],
|
|
131
|
+
},
|
|
132
|
+
},
|
|
72
133
|
];
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
if (!
|
|
76
|
-
|
|
134
|
+
function resolveProductId(args) {
|
|
135
|
+
const id = args.productId || DEFAULT_PRODUCT_ID;
|
|
136
|
+
if (!id) {
|
|
137
|
+
throw new Error('productId is required (pass it or set AUTOPROJECT_PRODUCT_ID).');
|
|
77
138
|
}
|
|
139
|
+
return id;
|
|
140
|
+
}
|
|
141
|
+
async function handleDocumentTool(toolName, args) {
|
|
142
|
+
const productId = resolveProductId(args);
|
|
78
143
|
const documentId = args.documentId;
|
|
79
144
|
switch (toolName) {
|
|
80
145
|
case 'list_documents': {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
const data = await (0, client_js_1.apiGet)(`/products/${productId}/documents`, params);
|
|
87
|
-
const items = data?.items ?? [];
|
|
88
|
-
if (items.length === 0) {
|
|
89
|
-
return { content: [{ type: 'text', text: 'No documents found.' }] };
|
|
90
|
-
}
|
|
91
|
-
const lines = items.map((d) => `[${d.id}] [${d.documentTypeCode ?? 'N/A'}] ${d.name} | Status: ${d.status} | Visibility: ${d.visibility} | Updated: ${d.updatedAt}\n` +
|
|
92
|
-
(d.summary ? ` Summary: ${String(d.summary).slice(0, 120)}` : ''));
|
|
93
|
-
return { content: [{ type: 'text', text: `Documents (${items.length}):\n${lines.join('\n')}` }] };
|
|
146
|
+
return await (0, client_js_1.apiGet)(`/products/${productId}/documents`, {
|
|
147
|
+
documentType: args.documentType,
|
|
148
|
+
search: args.search ?? args.name,
|
|
149
|
+
limit: args.limit,
|
|
150
|
+
});
|
|
94
151
|
}
|
|
95
152
|
case 'get_document': {
|
|
96
153
|
if (!documentId)
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
const d = data;
|
|
100
|
-
const header = `Document: ${d.name}\n` +
|
|
101
|
-
`ID: ${d.id} | Type: ${d.documentTypeCode ?? 'N/A'} (${d.documentTypeName ?? 'N/A'})\n` +
|
|
102
|
-
`Status: ${d.status} | Visibility: ${d.visibility} | Version: ${d.versionNumber ?? 'N/A'}\n` +
|
|
103
|
-
`Summary: ${d.summary ?? 'N/A'}\n` +
|
|
104
|
-
`Tags: ${Array.isArray(d.tags) && d.tags.length ? d.tags.join(', ') : 'none'}\n`;
|
|
105
|
-
const sections = d.sections ?? [];
|
|
106
|
-
let body;
|
|
107
|
-
if (d.fullText) {
|
|
108
|
-
body = `\n--- Full Text ---\n${d.fullText}`;
|
|
109
|
-
}
|
|
110
|
-
else if (sections.length > 0) {
|
|
111
|
-
const sectionLines = sections.map((s) => `${'#'.repeat(s.headingLevel || 2)} ${s.sectionName}\n${s.content ?? '(no content)'}`);
|
|
112
|
-
body = `\n--- Sections (${sections.length}) ---\n${sectionLines.join('\n\n')}`;
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
body = '\n(No content available for this document)';
|
|
116
|
-
}
|
|
117
|
-
return { content: [{ type: 'text', text: header + body }] };
|
|
154
|
+
throw new Error('documentId is required.');
|
|
155
|
+
return await (0, client_js_1.apiGet)(`/products/${productId}/documents/${documentId}`);
|
|
118
156
|
}
|
|
119
157
|
case 'get_document_sections': {
|
|
120
158
|
if (!documentId)
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
const sections = data?.items ?? [];
|
|
124
|
-
if (sections.length === 0) {
|
|
125
|
-
return { content: [{ type: 'text', text: 'No sections found for this document.' }] };
|
|
126
|
-
}
|
|
127
|
-
const lines = sections.map((s) => `[${s.displayOrder}] ${'#'.repeat(s.headingLevel || 2)} ${s.sectionName} (${s.sectionType}) | key: ${s.sectionKey}`);
|
|
128
|
-
return { content: [{ type: 'text', text: `Sections (${sections.length}):\n${lines.join('\n')}` }] };
|
|
159
|
+
throw new Error('documentId is required.');
|
|
160
|
+
return await (0, client_js_1.apiGet)(`/products/${productId}/documents/${documentId}/sections`);
|
|
129
161
|
}
|
|
130
162
|
case 'search_documents': {
|
|
131
163
|
const q = args.query || '';
|
|
132
164
|
if (!q.trim())
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
165
|
+
throw new Error('query is required.');
|
|
166
|
+
return await (0, client_js_1.apiGet)(`/products/${productId}/knowledge`, { q });
|
|
167
|
+
}
|
|
168
|
+
case 'update_document': {
|
|
169
|
+
if (!documentId)
|
|
170
|
+
throw new Error('documentId is required.');
|
|
171
|
+
return await (0, client_js_1.apiPatch)(`/products/${productId}/documents/${documentId}`, {
|
|
172
|
+
name: args.name,
|
|
173
|
+
summary: args.summary,
|
|
174
|
+
tags: args.tags,
|
|
175
|
+
status: args.status,
|
|
176
|
+
visibility: args.visibility,
|
|
177
|
+
fullText: args.fullText,
|
|
178
|
+
content: args.content,
|
|
179
|
+
changeSummary: args.changeSummary,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
case 'update_document_section': {
|
|
183
|
+
if (!documentId)
|
|
184
|
+
throw new Error('documentId is required.');
|
|
185
|
+
if (!args.sectionId && !args.sectionKey) {
|
|
186
|
+
throw new Error('Provide sectionId and/or sectionKey.');
|
|
138
187
|
}
|
|
139
|
-
|
|
140
|
-
|
|
188
|
+
return await (0, client_js_1.apiPatch)(`/products/${productId}/documents/${documentId}/sections`, {
|
|
189
|
+
sectionId: args.sectionId,
|
|
190
|
+
sectionKey: args.sectionKey,
|
|
191
|
+
sectionName: args.sectionName,
|
|
192
|
+
content: args.content,
|
|
193
|
+
summary: args.summary,
|
|
194
|
+
sectionType: args.sectionType,
|
|
195
|
+
displayOrder: args.displayOrder,
|
|
196
|
+
headingLevel: args.headingLevel,
|
|
197
|
+
contentFormat: args.contentFormat,
|
|
198
|
+
});
|
|
141
199
|
}
|
|
142
200
|
default:
|
|
143
|
-
|
|
201
|
+
throw new Error(`Unknown document tool: ${toolName}`);
|
|
144
202
|
}
|
|
145
203
|
}
|
|
146
204
|
//# sourceMappingURL=documentTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentTools.js","sourceRoot":"","sources":["../../src/tools/documentTools.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"documentTools.js","sourceRoot":"","sources":["../../src/tools/documentTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP Tools: Hierarchy read and status update
|
|
3
|
-
* Tools:
|
|
3
|
+
* Tools: get_hierarchy, list_modules, list_feature_groups, list_features,
|
|
4
|
+
* get_feature_detail, get_task_detail, update_status
|
|
5
|
+
*
|
|
6
|
+
* Product hierarchy (UI terminology):
|
|
7
|
+
* Module → Feature Group → Feature
|
|
4
8
|
*/
|
|
5
9
|
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
10
|
export declare const hierarchyToolDefinitions: Tool[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hierarchyTools.d.ts","sourceRoot":"","sources":["../../src/tools/hierarchyTools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hierarchyTools.d.ts","sourceRoot":"","sources":["../../src/tools/hierarchyTools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,eAAO,MAAM,wBAAwB,EAAE,IAAI,EAwG1C,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBA0CpF"}
|