End Session
end_sessionEnd a project session by recording achievements, blockers, and plans for the next session to maintain context continuity in the MCP Project Context Server.
Instructions
End current session with summary
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| achievements | No | Session achievements | |
| blockers | No | Blockers encountered | |
| nextSession | No | Plans for next session |
Implementation Reference
- src/server.ts:429-453 (handler)Handler function for the 'end_session' tool. Currently a stub that returns a success message, with a note to implement updateSession in ProjectStore.
async ({ sessionId, achievements, blockers, nextSession }) => { try { // Note: You'll need to implement updateSession in ProjectStore // For now, just return success return { content: [ { type: "text", text: `Session ${sessionId} ended successfully`, }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error ending session: ${ error instanceof Error ? error.message : "Unknown error" }`, }, ], }; } } - src/server.ts:410-427 (schema)Input schema definition for the 'end_session' tool, including sessionId and optional arrays for achievements, blockers, and nextSession plans.
{ title: "End Session", description: "End current session with summary", inputSchema: { sessionId: z.string().describe("Session ID"), achievements: z .array(z.string()) .default([]) .describe("Session achievements"), blockers: z .array(z.string()) .default([]) .describe("Blockers encountered"), nextSession: z .array(z.string()) .default([]) .describe("Plans for next session"), }, - src/server.ts:408-454 (registration)Registration of the 'end_session' tool using this.server.registerTool, including schema and handler inline.
this.server.registerTool( "end_session", { title: "End Session", description: "End current session with summary", inputSchema: { sessionId: z.string().describe("Session ID"), achievements: z .array(z.string()) .default([]) .describe("Session achievements"), blockers: z .array(z.string()) .default([]) .describe("Blockers encountered"), nextSession: z .array(z.string()) .default([]) .describe("Plans for next session"), }, }, async ({ sessionId, achievements, blockers, nextSession }) => { try { // Note: You'll need to implement updateSession in ProjectStore // For now, just return success return { content: [ { type: "text", text: `Session ${sessionId} ended successfully`, }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error ending session: ${ error instanceof Error ? error.message : "Unknown error" }`, }, ], }; } } );