Skip to main content
Glama
davidorex

Project Handoffs MCP Server

by davidorex

start_working_session

Begin working on a specific next step within a project to facilitate task handoffs and maintain workflow continuity.

Instructions

Start working on a next step

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject identifier
nextStepIdYesID of the next step to work on

Implementation Reference

  • Core handler function in ProjectManager class that validates the next step, updates its status to 'in-progress', creates a new WorkingSession, saves the project data, and returns the session.
    async startWorkingSession(projectId: string, nextStepId: string): Promise<WorkingSession> {
      const data = await this.loadProjectData(projectId);
      
      const step = data.nextSteps.find(s => s.id === nextStepId);
      if (!step) {
        throw new ProjectError(`Next step not found: ${nextStepId}`, projectId);
      }
      if (step.status !== 'open') {
        throw new ProjectError(`Next step is not open: ${nextStepId}`, projectId);
      }
      
      step.status = 'in-progress';
      step.lastModified = new Date().toISOString();
    
      const session: WorkingSession = {
        id: `session_${Date.now()}`,
        nextStepId,
        startTime: new Date().toISOString(),
        progressNotes: [],
        blockers: [],
        decisions: []
      };
    
      data.workingSessions.push(session);
      await this.saveProjectData(projectId, data);
      return session;
    }
  • src/index.ts:346-357 (registration)
    Tool registration in the ListTools response, defining name, description, and input schema.
    {
      name: "start_working_session",
      description: "Start working on a next step",
      inputSchema: {
        type: "object",
        properties: {
          projectId: { type: "string", description: "Project identifier" },
          nextStepId: { type: "string", description: "ID of the next step to work on" }
        },
        required: ["projectId", "nextStepId"]
      }
    },
  • Dispatch handler in CallToolRequestSchema that invokes the ProjectManager.startWorkingSession method and formats the response.
    case "start_working_session":
      const session = await projectManager.startWorkingSession(
        args.projectId as string,
        args.nextStepId as string
      );
      return {
        content: [{
          type: "text",
          text: JSON.stringify(session, null, 2)
        }]
      };
  • Input schema definition specifying required projectId and nextStepId parameters.
    inputSchema: {
      type: "object",
      properties: {
        projectId: { type: "string", description: "Project identifier" },
        nextStepId: { type: "string", description: "ID of the next step to work on" }
      },
      required: ["projectId", "nextStepId"]
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/davidorex/project-handoffs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server