mermaid-mcp

MCP server for Mermaid diagram validation and rendering

Should I use this

Quality & Safety

A
Description quality
99%
Schema completeness
95%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • LOWTool 'validate_and_render_mermaid_diagram' name length outside 3-30 rangein validate_and_render_mermaid_diagram
  • LOWTool 'generate_ticket_dependency_tree' name length outside 3-30 rangein generate_ticket_dependency_tree
  • LOWTool 'get_notion_page_mermaid_diagrams' name length outside 3-30 rangein get_notion_page_mermaid_diagrams
  • LOWTool 'get_notion_mermaid_diagram_by_block_id' name length outside 3-30 rangein get_notion_mermaid_diagram_by_block_id

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~5,655Tokens (tool definitions)
~1.9 KBTypical response size
Significant attention impact (4.42% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mermaid-mcp": {
      "url": "https://mcp.mermaidchart.com/mcp"
    }
  }
}

Remote endpoints

https://mcp.mermaidchart.com/mcpstreamable-http
https://mcp.mermaidchart.com/ssesse

What it can do

Tool inventory

Tools (25)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢validate_and_render_mermaid_diagram(prompt, mermaidCode, diagramType, clientName, useUrlShortener)

SIMPLE RENDER TOOL - Renders Mermaid diagrams directly (Mermaid automatically validates during rendering). If successful, returns diagram image. If Mermaid validation fails, returns error details for fixing. One tool, one call, simple workflow.

