{"server":{"name":"com.mermaidchart/mermaid-mcp","$schema":"https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json","remotes":[{"url":"https://mcp.mermaidchart.com/mcp","type":"streamable-http"},{"url":"https://mcp.mermaidchart.com/sse","type":"sse"}],"version":"1.0.0","repository":{"url":"https://github.com/Mermaid-Chart/mermaid-mcp","source":"github"},"description":"MCP server for Mermaid diagram validation and rendering"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2025-09-18T12:13:25.426328Z","publishedAt":"2025-09-18T12:13:25.426328Z","statusChangedAt":"2025-09-18T12:13:25.426328Z"},"dev.protogrid/connectability":{"class":"R2","autonomous":false,"human_steps":["oauth_consent_once"],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://mcp.mermaidchart.com/mcp","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"oauth2","location":{"header":"Authorization","scheme":"Bearer"},"secret_name":null,"oauth":{"scopes":["email"],"grant_types":["authorization_code","refresh_token"],"dcr_supported":true,"cimd_supported":false,"authorization_servers":["https://ummcsnegloedxcrwlucz.supabase.co/auth/v1"],"resource_metadata_url":"https://mcp.mermaidchart.com/.well-known/oauth-protected-resource/mcp","code_challenge_methods":["S256","plain"],"authorization_server_metadata_url":"https://ummcsnegloedxcrwlucz.supabase.co/.well-known/oauth-authorization-server/auth/v1"}},"protocol":{"supported_versions":[],"stateless":null},"health":{"reachable":true,"uptime_30d":1,"latency_ms_p50":623,"consecutive_failures":0,"last_probe_at":"2026-10-10T01:57:02.621Z","last_ok_at":"2026-10-10T01:57:02.621Z"}},{"idx":1,"url":"https://mcp.mermaidchart.com/sse","transport":"sse","templated":false,"headers":[],"auth":{"type":"oauth2","location":{"header":"Authorization","scheme":"Bearer"},"secret_name":null,"oauth":{"scopes":["email"],"grant_types":["authorization_code","refresh_token"],"dcr_supported":true,"cimd_supported":false,"authorization_servers":["https://ummcsnegloedxcrwlucz.supabase.co/auth/v1"],"resource_metadata_url":"https://mcp.mermaidchart.com/.well-known/oauth-protected-resource/mcp","code_challenge_methods":["S256","plain"],"authorization_server_metadata_url":"https://ummcsnegloedxcrwlucz.supabase.co/.well-known/oauth-authorization-server/auth/v1"}},"protocol":{"supported_versions":[],"stateless":null},"health":{"reachable":true,"uptime_30d":1,"latency_ms_p50":623,"consecutive_failures":0,"last_probe_at":"2026-10-10T02:42:50.659Z","last_ok_at":"2026-10-10T02:42:50.659Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"create_issue","title":null,"description":"Create an issue in a GitHub repository. REQUIRES: `Github-Token` (HTTP) or GITHUB_TOKEN with issues write if creating issues in private repos.","annotations":{"readOnlyHint":false},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"create_pr","title":null,"description":"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).","annotations":{"readOnlyHint":false},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"generate_jira_kanban_board","title":null,"description":"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.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"generate_ticket_dependency_tree","title":null,"description":"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.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"generate_ticket_diagram","title":null,"description":"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.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"generate_ticket_timeline","title":null,"description":"Generate a Mermaid diagram showing the history of a single Jira ticket using its changelog. Two views are available:\n- **state**: stateDiagram-v2 showing all status transitions with dates and authors, nodes coloured by status category.\n- **timeline** (default): Mermaid timeline grouped by month, showing status changes, assignee changes, priority changes, sprint moves, and resolutions.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"get_diagram_summary","title":null,"description":"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.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"get_diagram_title","title":null,"description":"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.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"get_issue_comments","title":null,"description":"List comments on an issue by issue number. REQUIRES: `Github-Token` (HTTP) or GITHUB_TOKEN / GH_TOKEN.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"get_mermaid_syntax_document","title":null,"description":"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.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"get_notion_mermaid_diagram_by_block_id","title":null,"description":"Retrieve a single Mermaid diagram block by its block ID. Returns the diagram code and optional caption.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"get_notion_page_mermaid_diagrams","title":null,"description":"Extract all Mermaid code blocks from a Notion page. Returns block ID, diagram code, and optional caption for each block.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"get_pull_comments","title":null,"description":"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.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"insert_notion_mermaid_diagram","title":null,"description":"Append a Mermaid diagram as a code block to a Notion page. The block is added at the end of the page content.","annotations":{"readOnlyHint":false},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"list_branches","title":null,"description":"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.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"list_issues","title":null,"description":"List issues for a repository (excludes pull requests). REQUIRES: `Github-Token` (HTTP) or GITHUB_TOKEN / GH_TOKEN.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"list_mermaid_files","title":null,"description":"List .mmd Mermaid files in a GitHub repository (code search with tree fallback). REQUIRES: `Github-Token` header (HTTP) or GITHUB_TOKEN / GH_TOKEN.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"list_pulls","title":null,"description":"List pull requests for a GitHub repository. REQUIRES: `Github-Token` (HTTP) or GITHUB_TOKEN / GH_TOKEN.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"list_repos","title":null,"description":"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.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"list_tools","title":null,"description":"Lists all available MCP servers and their tools in the workspace.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"push_file","title":null,"description":"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.","annotations":{"readOnlyHint":false},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"read_mermaid_file","title":null,"description":"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.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"search_mermaid_icons","title":null,"description":"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.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"update_notion_mermaid_diagram","title":null,"description":"Update the Mermaid source code (and optional caption) of an existing mermaid code block by its block ID.","annotations":{"readOnlyHint":false},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"},{"name":"validate_and_render_mermaid_diagram","title":null,"description":"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.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-05T10:05:51.253Z"}],"dev.protogrid/trust":{"score":78,"components":{"hygiene":100,"liveness":100,"freshness":25,"provenance":75},"drivers":["+repository","+dns-namespace","+reachable","+uptime-100%","-stale-387d"],"flags":[],"blocked":false,"computed_at":"2026-10-10T03:24:21.493Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":89,"label":"good","components":{"auth":83,"hygiene":86,"protocol":null,"stability":100,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"no remote answered a protocol handshake (not probed yet, unreachable, or local-only)","status":"na","category":"protocol"},{"id":"protocol.stateless","detail":"no remote answered a protocol handshake (not probed yet, unreachable, or local-only)","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"no remote answered a protocol handshake (not probed yet, unreachable, or local-only)","status":"na","category":"protocol"},{"id":"protocol.list_ttl","detail":"no remote answered a protocol handshake (not probed yet, unreachable, or local-only)","status":"na","category":"protocol"},{"id":"auth.prm","detail":"Protected Resource Metadata (RFC 9728) published","status":"pass","category":"auth"},{"id":"auth.as_metadata","detail":"authorization server metadata reachable","status":"pass","category":"auth"},{"id":"auth.cimd","detail":"only Dynamic Client Registration, deprecated in 2026-07-28 in favour of CIMD","status":"warn","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"25 of 25 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: validate_and_render_mermaid_diagram (destructiveHint, idempotentHint, openWorldHint); create_pr (destructiveHint, idempotentHint, openWorldHint); list_pulls (destructiveHint, idempotentHint, openWorldHint); …","status":"fail","category":"hygiene"},{"id":"tools.token_cost","detail":"about 5,580 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"no tool changes in 30 days","status":"pass","category":"stability"},{"id":"stability.rug_pull","detail":"no tool changed its meaning under the same name","status":"pass","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["-tools.directory_hints","~auth.cimd"],"flags":[],"tool_count":25,"token_estimate":5580,"tools_hash":"37c6e245f217359e5dbaf9c430f6e80b","tools_changed_at":null,"computed_at":"2026-10-10T03:29:07.309Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"com.mermaidchart/mermaid-mcp","aliases":[],"alias_count":0,"repository_key":"github:mermaid-chart/mermaid-mcp","owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/com.mermaidchart%2Fmermaid-mcp/tools","arguments":{"name":"com.mermaidchart/mermaid-mcp"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/com.mermaidchart%2Fmermaid-mcp/connection?target=mcpServers","arguments":{"name":"com.mermaidchart/mermaid-mcp","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}