mcp-taskflow 0.1.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/CHANGELOG.md +13 -0
- package/LICENSE.md +21 -0
- package/README.md +275 -0
- package/dist/config/pathResolver.d.ts +33 -0
- package/dist/config/pathResolver.d.ts.map +1 -0
- package/dist/config/pathResolver.js +130 -0
- package/dist/config/pathResolver.js.map +1 -0
- package/dist/data/fileOperations.d.ts +43 -0
- package/dist/data/fileOperations.d.ts.map +1 -0
- package/dist/data/fileOperations.js +248 -0
- package/dist/data/fileOperations.js.map +1 -0
- package/dist/data/memoryStore.d.ts +86 -0
- package/dist/data/memoryStore.d.ts.map +1 -0
- package/dist/data/memoryStore.js +216 -0
- package/dist/data/memoryStore.js.map +1 -0
- package/dist/data/rulesStore.d.ts +63 -0
- package/dist/data/rulesStore.d.ts.map +1 -0
- package/dist/data/rulesStore.js +196 -0
- package/dist/data/rulesStore.js.map +1 -0
- package/dist/data/schemas.d.ts +840 -0
- package/dist/data/schemas.d.ts.map +1 -0
- package/dist/data/schemas.js +265 -0
- package/dist/data/schemas.js.map +1 -0
- package/dist/data/taskSearchService.d.ts +110 -0
- package/dist/data/taskSearchService.d.ts.map +1 -0
- package/dist/data/taskSearchService.js +165 -0
- package/dist/data/taskSearchService.js.map +1 -0
- package/dist/data/taskStore.d.ts +192 -0
- package/dist/data/taskStore.d.ts.map +1 -0
- package/dist/data/taskStore.js +347 -0
- package/dist/data/taskStore.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +86 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/index.d.ts +12 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +17 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/projectPromptBuilder.d.ts +13 -0
- package/dist/prompts/projectPromptBuilder.d.ts.map +1 -0
- package/dist/prompts/projectPromptBuilder.js +29 -0
- package/dist/prompts/projectPromptBuilder.js.map +1 -0
- package/dist/prompts/researchPromptBuilder.d.ts +10 -0
- package/dist/prompts/researchPromptBuilder.d.ts.map +1 -0
- package/dist/prompts/researchPromptBuilder.js +20 -0
- package/dist/prompts/researchPromptBuilder.js.map +1 -0
- package/dist/prompts/taskPromptBuilders.d.ts +87 -0
- package/dist/prompts/taskPromptBuilders.d.ts.map +1 -0
- package/dist/prompts/taskPromptBuilders.js +529 -0
- package/dist/prompts/taskPromptBuilders.js.map +1 -0
- package/dist/prompts/templateEngine.d.ts +102 -0
- package/dist/prompts/templateEngine.d.ts.map +1 -0
- package/dist/prompts/templateEngine.js +145 -0
- package/dist/prompts/templateEngine.js.map +1 -0
- package/dist/prompts/templateLoader.d.ts +61 -0
- package/dist/prompts/templateLoader.d.ts.map +1 -0
- package/dist/prompts/templateLoader.js +129 -0
- package/dist/prompts/templateLoader.js.map +1 -0
- package/dist/prompts/templates/v1/templates_en/analyzeTask/index.md +65 -0
- package/dist/prompts/templates/v1/templates_en/analyzeTask/iteration.md +12 -0
- package/dist/prompts/templates/v1/templates_en/clearAllTasks/backupInfo.md +1 -0
- package/dist/prompts/templates/v1/templates_en/clearAllTasks/cancel.md +7 -0
- package/dist/prompts/templates/v1/templates_en/clearAllTasks/empty.md +5 -0
- package/dist/prompts/templates/v1/templates_en/clearAllTasks/index.md +5 -0
- package/dist/prompts/templates/v1/templates_en/clearAllTasks/result.md +7 -0
- package/dist/prompts/templates/v1/templates_en/clearAllTasks/success.md +5 -0
- package/dist/prompts/templates/v1/templates_en/deleteTask/completed.md +5 -0
- package/dist/prompts/templates/v1/templates_en/deleteTask/index.md +5 -0
- package/dist/prompts/templates/v1/templates_en/deleteTask/notFound.md +5 -0
- package/dist/prompts/templates/v1/templates_en/deleteTask/result.md +5 -0
- package/dist/prompts/templates/v1/templates_en/deleteTask/success.md +5 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/analysisResult.md +3 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/complexity.md +15 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/dependencies.md +3 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/dependencyTasks.md +3 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/implementationGuide.md +3 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/index.md +39 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/notes.md +1 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/relatedFilesSummary.md +5 -0
- package/dist/prompts/templates/v1/templates_en/executeTask/verificationCriteria.md +3 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/complatedSummary.md +5 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/dependencies.md +1 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/error.md +3 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/implementationGuide.md +3 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/index.md +25 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/notFound.md +3 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/notes.md +1 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/relatedFiles.md +3 -0
- package/dist/prompts/templates/v1/templates_en/getTaskDetail/verificationCriteria.md +3 -0
- package/dist/prompts/templates/v1/templates_en/initProjectRules/index.md +81 -0
- package/dist/prompts/templates/v1/templates_en/listTasks/index.md +7 -0
- package/dist/prompts/templates/v1/templates_en/listTasks/notFound.md +3 -0
- package/dist/prompts/templates/v1/templates_en/listTasks/taskDetails.md +13 -0
- package/dist/prompts/templates/v1/templates_en/planTask/hasThought.md +4 -0
- package/dist/prompts/templates/v1/templates_en/planTask/index.md +96 -0
- package/dist/prompts/templates/v1/templates_en/planTask/noThought.md +4 -0
- package/dist/prompts/templates/v1/templates_en/planTask/tasks.md +17 -0
- package/dist/prompts/templates/v1/templates_en/processThought/complatedThought.md +6 -0
- package/dist/prompts/templates/v1/templates_en/processThought/index.md +13 -0
- package/dist/prompts/templates/v1/templates_en/processThought/moreThought.md +1 -0
- package/dist/prompts/templates/v1/templates_en/queryTask/index.md +24 -0
- package/dist/prompts/templates/v1/templates_en/queryTask/notFound.md +15 -0
- package/dist/prompts/templates/v1/templates_en/queryTask/taskDetails.md +5 -0
- package/dist/prompts/templates/v1/templates_en/reflectTask/index.md +57 -0
- package/dist/prompts/templates/v1/templates_en/researchMode/index.md +95 -0
- package/dist/prompts/templates/v1/templates_en/researchMode/previousState.md +9 -0
- package/dist/prompts/templates/v1/templates_en/splitTasks/index.md +34 -0
- package/dist/prompts/templates/v1/templates_en/splitTasks/taskDetails.md +12 -0
- package/dist/prompts/templates/v1/templates_en/tests/basic.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/analyzeTask.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/clearAllTasks.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/deleteTask.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/executeTask.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/getTaskDetail.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/initProjectRules.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/listTasks.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/planTask.md +3 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/processThought.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/queryTask.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/reflectTask.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/researchMode.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/splitTasks.md +83 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/updateTask.md +1 -0
- package/dist/prompts/templates/v1/templates_en/toolsDescription/verifyTask.md +37 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/emptyUpdate.md +5 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/fileDetails.md +1 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/index.md +7 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/notFound.md +5 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/success.md +9 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/successDetails.md +3 -0
- package/dist/prompts/templates/v1/templates_en/updateTaskContent/validation.md +5 -0
- package/dist/prompts/templates/v1/templates_en/verifyTask/index.md +19 -0
- package/dist/prompts/templates/v1/templates_en/verifyTask/noPass.md +12 -0
- package/dist/prompts/thoughtPromptBuilder.d.ts +11 -0
- package/dist/prompts/thoughtPromptBuilder.d.ts.map +1 -0
- package/dist/prompts/thoughtPromptBuilder.js +30 -0
- package/dist/prompts/thoughtPromptBuilder.js.map +1 -0
- package/dist/server/container.d.ts +111 -0
- package/dist/server/container.d.ts.map +1 -0
- package/dist/server/container.js +135 -0
- package/dist/server/container.js.map +1 -0
- package/dist/server/logger.d.ts +98 -0
- package/dist/server/logger.d.ts.map +1 -0
- package/dist/server/logger.js +295 -0
- package/dist/server/logger.js.map +1 -0
- package/dist/server/mcpServer.d.ts +162 -0
- package/dist/server/mcpServer.d.ts.map +1 -0
- package/dist/server/mcpServer.js +236 -0
- package/dist/server/mcpServer.js.map +1 -0
- package/dist/tools/project/index.d.ts +7 -0
- package/dist/tools/project/index.d.ts.map +1 -0
- package/dist/tools/project/index.js +7 -0
- package/dist/tools/project/index.js.map +1 -0
- package/dist/tools/project/projectTools.d.ts +17 -0
- package/dist/tools/project/projectTools.d.ts.map +1 -0
- package/dist/tools/project/projectTools.js +73 -0
- package/dist/tools/project/projectTools.js.map +1 -0
- package/dist/tools/research/index.d.ts +7 -0
- package/dist/tools/research/index.d.ts.map +1 -0
- package/dist/tools/research/index.js +7 -0
- package/dist/tools/research/index.js.map +1 -0
- package/dist/tools/research/researchTools.d.ts +16 -0
- package/dist/tools/research/researchTools.d.ts.map +1 -0
- package/dist/tools/research/researchTools.js +41 -0
- package/dist/tools/research/researchTools.js.map +1 -0
- package/dist/tools/task/index.d.ts +8 -0
- package/dist/tools/task/index.d.ts.map +1 -0
- package/dist/tools/task/index.js +8 -0
- package/dist/tools/task/index.js.map +1 -0
- package/dist/tools/task/taskTools.d.ts +32 -0
- package/dist/tools/task/taskTools.d.ts.map +1 -0
- package/dist/tools/task/taskTools.js +542 -0
- package/dist/tools/task/taskTools.js.map +1 -0
- package/dist/tools/thought/index.d.ts +7 -0
- package/dist/tools/thought/index.d.ts.map +1 -0
- package/dist/tools/thought/index.js +7 -0
- package/dist/tools/thought/index.js.map +1 -0
- package/dist/tools/thought/thoughtTools.d.ts +16 -0
- package/dist/tools/thought/thoughtTools.d.ts.map +1 -0
- package/dist/tools/thought/thoughtTools.js +47 -0
- package/dist/tools/thought/thoughtTools.js.map +1 -0
- package/docs/API.md +32 -0
- package/docs/ARCHITECTURE.md +44 -0
- package/docs/COMPATIBILITY_REPORT.md +26 -0
- package/docs/PERFORMANCE.md +66 -0
- package/package.json +77 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server Setup & Tool Registration
|
|
3
|
+
*
|
|
4
|
+
* Implements the Model Context Protocol (MCP) server using @modelcontextprotocol/sdk.
|
|
5
|
+
* The server uses STDIO transport for universal compatibility and follows the
|
|
6
|
+
* JSON-RPC 2.0 protocol for request/response communication.
|
|
7
|
+
*
|
|
8
|
+
* Key Concepts:
|
|
9
|
+
* - STDIO Transport: Uses stdin for input, stdout for output, stderr for logs
|
|
10
|
+
* - JSON-RPC: Protocol for request correlation (id, method, params, result/error)
|
|
11
|
+
* - Tool Discovery: Clients call tools/list to see available capabilities
|
|
12
|
+
* - Stateless Design: Each request is independent (no session state)
|
|
13
|
+
*
|
|
14
|
+
* @see https://modelcontextprotocol.io/docs/concepts/architecture
|
|
15
|
+
* @see https://www.jsonrpc.org/specification
|
|
16
|
+
*/
|
|
17
|
+
// Using Server from index.js instead of McpServer from mcp.js
|
|
18
|
+
// The new McpServer API is different and would require significant refactoring
|
|
19
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
20
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
21
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
22
|
+
import { registerTaskPlanningTools, registerTaskCRUDTools, registerTaskWorkflowTools } from '../tools/task/taskTools.js';
|
|
23
|
+
import { registerProjectTools } from '../tools/project/projectTools.js';
|
|
24
|
+
import { registerThoughtTools } from '../tools/thought/thoughtTools.js';
|
|
25
|
+
import { registerResearchTools } from '../tools/research/researchTools.js';
|
|
26
|
+
/**
|
|
27
|
+
* MCP Server instance
|
|
28
|
+
*
|
|
29
|
+
* Manages the lifecycle of the MCP server including:
|
|
30
|
+
* - Tool registration and discovery
|
|
31
|
+
* - Request handling and routing
|
|
32
|
+
* - Error handling and logging
|
|
33
|
+
* - Graceful shutdown
|
|
34
|
+
*
|
|
35
|
+
* Dependencies are injected via the constructor (Dependency Injection pattern).
|
|
36
|
+
*/
|
|
37
|
+
export class McpServer {
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
39
|
+
server;
|
|
40
|
+
logger;
|
|
41
|
+
tools = new Map();
|
|
42
|
+
container;
|
|
43
|
+
/**
|
|
44
|
+
* Create a new MCP server instance
|
|
45
|
+
*
|
|
46
|
+
* @param container - Service container with all dependencies
|
|
47
|
+
*/
|
|
48
|
+
constructor(container) {
|
|
49
|
+
this.container = container;
|
|
50
|
+
this.logger = container.logger;
|
|
51
|
+
// Create MCP server with metadata
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
53
|
+
this.server = new Server({
|
|
54
|
+
name: 'mcp-taskflow',
|
|
55
|
+
version: '1.0.0',
|
|
56
|
+
}, {
|
|
57
|
+
capabilities: {
|
|
58
|
+
tools: {}, // Enables tool support
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
this.setupHandlers();
|
|
62
|
+
this.logger.info('MCP server initialized');
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Setup request handlers
|
|
66
|
+
*
|
|
67
|
+
* Registers handlers for MCP protocol methods:
|
|
68
|
+
* - tools/list: Returns available tools
|
|
69
|
+
* - tools/call: Executes a specific tool
|
|
70
|
+
*/
|
|
71
|
+
setupHandlers() {
|
|
72
|
+
// Handle tools/list - return all registered tools
|
|
73
|
+
this.server.setRequestHandler(ListToolsRequestSchema, (_request) => {
|
|
74
|
+
this.logger.debug({ method: 'tools/list' }, 'Listing tools');
|
|
75
|
+
const tools = Array.from(this.tools.values()).map((handler) => ({
|
|
76
|
+
name: handler.name,
|
|
77
|
+
description: handler.description,
|
|
78
|
+
inputSchema: handler.inputSchema,
|
|
79
|
+
}));
|
|
80
|
+
return { tools };
|
|
81
|
+
});
|
|
82
|
+
// Handle tools/call - execute a tool
|
|
83
|
+
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
84
|
+
const { name, arguments: args } = request.params;
|
|
85
|
+
this.logger.info({ tool: name }, 'Executing tool');
|
|
86
|
+
const handler = this.tools.get(name);
|
|
87
|
+
if (!handler) {
|
|
88
|
+
const error = `Unknown tool: ${name}`;
|
|
89
|
+
this.logger.error({ tool: name }, error);
|
|
90
|
+
throw new Error(error);
|
|
91
|
+
}
|
|
92
|
+
try {
|
|
93
|
+
const result = await handler.execute(args ?? {});
|
|
94
|
+
this.logger.debug({ tool: name }, 'Tool executed successfully');
|
|
95
|
+
return {
|
|
96
|
+
content: [
|
|
97
|
+
{
|
|
98
|
+
type: 'text',
|
|
99
|
+
text: typeof result === 'string' ? result : JSON.stringify(result, null, 2),
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
this.logger.error({ tool: name, err: error }, 'Tool execution failed');
|
|
106
|
+
// Re-throw as MCP error (JSON-RPC format)
|
|
107
|
+
throw error;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Register a tool with the server
|
|
113
|
+
*
|
|
114
|
+
* @param handler - Tool handler with name, description, schema, and execute function
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* server.registerTool({
|
|
119
|
+
* name: 'list_tasks',
|
|
120
|
+
* description: 'List all tasks',
|
|
121
|
+
* inputSchema: {
|
|
122
|
+
* type: 'object',
|
|
123
|
+
* properties: {
|
|
124
|
+
* status: { type: 'string', enum: ['pending', 'in_progress', 'completed'] }
|
|
125
|
+
* }
|
|
126
|
+
* },
|
|
127
|
+
* execute: async (args) => {
|
|
128
|
+
* const tasks = await taskStore.listAsync();
|
|
129
|
+
* return { tasks };
|
|
130
|
+
* }
|
|
131
|
+
* });
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
registerTool(handler) {
|
|
135
|
+
if (handler.inputSchema && !handler.inputSchema.type) {
|
|
136
|
+
const hasRef = Object.prototype.hasOwnProperty.call(handler.inputSchema, '$ref');
|
|
137
|
+
if (!hasRef) {
|
|
138
|
+
handler.inputSchema = {
|
|
139
|
+
...handler.inputSchema,
|
|
140
|
+
type: 'object',
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (this.tools.has(handler.name)) {
|
|
145
|
+
throw new Error(`Tool already registered: ${handler.name}`);
|
|
146
|
+
}
|
|
147
|
+
this.tools.set(handler.name, handler);
|
|
148
|
+
this.logger.debug({ tool: handler.name }, 'Tool registered');
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Start the MCP server with STDIO transport
|
|
152
|
+
*
|
|
153
|
+
* The server will:
|
|
154
|
+
* 1. Connect to stdin/stdout for communication
|
|
155
|
+
* 2. Listen for initialize request from client
|
|
156
|
+
* 3. Process tool/list and tools/call requests
|
|
157
|
+
* 4. Handle graceful shutdown on SIGINT/SIGTERM
|
|
158
|
+
*
|
|
159
|
+
* @returns Promise that resolves when server starts
|
|
160
|
+
*/
|
|
161
|
+
async start() {
|
|
162
|
+
const transport = new StdioServerTransport();
|
|
163
|
+
// Setup graceful shutdown
|
|
164
|
+
const shutdown = () => {
|
|
165
|
+
this.logger.info('Shutting down MCP server');
|
|
166
|
+
void this.server.close().then(() => {
|
|
167
|
+
process.exit(0);
|
|
168
|
+
});
|
|
169
|
+
};
|
|
170
|
+
process.on('SIGINT', shutdown);
|
|
171
|
+
process.on('SIGTERM', shutdown);
|
|
172
|
+
this.logger.info({ toolCount: this.tools.size }, 'Starting MCP server');
|
|
173
|
+
// Connect and start processing requests
|
|
174
|
+
await this.server.connect(transport);
|
|
175
|
+
this.logger.info('MCP server ready');
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get server instance (for testing)
|
|
179
|
+
*/
|
|
180
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
181
|
+
getServer() {
|
|
182
|
+
return this.server;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Get the service container
|
|
186
|
+
*
|
|
187
|
+
* Provides access to all application services for tool implementations
|
|
188
|
+
*
|
|
189
|
+
* @returns The service container
|
|
190
|
+
*/
|
|
191
|
+
getContainer() {
|
|
192
|
+
return this.container;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get registered tool count (for testing)
|
|
196
|
+
*/
|
|
197
|
+
getToolCount() {
|
|
198
|
+
return this.tools.size;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Create and configure MCP server
|
|
203
|
+
*
|
|
204
|
+
* Factory function that creates a server instance and registers all tools.
|
|
205
|
+
* Separates server creation from tool registration for testing.
|
|
206
|
+
*
|
|
207
|
+
* @returns Configured MCP server instance
|
|
208
|
+
*/
|
|
209
|
+
/**
|
|
210
|
+
* Factory function to create a configured MCP server
|
|
211
|
+
*
|
|
212
|
+
* This is the main entry point for server creation. It accepts a
|
|
213
|
+
* ServiceContainer with all dependencies already configured.
|
|
214
|
+
*
|
|
215
|
+
* @param container - Service container with all dependencies
|
|
216
|
+
* @returns Configured MCP server ready to start
|
|
217
|
+
*
|
|
218
|
+
* @example
|
|
219
|
+
* ```typescript
|
|
220
|
+
* const container = createContainer();
|
|
221
|
+
* const server = createMcpServer(container);
|
|
222
|
+
* await server.start();
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
export function createMcpServer(container) {
|
|
226
|
+
const server = new McpServer(container);
|
|
227
|
+
// Register task planning tools
|
|
228
|
+
registerTaskPlanningTools(server);
|
|
229
|
+
registerTaskCRUDTools(server);
|
|
230
|
+
registerTaskWorkflowTools(server);
|
|
231
|
+
registerProjectTools(server);
|
|
232
|
+
registerThoughtTools(server);
|
|
233
|
+
registerResearchTools(server);
|
|
234
|
+
return server;
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=mcpServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpServer.js","sourceRoot":"","sources":["../../src/server/mcpServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/project/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/project/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Tools Implementation
|
|
3
|
+
*
|
|
4
|
+
* Implements MCP tools for project rules management and server metadata.
|
|
5
|
+
*
|
|
6
|
+
* Tools:
|
|
7
|
+
* - init_project_rules: Initialize or update project coding rules
|
|
8
|
+
* - get_server_info: Return server metadata and health status
|
|
9
|
+
*/
|
|
10
|
+
import type { McpServer } from '../../server/mcpServer.js';
|
|
11
|
+
/**
|
|
12
|
+
* Register all project tools with the MCP server
|
|
13
|
+
*
|
|
14
|
+
* @param server - MCP server instance
|
|
15
|
+
*/
|
|
16
|
+
export declare function registerProjectTools(server: McpServer): void;
|
|
17
|
+
//# sourceMappingURL=projectTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectTools.d.ts","sourceRoot":"","sources":["../../../src/tools/project/projectTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAW3D;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAK5D"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Tools Implementation
|
|
3
|
+
*
|
|
4
|
+
* Implements MCP tools for project rules management and server metadata.
|
|
5
|
+
*
|
|
6
|
+
* Tools:
|
|
7
|
+
* - init_project_rules: Initialize or update project coding rules
|
|
8
|
+
* - get_server_info: Return server metadata and health status
|
|
9
|
+
*/
|
|
10
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
11
|
+
import { InitProjectRulesParamsSchema, GetServerInfoParamsSchema, } from '../../data/schemas.js';
|
|
12
|
+
import { InitProjectRulesPromptBuilder, GetServerInfoPromptBuilder, } from '../../prompts/projectPromptBuilder.js';
|
|
13
|
+
/**
|
|
14
|
+
* Register all project tools with the MCP server
|
|
15
|
+
*
|
|
16
|
+
* @param server - MCP server instance
|
|
17
|
+
*/
|
|
18
|
+
export function registerProjectTools(server) {
|
|
19
|
+
const container = server.getContainer();
|
|
20
|
+
registerInitProjectRules(server, container);
|
|
21
|
+
registerGetServerInfo(server, container);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Register init_project_rules tool
|
|
25
|
+
*/
|
|
26
|
+
function registerInitProjectRules(server, container) {
|
|
27
|
+
server.registerTool({
|
|
28
|
+
name: 'init_project_rules',
|
|
29
|
+
description: 'Initialize or update project coding rules and guidelines.',
|
|
30
|
+
inputSchema: zodToJsonSchema(InitProjectRulesParamsSchema, { $refStrategy: 'none' }),
|
|
31
|
+
execute: async (_args) => {
|
|
32
|
+
const { rulesStore, logger } = container;
|
|
33
|
+
logger.info('Initializing project rules');
|
|
34
|
+
const rulesExist = await rulesStore.rulesExistAsync();
|
|
35
|
+
if (!rulesExist) {
|
|
36
|
+
await rulesStore.initializeRulesAsync();
|
|
37
|
+
logger.info('Created default project rules');
|
|
38
|
+
}
|
|
39
|
+
const rules = await rulesStore.loadRulesAsync();
|
|
40
|
+
const builder = new InitProjectRulesPromptBuilder();
|
|
41
|
+
const result = await builder.build(rules, rulesExist);
|
|
42
|
+
logger.info({ rulesExist }, 'Project rules initialized');
|
|
43
|
+
return result;
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Register get_server_info tool
|
|
49
|
+
*/
|
|
50
|
+
function registerGetServerInfo(server, container) {
|
|
51
|
+
server.registerTool({
|
|
52
|
+
name: 'get_server_info',
|
|
53
|
+
description: 'Get server metadata, version, and health status.',
|
|
54
|
+
inputSchema: zodToJsonSchema(GetServerInfoParamsSchema, { $refStrategy: 'none' }),
|
|
55
|
+
execute: async (_args) => {
|
|
56
|
+
const { taskStore, logger } = container;
|
|
57
|
+
logger.info('Getting server info');
|
|
58
|
+
const allTasks = await taskStore.getAllAsync();
|
|
59
|
+
const taskCounts = {
|
|
60
|
+
pending: allTasks.filter(t => t.status === 'pending').length,
|
|
61
|
+
in_progress: allTasks.filter(t => t.status === 'in_progress').length,
|
|
62
|
+
completed: allTasks.filter(t => t.status === 'completed').length,
|
|
63
|
+
blocked: allTasks.filter(t => t.status === 'blocked').length,
|
|
64
|
+
total: allTasks.length,
|
|
65
|
+
};
|
|
66
|
+
const builder = new GetServerInfoPromptBuilder();
|
|
67
|
+
const result = builder.build('1.0.0', 'mcp-taskflow', 'MCP Task and Research Manager - Task planning, analysis, and research workflow tools');
|
|
68
|
+
logger.info(taskCounts, 'Server info retrieved');
|
|
69
|
+
return result;
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=projectTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectTools.js","sourceRoot":"","sources":["../../../src/tools/project/projectTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/research/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/research/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Research Tools Implementation
|
|
3
|
+
*
|
|
4
|
+
* Implements MCP tools for guided technical research workflows.
|
|
5
|
+
*
|
|
6
|
+
* Tools:
|
|
7
|
+
* - research_mode: Iterative research with state management
|
|
8
|
+
*/
|
|
9
|
+
import type { McpServer } from '../../server/mcpServer.js';
|
|
10
|
+
/**
|
|
11
|
+
* Register all research tools with the MCP server
|
|
12
|
+
*
|
|
13
|
+
* @param server - MCP server instance
|
|
14
|
+
*/
|
|
15
|
+
export declare function registerResearchTools(server: McpServer): void;
|
|
16
|
+
//# sourceMappingURL=researchTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"researchTools.d.ts","sourceRoot":"","sources":["../../../src/tools/research/researchTools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAU3D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAI7D"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Research Tools Implementation
|
|
3
|
+
*
|
|
4
|
+
* Implements MCP tools for guided technical research workflows.
|
|
5
|
+
*
|
|
6
|
+
* Tools:
|
|
7
|
+
* - research_mode: Iterative research with state management
|
|
8
|
+
*/
|
|
9
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
10
|
+
import { ResearchModeParamsSchema, } from '../../data/schemas.js';
|
|
11
|
+
import { ResearchModePromptBuilder, } from '../../prompts/researchPromptBuilder.js';
|
|
12
|
+
/**
|
|
13
|
+
* Register all research tools with the MCP server
|
|
14
|
+
*
|
|
15
|
+
* @param server - MCP server instance
|
|
16
|
+
*/
|
|
17
|
+
export function registerResearchTools(server) {
|
|
18
|
+
const container = server.getContainer();
|
|
19
|
+
registerResearchMode(server, container);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Register research_mode tool
|
|
23
|
+
*/
|
|
24
|
+
function registerResearchMode(server, container) {
|
|
25
|
+
server.registerTool({
|
|
26
|
+
name: 'research_mode',
|
|
27
|
+
description: 'Enter research mode to explore a programming topic in depth with iterative state tracking.',
|
|
28
|
+
inputSchema: zodToJsonSchema(ResearchModeParamsSchema, { $refStrategy: 'none' }),
|
|
29
|
+
execute: async (args) => {
|
|
30
|
+
const params = ResearchModeParamsSchema.parse(args);
|
|
31
|
+
const { logger } = container;
|
|
32
|
+
logger.info({ topic: params.topic }, 'Starting research mode');
|
|
33
|
+
const isInitialIteration = !params.previousState || params.previousState.trim() === '';
|
|
34
|
+
const builder = new ResearchModePromptBuilder();
|
|
35
|
+
const result = await builder.build(params.topic, params.previousState, params.currentState, params.nextSteps);
|
|
36
|
+
logger.info({ topic: params.topic, isInitial: isInitialIteration }, 'Research mode prompt generated');
|
|
37
|
+
return result;
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=researchTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"researchTools.js","sourceRoot":"","sources":["../../../src/tools/research/researchTools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EACL,wBAAwB,GAEzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,GAC1B,MAAM,wCAAwC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAExC,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAiB,EAAE,SAA2B;IAC1E,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,4FAA4F;QACzG,WAAW,EAAE,eAAe,CAAC,wBAAwB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAI9E;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAuB,CAAC;YAC1E,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAE7B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,wBAAwB,CAAC,CAAC;YAE/D,MAAM,kBAAkB,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YAEvF,MAAM,OAAO,GAAG,IAAI,yBAAyB,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAChC,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,SAAS,CACjB,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,gCAAgC,CAAC,CAAC;YACtG,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Management Tools - Planning & Analysis
|
|
3
|
+
*
|
|
4
|
+
* Exports MCP tools for task planning, analysis, reflection, and splitting.
|
|
5
|
+
* These tools enable AI assistants to structure complex work into manageable tasks.
|
|
6
|
+
*/
|
|
7
|
+
export { registerTaskPlanningTools, registerTaskCRUDTools, registerTaskWorkflowTools } from './taskTools.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/task/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Management Tools - Planning & Analysis
|
|
3
|
+
*
|
|
4
|
+
* Exports MCP tools for task planning, analysis, reflection, and splitting.
|
|
5
|
+
* These tools enable AI assistants to structure complex work into manageable tasks.
|
|
6
|
+
*/
|
|
7
|
+
export { registerTaskPlanningTools, registerTaskCRUDTools, registerTaskWorkflowTools } from './taskTools.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/task/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Planning Tools Implementation
|
|
3
|
+
*
|
|
4
|
+
* Implements MCP tools for task planning, analysis, reflection, and splitting.
|
|
5
|
+
* These tools guide AI assistants through structured workflow patterns.
|
|
6
|
+
*
|
|
7
|
+
* Tools:
|
|
8
|
+
* - plan_task: Convert natural language requests into structured tasks
|
|
9
|
+
* - analyze_task: Deep analysis with threat modeling and design decisions
|
|
10
|
+
* - reflect_task: Critical review and optimization recommendations
|
|
11
|
+
* - split_tasks: Bulk task creation with dependency management
|
|
12
|
+
*/
|
|
13
|
+
import type { McpServer } from '../../server/mcpServer.js';
|
|
14
|
+
/**
|
|
15
|
+
* Register all task planning tools with the MCP server
|
|
16
|
+
*
|
|
17
|
+
* @param server - MCP server instance
|
|
18
|
+
*/
|
|
19
|
+
export declare function registerTaskPlanningTools(server: McpServer): void;
|
|
20
|
+
/**
|
|
21
|
+
* Register all task CRUD tools with the MCP server
|
|
22
|
+
*
|
|
23
|
+
* @param server - MCP server instance
|
|
24
|
+
*/
|
|
25
|
+
export declare function registerTaskCRUDTools(server: McpServer): void;
|
|
26
|
+
/**
|
|
27
|
+
* Register all task workflow tools with the MCP server
|
|
28
|
+
*
|
|
29
|
+
* @param server - MCP server instance
|
|
30
|
+
*/
|
|
31
|
+
export declare function registerTaskWorkflowTools(server: McpServer): void;
|
|
32
|
+
//# sourceMappingURL=taskTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taskTools.d.ts","sourceRoot":"","sources":["../../../src/tools/task/taskTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA+C3D;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAOjE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAS7D;AA8PD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAKjE"}
|