Input Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "description": "A text description of the diagram to generate."
    },
    "mermaidCode": {
      "type": "string",
      "description": "Mermaid code to render. Mermaid validates automatically during rendering - if invalid, tool returns error details for fixing."
    },
    "diagramType": {
      "type": "string",
      "description": "The type of Mermaid diagram (e.g., 'flowchart', 'sequenceDiagram', 'gantt')."
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server (e.g., 'claude', 'cursor', 'vscode', 'chatgpt', 'copilot') for analytics tracking."
    },
    "useUrlShortener": {
      "default": true,
      "description": "Whether to use URL shortening for the Mermaid link. Defaults to true, set to false to disable shortening.",
      "type": "boolean"
    }
  },
  "required": [
    "prompt",
    "mermaidCode",
    "diagramType",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_diagram_title(diagramContent, diagramType, currentTitle, clientName)

Generate a descriptive title for a Mermaid diagram based on its content. This tool analyzes the diagram structure and content to suggest an appropriate title.

Input Schema

{
  "type": "object",
  "properties": {
    "diagramContent": {
      "type": "string",
      "description": "The Mermaid diagram content/code for which to generate a title."
    },
    "diagramType": {
      "description": "Optional: The type of Mermaid diagram (e.g., 'flowchart', 'sequenceDiagram', 'gantt') for better context in title generation.",
      "type": "string"
    },
    "currentTitle": {
      "description": "Optional: The current title of the diagram, if any, for context.",
      "type": "string"
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server (e.g., 'claude', 'cursor', 'vscode', 'chatgpt', 'copilot') for analytics tracking."
    }
  },
  "required": [
    "diagramContent",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_diagram_summary(diagramContent, contextHint, clientName)

Generate a concise summary for a Mermaid diagram based on its content. This tool provides prompts for the LLM to generate a brief summary (2-4 sentences) highlighting the primary flow, key decisions, and outcomes.

Input Schema

{
  "type": "object",
  "properties": {
    "diagramContent": {
      "type": "string",
      "description": "The Mermaid diagram content/code for which to generate a summary."
    },
    "contextHint": {
      "description": "Optional: Context hint to help generate a more accurate summary.",
      "type": "string"
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server (e.g., 'claude', 'cursor', 'vscode', 'chatgpt', 'copilot') for analytics tracking."
    }
  },
  "required": [
    "diagramContent",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_mermaid_icons(query, provider, limit, clientName)

Search for available Mermaid icons by provider or name. Returns icons in ready-to-use format with provider prefixes (e.g., 'aws:arch-amazon-ec2'). PERFORMANCE TIP: For faster searches, start with limit=10 and specific queries. If no suitable icons found, increase limit and retry. Supports AWS, Azure, GCP, and FontAwesome icon sets.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query for icons (e.g., 'aws', 'azure', 'gcp', 'fa', 'lambda', 's3', 'database'). Use specific terms for better results."
    },
    "provider": {
      "description": "Optional: Filter by specific provider ('aws', 'azure', 'gcp', 'fa'). If not provided, searches all providers.",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "description": "Optional: Maximum number of results to return per provider. Defaults to 10 for performance. Increase if needed.",
      "type": "number"
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server (e.g., 'claude', 'cursor', 'vscode', 'chatgpt', 'copilot') for analytics tracking."
    }
  },
  "required": [
    "query",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_mermaid_syntax_document(diagramType, clientName)

Get comprehensive syntax documentation and examples for a specific Mermaid diagram type. Returns the official Mermaid.js documentation with syntax rules, examples, and usage instructions for the requested diagram type.

Input Schema

{
  "type": "object",
  "properties": {
    "diagramType": {
      "type": "string",
      "description": "The type of Mermaid diagram to get syntax documentation for (e.g., 'flowchart', 'sequenceDiagram', 'architecture-beta', 'gantt', 'gitgraph', 'classDiagram', 'stateDiagram', etc.)."
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server (e.g., 'claude', 'cursor', 'vscode', 'chatgpt', 'copilot') for analytics tracking."
    }
  },
  "required": [
    "diagramType",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_tools(clientName)

Lists all available MCP servers and their tools in the workspace.

Input Schema

{
  "type": "object",
  "properties": {
    "clientName": {
      "description": "OPTIONAL: The name of the client/agent using the MCP server (e.g., 'claude', 'cursor', 'vscode', 'chatgpt', 'copilot') for analytics tracking.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_repos(org, per_page, page, type, clientName)

List GitHub repositories for the authenticated user, or for an organization when `org` is set. REQUIRES: `Github-Token` header (HTTP) or `GITHUB_TOKEN` / `GH_TOKEN` in the server environment.

Input Schema

{
  "type": "object",
  "properties": {
    "org": {
      "description": "Optional: organization login. If set, lists that org's repositories; otherwise lists repos for the authenticated user.",
      "type": "string"
    },
    "per_page": {
      "default": 30,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "page": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "type": {
      "default": "all",
      "description": "User repo filter; ignored when `org` is set.",
      "type": "string",
      "enum": [
        "all",
        "owner",
        "member",
        "public",
        "private"
      ]
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_mermaid_files(owner, repo, ref, clientName)

List .mmd Mermaid files in a GitHub repository (code search with tree fallback). REQUIRES: `Github-Token` header (HTTP) or GITHUB_TOKEN / GH_TOKEN.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "description": "Repository owner (user or organization)."
    },
    "repo": {
      "type": "string",
      "description": "Repository name."
    },
    "ref": {
      "description": "Optional branch, tag, or commit for tree fallback when code search is unavailable.",
      "type": "string"
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "owner",
    "repo",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢read_mermaid_file(owner, repo, path, ref, clientName)

Read a single .mmd file from a GitHub repository. Only paths ending in .mmd are allowed. REQUIRES: `Github-Token` header (HTTP) or GITHUB_TOKEN / GH_TOKEN.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string"
    },
    "repo": {
      "type": "string"
    },
    "path": {
      "type": "string",
      "description": "Path to the .mmd file in the repository."
    },
    "ref": {
      "description": "Optional: branch, tag, or commit SHA; defaults to the default branch.",
      "type": "string"
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "owner",
    "repo",
    "path",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_pr(owner, repo, headBranch, baseBranch, title, ...)

Create a new branch (git ref), one commit from the base tree with your file changes, then open a pull request in the same repository. REQUIRES: `Github-Token` (HTTP) or GITHUB_TOKEN with `contents: write` (and no existing branch with the same `headBranch` name).

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string"
    },
    "repo": {
      "type": "string"
    },
    "headBranch": {
      "type": "string",
      "description": "Name of the new branch (must not already exist on the remote)."
    },
    "baseBranch": {
      "description": "Branch to base the PR on (e.g. main). Defaults to the repo default branch.",
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "body": {
      "type": "string",
      "description": "PR description (markdown)."
    },
    "commitMessage": {
      "type": "string",
      "description": "Single commit message for the file changes."
    },
    "files": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "Repo-relative file path."
          },
          "content": {
            "type": "string",
            "description": "Full UTF-8 file content."
          }
        },
        "required": [
          "path",
          "content"
        ]
      },
      "description": "Files to add or update."
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "owner",
    "repo",
    "headBranch",
    "title",
    "body",
    "commitMessage",
    "files",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡push_file(owner, repo, path, content, branch, ...)

Create or update a single file on a given branch in a GitHub repository. REQUIRES: `Github-Token` (HTTP) or GITHUB_TOKEN with contents write access.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string"
    },
    "repo": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "content": {
      "type": "string",
      "description": "Full file content."
    },
    "branch": {
      "type": "string",
      "description": "Branch to commit to."
    },
    "message": {
      "type": "string",
      "description": "Commit message."
    },
    "sha": {
      "description": "Existing blob SHA to update; omit to create or to let the service detect.",
      "type": "string"
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "owner",
    "repo",
    "path",
    "content",
    "branch",
    "message",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_pulls(owner, repo, state, per_page, page, ...)

List pull requests for a GitHub repository. REQUIRES: `Github-Token` (HTTP) or GITHUB_TOKEN / GH_TOKEN.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string"
    },
    "repo": {
      "type": "string"
    },
    "state": {
      "default": "open",
      "type": "string",
      "enum": [
        "open",
        "closed",
        "all"
      ]
    },
    "per_page": {
      "default": 30,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "page": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "owner",
    "repo",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_branches(owner, repo, branch_name, clientName)

List or resolve branch names. **List mode (default):** one `GET /repos/.../branches?per_page=100&page=1` — at most 100 names, A–Z sorted in the response; `has_more` if a full page was returned. **Resolve mode:** set `branch_name` for a single `GET` branch (404 if missing). At most one GitHub API call. REQUIRES: `Github-Token` (HTTP) or GITHUB_TOKEN / GH_TOKEN.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string"
    },
    "repo": {
      "type": "string"
    },
    "branch_name": {
      "description": "Exact branch name. When non-empty, returns that branch only. Omit to fetch the first 100 branches only.",
      "type": "string"
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "owner",
    "repo",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_issues(owner, repo, state, labels, sort, ...)

List issues for a repository (excludes pull requests). REQUIRES: `Github-Token` (HTTP) or GITHUB_TOKEN / GH_TOKEN.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string"
    },
    "repo": {
      "type": "string"
    },
    "state": {
      "default": "open",
      "type": "string",
      "enum": [
        "open",
        "closed",
        "all"
      ]
    },
    "labels": {
      "description": "Comma-separated label names (GitHub API format).",
      "type": "string"
    },
    "sort": {
      "default": "created",
      "type": "string",
      "enum": [
        "created",
        "updated",
        "comments"
      ]
    },
    "direction": {
      "default": "desc",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "since": {
      "description": "ISO 8601: only issues updated at or after this time.",
      "type": "string"
    },
    "per_page": {
      "default": 30,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "page": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "owner",
    "repo",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_issue(owner, repo, title, body, labels, ...)

Create an issue in a GitHub repository. REQUIRES: `Github-Token` (HTTP) or GITHUB_TOKEN with issues write if creating issues in private repos.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string"
    },
    "repo": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "body": {
      "description": "Issue body in markdown.",
      "type": "string"
    },
    "labels": {
      "description": "Label names (must already exist in the repository).",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "owner",
    "repo",
    "title",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_issue_comments(owner, repo, issue_number, per_page, page, ...)

List comments on an issue by issue number. REQUIRES: `Github-Token` (HTTP) or GITHUB_TOKEN / GH_TOKEN.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string"
    },
    "repo": {
      "type": "string"
    },
    "issue_number": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991,
      "description": "Issue number (not a PR number unless the PR is also addressed as an issue on GitHub)."
    },
    "per_page": {
      "default": 30,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "page": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "owner",
    "repo",
    "issue_number",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_pull_comments(owner, repo, pull_number, per_page, page, ...)

Get all pull request comments: both issue/PR thread comments and inline review comments, with a `type` of `issue_thread` or `review` per item. REQUIRES: `Github-Token` (HTTP) or GITHUB_TOKEN / GH_TOKEN.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string"
    },
    "repo": {
      "type": "string"
    },
    "pull_number": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991,
      "description": "Pull request number."
    },
    "per_page": {
      "default": 30,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "page": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "owner",
    "repo",
    "pull_number",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢generate_ticket_dependency_tree(projectKey, status, assignee, reporter, sprint, ...)

Generate a Mermaid flowchart that visualises Jira issue dependency links for a project. Each node shows the ticket key, summary, and status, and is a clickable link to the ticket. Dashed nodes represent issues linked from outside the current filter set.

Input Schema

{
  "type": "object",
  "properties": {
    "projectKey": {
      "type": "string",
      "minLength": 1,
      "description": "REQUIRED: Jira project key, e.g. 'PROJ' or 'MYTEAM'. Used as the base JQL project filter."
    },
    "status": {
      "description": "Filter by issue status, e.g. 'In Progress', 'To Do', 'Done'.",
      "type": "string"
    },
    "assignee": {
      "description": "Filter by assignee — Jira account ID, display name, or 'currentUser()'.",
      "type": "string"
    },
    "reporter": {
      "description": "Filter by reporter — Jira account ID or display name.",
      "type": "string"
    },
    "sprint": {
      "description": "Filter by sprint name or numeric ID, e.g. 'Sprint 12' or '42'.",
      "type": "string"
    },
    "createdAfter": {
      "description": "Include only issues created on or after this date, ISO format: '2024-01-15'.",
      "type": "string"
    },
    "createdBefore": {
      "description": "Include only issues created on or before this date, ISO format: '2024-03-31'.",
      "type": "string"
    },
    "maxResults": {
      "default": 50,
      "description": "Target number of issues to render in the tree (1–100, default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "useUrlShortener": {
      "default": true,
      "description": "Shorten the preview/edit URL via Short.io. Disable to get the full unshortened URL (default true).",
      "type": "boolean"
    },
    "colorMode": {
      "default": "light",
      "description": "Color scheme for the diagram: 'light' (default pastel fills), 'dark' (deep fills for dark backgrounds), or 'none' (no fill/stroke overrides, inherits the Mermaid theme).",
      "type": "string",
      "enum": [
        "light",
        "dark",
        "none"
      ]
    },
    "clientName": {
      "type": "string",
      "minLength": 1,
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "projectKey",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢generate_jira_kanban_board(projectKey, sprint, assignee, issueType, maxResults, ...)

Generate a Mermaid kanban board from Jira issues. Issues are grouped into columns by their current status and ordered by workflow stage (To Do → In Progress → Done). Each card shows the issue summary and is a clickable link to the ticket, with optional assignee and priority badges.

Input Schema

{
  "type": "object",
  "properties": {
    "projectKey": {
      "type": "string",
      "minLength": 1,
      "description": "REQUIRED: Jira project key, e.g. 'PROJ' or 'MYTEAM'."
    },
    "sprint": {
      "description": "Filter by sprint name or numeric ID, e.g. 'Sprint 12' or '42'.",
      "type": "string"
    },
    "assignee": {
      "description": "Filter by assignee — Jira account ID, display name, or 'currentUser()'.",
      "type": "string"
    },
    "issueType": {
      "description": "Filter by issue type, e.g. 'Story', 'Bug', 'Task'.",
      "type": "string"
    },
    "maxResults": {
      "default": 50,
      "description": "Maximum number of issues to fetch (1–100, default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "clientName": {
      "type": "string",
      "minLength": 1,
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "projectKey",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢generate_ticket_diagram(ticketKey, colorMode, clientName)

Generate a Mermaid flowchart centred on a single Jira ticket. Fetches the ticket's subtasks, parent, issue links, and recent comments in one call. The focal ticket is highlighted in indigo; subtasks are grouped in a subgraph; issue links use colour-coded arrows (red thick = blocks, cyan dashed = relates to); comments appear in a rose subgraph.

Input Schema

{
  "type": "object",
  "properties": {
    "ticketKey": {
      "type": "string",
      "minLength": 1,
      "description": "REQUIRED: Jira issue key, e.g. 'MC-123' or 'PROJ-42'."
    },
    "colorMode": {
      "default": "light",
      "description": "Color scheme for the diagram: 'light' (default pastel fills), 'dark' (deep fills for dark backgrounds), or 'none' (no fill/stroke overrides, inherits the Mermaid theme).",
      "type": "string",
      "enum": [
        "light",
        "dark",
        "none"
      ]
    },
    "clientName": {
      "type": "string",
      "minLength": 1,
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "ticketKey",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢generate_ticket_timeline(ticketKey, view, clientName)

Generate a Mermaid diagram showing the history of a single Jira ticket using its changelog. Two views are available: - **state**: stateDiagram-v2 showing all status transitions with dates and authors, nodes coloured by status category. - **timeline** (default): Mermaid timeline grouped by month, showing status changes, assignee changes, priority changes, sprint moves, and resolutions.

Input Schema

{
  "type": "object",
  "properties": {
    "ticketKey": {
      "type": "string",
      "minLength": 1,
      "description": "REQUIRED: Jira issue key, e.g. 'MC-123' or 'PROJ-42'."
    },
    "view": {
      "default": "timeline",
      "description": "Diagram view to generate. 'state' shows status transitions; 'timeline' shows all field changes over time.",
      "type": "string",
      "enum": [
        "state",
        "timeline"
      ]
    },
    "clientName": {
      "type": "string",
      "minLength": 1,
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "ticketKey",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_notion_page_mermaid_diagrams(pageUrl, clientName)

Extract all Mermaid code blocks from a Notion page. Returns block ID, diagram code, and optional caption for each block.

Input Schema

{
  "type": "object",
  "properties": {
    "pageUrl": {
      "type": "string",
      "format": "uri",
      "description": "URL of the Notion page (e.g. https://www.notion.so/My-Page-abc123...)."
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "pageUrl",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_notion_mermaid_diagram_by_block_id(blockId, clientName)

Retrieve a single Mermaid diagram block by its block ID. Returns the diagram code and optional caption.

Input Schema

{
  "type": "object",
  "properties": {
    "blockId": {
      "type": "string",
      "description": "The Notion block ID of the mermaid code block (e.g. from get_notion_page_mermaid_diagrams)."
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "blockId",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡update_notion_mermaid_diagram(blockId, code, caption, clientName)

Update the Mermaid source code (and optional caption) of an existing mermaid code block by its block ID.

Input Schema

{
  "type": "object",
  "properties": {
    "blockId": {
      "type": "string",
      "description": "The Notion block ID of the mermaid code block to update."
    },
    "code": {
      "type": "string",
      "description": "New Mermaid diagram source code."
    },
    "caption": {
      "description": "Optional new caption. Omit to clear the existing caption.",
      "type": "string"
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "blockId",
    "code",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡insert_notion_mermaid_diagram(pageUrl, code, caption, clientName)

Append a Mermaid diagram as a code block to a Notion page. The block is added at the end of the page content.

Input Schema

{
  "type": "object",
  "properties": {
    "pageUrl": {
      "type": "string",
      "format": "uri",
      "description": "URL of the Notion page to insert the diagram into."
    },
    "code": {
      "type": "string",
      "description": "Mermaid diagram source code."
    },
    "caption": {
      "description": "Optional caption displayed below the code block.",
      "type": "string"
    },
    "clientName": {
      "type": "string",
      "description": "REQUIRED: The name of the client/agent using the MCP server for analytics tracking."
    }
  },
  "required": [
    "pageUrl",
    "code",
    "clientName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded25 tools
verifiedversion not recorded25 tools
verifiedversion not recorded25 tools
verifiedversion not recorded25 tools
verifiedversion not recorded25 tools
verifiedversion not recorded25 tools