update-status
Update section statuses (planned, in_progress, completed) in Web3 Research MCP for consistent progress tracking across projects.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| section | Yes | Section name to update (e.g., 'projectInfo', 'technicalFundamentals') | |
| status | Yes | New status for the section |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"section": {
"description": "Section name to update (e.g., 'projectInfo', 'technicalFundamentals')",
"type": "string"
},
"status": {
"description": "New status for the section",
"enum": [
"planned",
"in_progress",
"completed"
],
"type": "string"
}
},
"required": [
"section",
"status"
],
"type": "object"
}
Implementation Reference
- src/tools/researchTools.ts:266-319 (handler)Handler function that updates the status of a specific section in the research plan stored in ResearchStorage.async ({ section, status, }: { section: string; status: "planned" | "in_progress" | "completed"; }) => { try { const researchPlan = storage.getSection("researchPlan"); if (!researchPlan || !researchPlan[section]) { return { isError: true, content: [ { type: "text", text: `Section '${section}' not found in research plan`, }, ], }; } const updatedSection = { ...researchPlan[section], status, }; const updatedPlan = { ...researchPlan, [section]: updatedSection, }; storage.updateSection("researchPlan", updatedPlan); storage.addLogEntry(`Updated status of ${section} to ${status}`); return { content: [ { type: "text", text: `Updated status of '${section}' to '${status}'`, }, ], }; } catch (error) { return { isError: true, content: [ { type: "text", text: `Error updating status: ${error}`, }, ], }; } }
- src/tools/researchTools.ts:256-265 (schema)Zod input schema defining 'section' (string) and 'status' (enum: planned, in_progress, completed).{ section: z .string() .describe( "Section name to update (e.g., 'projectInfo', 'technicalFundamentals')" ), status: z .enum(["planned", "in_progress", "completed"]) .describe("New status for the section"), },
- src/tools/researchTools.ts:254-320 (registration)Registration of the 'update-status' tool on the McpServer instance within the registerResearchTools function.server.tool( "update-status", { section: z .string() .describe( "Section name to update (e.g., 'projectInfo', 'technicalFundamentals')" ), status: z .enum(["planned", "in_progress", "completed"]) .describe("New status for the section"), }, async ({ section, status, }: { section: string; status: "planned" | "in_progress" | "completed"; }) => { try { const researchPlan = storage.getSection("researchPlan"); if (!researchPlan || !researchPlan[section]) { return { isError: true, content: [ { type: "text", text: `Section '${section}' not found in research plan`, }, ], }; } const updatedSection = { ...researchPlan[section], status, }; const updatedPlan = { ...researchPlan, [section]: updatedSection, }; storage.updateSection("researchPlan", updatedPlan); storage.addLogEntry(`Updated status of ${section} to ${status}`); return { content: [ { type: "text", text: `Updated status of '${section}' to '${status}'`, }, ], }; } catch (error) { return { isError: true, content: [ { type: "text", text: `Error updating status: ${error}`, }, ], }; } } );