Turns a problem and its list of causes into a fishbone diagram you 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 their fishbone or cause and effect list reviewed before drawing, for example "check my fishbone causes for duplicates" or "how many pages will this Ishikawa diagram need". Takes the same problem and categories as make_fishbone. Returns counts per category, empty categories, duplicate causes (ignoring case), each text over its limit, other input problems, and the PDF pages needed on Letter, A4 and Tabloid. Draws nothing and makes no files. Does not judge whether a cause is a real root cause.
The problem or effect at the head of the fish, up to 120 characters, e.g. "Late deliveries in March".
2 to 8 categories (the big bones), each {"name":"People","causes":[...]} with 0 to 10 causes and 0 to 5 sub-causes per cause. Each cause is text ("Training gaps") or {"text":"Training gaps","sub_causes":["No manual","Rushed onboarding"]}. Leave it out to get the 6M set (People, Methods, Machines, Materials, Measurements, Environment) with no causes yet.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http fishbone https://fishbone.zovo.one/mcp
Use this when the user wants their fishbone or cause and effect list reviewed before drawing, for example "check my fishbone causes for duplicates" or "how many pages will this Ishikawa diagram need". Takes the same problem and categories as make_fishbone. Returns counts per category, empty categories, duplicate causes (ignoring case), each text over its limit, other input problems, and the PDF pages needed on Letter, A4 and Tabloid. Draws nothing and makes no files. Does not judge whether a cause is a real root cause.
| Argument | Type | Description |
|---|---|---|
| problem* | string | The problem or effect at the head of the fish, up to 120 characters, e.g. "Late deliveries in March". |
| categories | array | 2 to 8 categories (the big bones), each {"name":"People","causes":[...]} with 0 to 10 causes and 0 to 5 sub-causes per cause. Each cause is text ("Training gaps") or {"text":"Training gaps","sub_causes":["No manual","Rushed onboarding"]}. Leave it out to get the 6M set (People, Methods, Machines, Materials, Measurements, Environment) with no causes yet. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"problem"
],
"properties": {
"problem": {
"type": "string",
"maxLength": 4000,
"description": "The problem or effect at the head of the fish, up to 120 characters, e.g. \"Late deliveries in March\"."
},
"categories": {
"type": "array",
"items": {},
"maxItems": 200,
"description": "2 to 8 categories (the big bones), each {\"name\":\"People\",\"causes\":[...]} with 0 to 10 causes and 0 to 5 sub-causes per cause. Each cause is text (\"Training gaps\") or {\"text\":\"Training gaps\",\"sub_causes\":[\"No manual\",\"Rushed onboarding\"]}. Leave it out to get the 6M set (People, Methods, Machines, Materials, Measurements, Environment) with no causes yet."
}
}
}Use this when the user wants a fishbone, Ishikawa or cause and effect diagram drawn for a problem, for example "make a fishbone for late deliveries" or "6M fishbone template for high scrap rate". Takes the problem (the effect), 2 to 8 categories with up to 10 causes each and up to 5 sub-causes per cause, and a landscape PDF page size. With no categories it uses the 6M set and says so. Returns counts per category, a layout check (overlapping labels, labels crossed by a bone), the PDF page count and smallest text size, an outline, an interactive diagram, and PDF, SVG, CSV and text downloads. Refuses text over the limits with the item named. Does not find, rank or verify root causes. Download links of large diagrams expire after about 1 hour.
| Argument | Type | Description |
|---|---|---|
| problem* | string | The problem or effect at the head of the fish, up to 120 characters, e.g. "Late deliveries in March". |
| page_size | string | PDF page in landscape: letter (default), a4 or tabloid (11 x 17 in, fits more on one page). |
| categories | array | 2 to 8 categories (the big bones), each {"name":"People","causes":[...]} with 0 to 10 causes and 0 to 5 sub-causes per cause. Each cause is text ("Training gaps") or {"text":"Training gaps","sub_causes":["No manual","Rushed onboarding"]}. Leave it out to get the 6M set (People, Methods, Machines, Materials, Measurements, Environment) with no causes yet. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"problem"
],
"properties": {
"problem": {
"type": "string",
"maxLength": 4000,
"description": "The problem or effect at the head of the fish, up to 120 characters, e.g. \"Late deliveries in March\"."
},
"page_size": {
"enum": [
"letter",
"a4",
"tabloid"
],
"type": "string",
"description": "PDF page in landscape: letter (default), a4 or tabloid (11 x 17 in, fits more on one page)."
},
"categories": {
"type": "array",
"items": {},
"maxItems": 200,
"description": "2 to 8 categories (the big bones), each {\"name\":\"People\",\"causes\":[...]} with 0 to 10 causes and 0 to 5 sub-causes per cause. Each cause is text (\"Training gaps\") or {\"text\":\"Training gaps\",\"sub_causes\":[\"No manual\",\"Rushed onboarding\"]}. Leave it out to get the 6M set (People, Methods, Machines, Materials, Measurements, Environment) with no causes yet."
}
}
}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.