Turns an outline of project work into a work breakdown structure chart your team can print.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants a WBS outline or numbered task list checked without a chart, for example "check my WBS codes for gaps" or "do the costs in this breakdown add up". Takes the same outline and style as make_wbs. Returns the codes (assigned in outline order, or the given codes checked for gaps, duplicates, order and missing parents), the rolled-up hours and cost per item and for the project, parent values that differ from the sum of their children with both numbers, work packages without hours or cost, and the limits. Draws nothing and makes no files. Does not schedule tasks.
The work outline, one item per line, up to 40,000 characters and 400 items. Either indent 2 spaces (or 4, or 1 tab) per level, or start every line with a code such as "1.2.3 Name". Optional fields after the name, separated by "|": hours=40, cost=1,200.50 (at most 2 decimals, one currency symbol such as $ for the whole chart), owner=Ana. Example: "Website\n Design | hours=40 | cost=2,000\n Build\n Front end | hours=80 | owner=Ana".
How levels are written: auto (default; numbered when each line starts with a code such as 1 or 1.2, refused when only some lines do), indent (use it when item names start with a number, such as 3.5 inch drives), or numbered. Example: auto.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http wbs-chart https://wbs-chart.zovo.one/mcp
Use this when the user wants a WBS outline or numbered task list checked without a chart, for example "check my WBS codes for gaps" or "do the costs in this breakdown add up". Takes the same outline and style as make_wbs. Returns the codes (assigned in outline order, or the given codes checked for gaps, duplicates, order and missing parents), the rolled-up hours and cost per item and for the project, parent values that differ from the sum of their children with both numbers, work packages without hours or cost, and the limits. Draws nothing and makes no files. Does not schedule tasks.
| Argument | Type | Description |
|---|---|---|
| style | string | How levels are written: auto (default; numbered when each line starts with a code such as 1 or 1.2, refused when only some lines do), indent (use it when item names start with a number, such as 3.5 inch drives), or numbered. Example: auto. |
| outline* | string | The work outline, one item per line, up to 40,000 characters and 400 items. Either indent 2 spaces (or 4, or 1 tab) per level, or start every line with a code such as "1.2.3 Name". Optional fields after the name, separated by "|": hours=40, cost=1,200.50 (at most 2 decimals, one currency symbol such as $ for the whole chart), owner=Ana. Example: "Website\n Design | hours=40 | cost=2,000\n Build\n Front end | hours=80 | owner=Ana". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"outline"
],
"properties": {
"style": {
"enum": [
"auto",
"indent",
"numbered"
],
"type": "string",
"description": "How levels are written: auto (default; numbered when each line starts with a code such as 1 or 1.2, refused when only some lines do), indent (use it when item names start with a number, such as 3.5 inch drives), or numbered. Example: auto."
},
"outline": {
"type": "string",
"maxLength": 200000,
"description": "The work outline, one item per line, up to 40,000 characters and 400 items. Either indent 2 spaces (or 4, or 1 tab) per level, or start every line with a code such as \"1.2.3 Name\". Optional fields after the name, separated by \"|\": hours=40, cost=1,200.50 (at most 2 decimals, one currency symbol such as $ for the whole chart), owner=Ana. Example: \"Website\\n Design | hours=40 | cost=2,000\\n Build\\n Front end | hours=80 | owner=Ana\"."
}
}
}Use this when the user wants a work breakdown structure (WBS) chart or a project breakdown drawn from an outline, for example "make a WBS chart of this project" or "turn this task list into a WBS with codes and cost totals". Takes the outline (indent per level, or codes such as 1.2.3 on each line) with optional hours=, cost= and owner= fields, a layout (top-down or left-right), a page size and a title. Returns codes, rolled-up hours and cost per item and for the project, problems such as a parent value that differs from its children, a geometry check, the PDF page count, an interactive chart, and PDF, SVG and CSV downloads. Refuses an outline that mixes styles or skips a level, naming the line. Up to 400 items and 8 levels. Does not schedule tasks or add dates. Download links of large charts expire after about 1 hour.
| Argument | Type | Description |
|---|---|---|
| style | string | How levels are written: auto (default; numbered when each line starts with a code such as 1 or 1.2, refused when only some lines do), indent (use it when item names start with a number, such as 3.5 inch drives), or numbered. Example: auto. |
| title | string | Chart title, printed on the chart and used in file names, up to 80 characters, e.g. "Website relaunch". When the outline has several top-level items, the title also names the project box above them. |
| outline* | string | The work outline, one item per line, up to 40,000 characters and 400 items. Either indent 2 spaces (or 4, or 1 tab) per level, or start every line with a code such as "1.2.3 Name". Optional fields after the name, separated by "|": hours=40, cost=1,200.50 (at most 2 decimals, one currency symbol such as $ for the whole chart), owner=Ana. Example: "Website\n Design | hours=40 | cost=2,000\n Build\n Front end | hours=80 | owner=Ana". |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.
| page_size | string | PDF page: letter (default), a4 or tabloid (11 x 17 in). |
| orientation | string | Chart layout: top-down (deliverables side by side with their work listed below) or left-right (one column per level). Leave it out to get the layout that needs fewer PDF pages (top-down on a tie). Example: top-down. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"outline"
],
"properties": {
"style": {
"enum": [
"auto",
"indent",
"numbered"
],
"type": "string",
"description": "How levels are written: auto (default; numbered when each line starts with a code such as 1 or 1.2, refused when only some lines do), indent (use it when item names start with a number, such as 3.5 inch drives), or numbered. Example: auto."
},
"title": {
"type": "string",
"maxLength": 400,
"description": "Chart title, printed on the chart and used in file names, up to 80 characters, e.g. \"Website relaunch\". When the outline has several top-level items, the title also names the project box above them."
},
"outline": {
"type": "string",
"maxLength": 200000,
"description": "The work outline, one item per line, up to 40,000 characters and 400 items. Either indent 2 spaces (or 4, or 1 tab) per level, or start every line with a code such as \"1.2.3 Name\". Optional fields after the name, separated by \"|\": hours=40, cost=1,200.50 (at most 2 decimals, one currency symbol such as $ for the whole chart), owner=Ana. Example: \"Website\\n Design | hours=40 | cost=2,000\\n Build\\n Front end | hours=80 | owner=Ana\"."
},
"page_size": {
"enum": [
"letter",
"a4",
"tabloid"
],
"type": "string",
"description": "PDF page: letter (default), a4 or tabloid (11 x 17 in)."
},
"orientation": {
"enum": [
"top-down",
"left-right"
],
"type": "string",
"description": "Chart layout: top-down (deliverables side by side with their work listed below) or left-right (one column per level). Leave it out to get the layout that needs fewer PDF pages (top-down on a tie). Example: top-down."
}
}
}