-
Notifications
You must be signed in to change notification settings - Fork 87
feat: Add MCP manifest for hustcc-mcp-mermaid #235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Generated manifest JSON for repository: https://github.com/hustcc/mcp-mermaid 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
WalkthroughIntroduces a new MCP registry manifest for a Mermaid Server at mcp-registry/servers/hustcc-mcp-mermaid.json, defining metadata, required/optional arguments, one tool (Diagram), installation methods (uvx, npm via npx, docker), an example usage, and flags for official/archival status. Changes
Sequence Diagram(s)sequenceDiagram
participant U as User
participant C as MCP Client
participant R as MCP Registry
participant S as Mermaid Server
U->>C: Request Mermaid diagram
C->>R: Fetch "@mcp/mermaid-server" manifest
R-->>C: Return manifest (args, tools, installs)
C->>S: Install/start (uvx/npx/docker) with API_KEY/BASE_URL/MODEL
C->>S: Invoke Diagram tool with prompt/spec
S-->>C: Return generated diagram result
C-->>U: Display diagram
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Suggested labels
Poem
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
CI Feedback 🧐(Feedback updated until commit 4142aaa)A test triggered by this PR failed. Here is an AI-generated analysis of the failure:
|
PR Code Suggestions ✨ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
🧹 Nitpick comments (4)
mcp-registry/servers/hustcc-mcp-mermaid.json (4)
4-4: Tighten description grammar for clarityRecommend pluralizing and simplifying.
Apply this diff:
- "description": "Generate mermaid diagram and chart with AI MCP dynamically.", + "description": "Generate Mermaid diagrams and charts via an MCP server.",
23-39: Argument handling: clarify env vs. CLI; avoid example secrets; update model default
- The installation sections don’t pass API_KEY for npm/uvx; likely this should be provided via env. Reflect that in installations.
- Replace hard-coded “sk-xxx” with a safe placeholder like ${OPENAI_API_KEY}.
- “gpt-4-turbo” may be deprecated; consider a contemporary default like “gpt-4o-mini” (verify what the server supports).
Apply this diff:
"arguments": { "API_KEY": { - "description": "OpenAI API Key.", + "description": "OpenAI API key (read from environment).", "required": true, - "example": "sk-xxx" + "example": "${OPENAI_API_KEY}" }, "BASE_URL": { "description": "OpenAI API base url. Default: https://api.openai.com/v1.", "required": false, "example": "https://api.openai.com/v1" }, "MODEL": { - "description": "Model name. Default: gpt-4-turbo.", + "description": "Model name. Example: gpt-4o-mini.", "required": false, - "example": "gpt-4-turbo" + "example": "gpt-4o-mini" } },Please confirm the actual defaults accepted by hustcc/mcp-mermaid (BASE_URL/port/model). If they differ, reflect them here. I can update the manifest once confirmed.
40-45: Tool naming consistency (lowercase tends to be conventional)Minor: consider lowercasing tool names for consistency across registries (if that’s the prevailing style).
- "name": "Diagram", + "name": "diagram",
85-91: Example looks good; consider including a minimal Mermaid snippetOptional: adding a concrete sample input/output makes it easier for users to validate quickly.
For example, include a “sequence diagram” prompt or a minimal mermaid block in the description.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
mcp-registry/servers/hustcc-mcp-mermaid.json(1 hunks)
🔇 Additional comments (1)
mcp-registry/servers/hustcc-mcp-mermaid.json (1)
1-94: Overall: Nice addition; schema looks coherent and readableThe manifest is well-structured with clear metadata, arguments, installations, and an example. Good job keeping prompts/resources explicit and defaulting flags to false.
| "name": "@mcp/mermaid-server", | ||
| "display_name": "MCP Mermaid Server", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Confirm naming conventions: scoped package in name field
If your registry expects a human-readable server id (often without npm scope) vs. the npm package name, using a scoped npm name in name might be inconsistent with other entries.
Run this to compare with existing manifests:
🏁 Script executed:
#!/bin/bash
# Inspect naming patterns across existing server manifests
fd -a 'mcp-registry/servers/*.json' | xargs -I{} sh -c 'echo "== {} =="; jq -r ".name" "{}"'Length of output: 96
🏁 Script executed:
#!/bin/bash
# Find all server manifests and print their "name" fields for naming convention comparison
find mcp-registry/servers -maxdepth 1 -type f -name '*.json' | xargs -I{} sh -c 'echo "== {} =="; jq -r ".name" "{}"'Length of output: 21436
Align scoped package naming for Mermaid server
Most scoped entries use the <packageName>@<scope>.json file name pattern to match "name": "@<scope>/<packageName>". Your manifest is currently:
- File:
mcp-registry/servers/hustcc-mcp-mermaid.json - name:
"@mcp/mermaid-server"
To conform:
• Rename the manifest file:
from mcp-registry/servers/hustcc-mcp-mermaid.json
to mcp-registry/servers/[email protected]
This ensures file name and "name" stay in sync.
Alternatively, if you prefer an unscoped server ID, update the "name" to "hustcc-mcp-mermaid" to match the current file.
🤖 Prompt for AI Agents
In mcp-registry/servers/hustcc-mcp-mermaid.json around lines 2-3, the manifest
"name" field is scoped as "@mcp/mermaid-server" but the file name uses an
unscoped pattern (hustcc-mcp-mermaid.json); fix by making file name and "name"
consistent: either rename the file to
mcp-registry/servers/[email protected] to match "name":
"@mcp/mermaid-server", or change the "name" value to "hustcc-mcp-mermaid" so it
matches the current file name; pick one option and update the repository
accordingly.
| "installations": { | ||
| "uvx": { | ||
| "type": "uvx", | ||
| "command": "uvx", | ||
| "args": [ | ||
| "@mcp/mermaid-server", | ||
| "--port", | ||
| "8000" | ||
| ], | ||
| "description": "Run with uvx" | ||
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove uvx install entry; it won’t execute a Node package
uvx targets Python apps; it can’t run a scoped npm package. Keeping this will mislead users.
Apply this diff to remove the uvx block:
"installations": {
- "uvx": {
- "type": "uvx",
- "command": "uvx",
- "args": [
- "@mcp/mermaid-server",
- "--port",
- "8000"
- ],
- "description": "Run with uvx"
- },🤖 Prompt for AI Agents
In mcp-registry/servers/hustcc-mcp-mermaid.json around lines 48 to 58, remove
the entire "uvx" installation block (the "uvx" key and its nested object)
because uvx targets Python apps and cannot execute a scoped npm package; after
removing the block, ensure the surrounding JSON remains valid (remove any
now-unnecessary trailing comma or adjust commas between adjacent entries).
| "npm": { | ||
| "type": "npm", | ||
| "command": "npx", | ||
| "args": [ | ||
| "-y", | ||
| "@mcp/mermaid-server", | ||
| "--port", | ||
| "8000" | ||
| ], | ||
| "description": "Run with npx", | ||
| "recommended": true | ||
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Pass API key via env for npm; verify package name correctness
- The npm/npx command doesn’t set API_KEY; add an env map so users don’t paste secrets into args.
- Verify the published npm package name. The repo is “mcp-mermaid”; ensure the package is actually “@mcp/mermaid-server” (or update to the correct one).
"npm": {
"type": "npm",
"command": "npx",
"args": [
"-y",
"@mcp/mermaid-server",
"--port",
"8000"
],
+ "env": {
+ "API_KEY": "${OPENAI_API_KEY}"
+ },
"description": "Run with npx",
"recommended": true
},🏁 Script executed:
#!/bin/bash
# Check if other manifests use per-installation env blocks and inspect npm package naming patterns
echo "Search for env blocks under installations:"
rg -n -C2 '"installations"\s*:\s*{(?s).*"env"\s*:'
echo "List npm install commands for comparison:"
rg -n -C2 '"type"\s*:\s*"npm"'
echo "Check for uvx usage elsewhere (should be Python-only):"
rg -n -C2 '"type"\s*:\s*"uvx"'Length of output: 103242
🌐 Web query:
Is there an npm package published under the name "@mcp/mermaid-server" for the hustcc/mcp-mermaid project?
💡 Result:
There is no npm package published under the name "@mcp/mermaid-server" for the hustcc/mcp-mermaid project as of August 2025.
Supporting details:
-
The official npm package for the hustcc/mcp-mermaid project is named "mcp-mermaid" (not scoped, i.e., no @mcp/ prefix)[8][5]. Installation commands in both the GitHub README and third-party documentation show:
npm install -g mcp-mermaidand configuration instructions reference
"mcp-mermaid"in npm and npx commands—not@mcp/mermaid-server[8][5]. -
A search of the npm registry does not return any package named "@mcp/mermaid-server". Several related packages exist, such as:
- @rtuin/mcp-mermaid-validator: an MCP server for validating Mermaid diagrams[1].
- @peng-shawn/mermaid-mcp-server: converts Mermaid diagrams to PNG images[6].
- Packages like mermaid-mcp-server, markdown-mermaid-converter-mcp, and @takanarishimbo/mermaid-live-mcp-server serve similar or related purposes[4][7][10].
-
The official package for hustcc/mcp-mermaid is simply "mcp-mermaid". There is no link between "mcp-mermaid" and any package named "@mcp/mermaid-server" in either the GitHub project or external documentation[8][5][2][3].
Summary table of relevant MCP Mermaid npm packages:
| Project / Author | Official npm package name | Exists on npm as of Aug 2025 | Comments |
|---|---|---|---|
| hustcc/mcp-mermaid | mcp-mermaid | Yes | Official, per GitHub and docs[8][5] |
| — | @mcp/mermaid-server | No | Not published or listed |
| abekdwight/mermaid-mcp-server | mermaid-mcp-server | Yes | Different author/project[4] |
| @peng-shawn | @peng-shawn/mermaid-mcp-server | Yes | Similar server, different scope[6] |
| @rtuin | @rtuin/mcp-mermaid-validator | Yes | Validator-focused[1] |
| @TakanariShimbo | @takanarishimbo/mermaid-live-mcp-server | Yes | Live rendering-focused[10] |
Conclusion:
If you need the official MCP server from hustcc, install the package named "mcp-mermaid", not "@mcp/mermaid-server"[8][5]. There is currently no npm package named "@mcp/mermaid-server", either from hustcc or any other publisher.
Citations:
- 1: https://www.npmjs.com/package/@rtuin/mcp-mermaid-validator
- 2: https://mcp.so/server/mcp-mermaid/hustcc
- 3: https://lobechat.com/discover/mcp/hustcc-mcp-mermaid
- 4: https://github.com/abekdwight/mermaid-mcp-server
- 5: https://archestra.ai/mcp-catalog/hustcc__mcp-mermaid
- 6: https://www.npmjs.com/package/@peng-shawn/mermaid-mcp-server
- 7: https://libraries.io/npm/markdown-mermaid-converter-mcp
- 8: https://github.com/hustcc/mcp-mermaid
- 9: https://www.npmjs.com/package/mermaid
- 10: https://libraries.io/npm/@takanarishimbo%2Fmermaid-live-mcp-server
Correct the NPM package name in hustcc-mcp-mermaid manifest
The current installation refers to @mcp/mermaid-server, which doesn’t exist. The official package for the hustcc/mcp-mermaid project is published as mcp-mermaid. There is no need for an env block—this server doesn’t require an API key.
Please apply the following diff:
mcp-registry/servers/hustcc-mcp-mermaid.json
@@ Lines 59-70
- "npm": {
- "type": "npm",
- "command": "npx",
- "args": [
- "-y",
- "@mcp/mermaid-server",
- "--port",
- "8000"
- ],
- "description": "Run with npx",
- "recommended": true
- },
+ "npm": {
+ "type": "npm",
+ "command": "npx",
+ "args": [
+ "-y",
+ "mcp-mermaid",
+ "--port",
+ "8000"
+ ],
+ "description": "Run with npx",
+ "recommended": true
+ },📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "npm": { | |
| "type": "npm", | |
| "command": "npx", | |
| "args": [ | |
| "-y", | |
| "@mcp/mermaid-server", | |
| "--port", | |
| "8000" | |
| ], | |
| "description": "Run with npx", | |
| "recommended": true | |
| }, | |
| "npm": { | |
| "type": "npm", | |
| "command": "npx", | |
| "args": [ | |
| "-y", | |
| "mcp-mermaid", | |
| "--port", | |
| "8000" | |
| ], | |
| "description": "Run with npx", | |
| "recommended": true | |
| }, |
🤖 Prompt for AI Agents
In mcp-registry/servers/hustcc-mcp-mermaid.json around lines 59 to 70, the
manifest incorrectly references the non-existent package "@mcp/mermaid-server"
and includes an unnecessary env block; update the npm entry to use the official
package name "mcp-mermaid" (e.g. keep "command": "npx" and set args to ["-y",
"mcp-mermaid", "--port", "8000"]) and remove the env block entirely so the
server runs without an API key.
| "docker": { | ||
| "type": "docker", | ||
| "command": "docker", | ||
| "args": [ | ||
| "run", | ||
| "-p", | ||
| "8000:8000", | ||
| "-e", | ||
| "API_KEY=sk-xxx", | ||
| "hustcc/mcp-mermaid-server:latest" | ||
| ], | ||
| "description": "Run with docker" | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🛠️ Refactor suggestion
🧩 Analysis chain
Safer Docker example: avoid inline secrets; add --rm
Use the host env var and auto-remove the container when it exits.
"docker": {
"type": "docker",
"command": "docker",
"args": [
"run",
+ "--rm",
"-p",
"8000:8000",
"-e",
- "API_KEY=sk-xxx",
- "hustcc/mcp-mermaid-server:latest"
+ "API_KEY=${OPENAI_API_KEY}",
+ "hustcc/mcp-mermaid-server:latest"
],
"description": "Run with docker"
}🌐 Web query:
Does a Docker image named "hustcc/mcp-mermaid-server" exist (Docker Hub or GHCR), and is port 8000 the correct default expose/port for the server?
💡 Result:
Short answer
- I could not find any Docker image published as exactly "hustcc/mcp-mermaid-server" on Docker Hub or on GitHub Packages / GHCR. (The GitHub repository exists, but it shows "Packages 0" — i.e. no published container packages.) (github.com)
- The server's documented default HTTP/SSE port is 3033 (not 8000). The README and server docs state the default port is 3033 for SSE/streamable transport (CLI option --port / -p defaults to 3033). (github.com, glama.ai)
Notes and next steps
- The repo is hustcc/mcp-mermaid (source + a Dockerfile is in the repo), so you can build a Docker image yourself from that Dockerfile and expose whichever port you want (the server itself defaults to 3033). (github.com)
- If you want, I can:
- show the exact docker build / docker run commands to create and run an image that exposes port 3033 (or map it to host port 8000), or
- search again for similarly named third‑party images (in case someone published a community image under a different registry/name). Which would you prefer?
Citations:
- 1: https://github.com/hustcc/mcp-mermaid
- 2: https://github.com/hustcc/mcp-mermaid
- 3: https://glama.ai/mcp/servers/%40hustcc/mcp-mermaid?utm_source=chatgpt.com
- 4: https://github.com/hustcc/mcp-mermaid
Safer & Correct Docker example: avoid inline secrets, add --rm, correct default port (3033) & local build
You'll need to build the image locally from the hustcc/mcp-mermaid Dockerfile since there’s no published hustcc/mcp-mermaid-server image. The server defaults to port 3033.
"docker": {
"type": "docker",
"command": "docker",
"args": [
"run",
+ "--rm",
+ "-p", "3033:3033",
"-e", "API_KEY=${OPENAI_API_KEY}",
- "hustcc/mcp-mermaid-server:latest"
+ "mcp-mermaid-server:latest"
],
- "description": "Run with docker"
+ "description": "Run with Docker (build the image locally via `docker build -t mcp-mermaid-server:latest .` first)"
}Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
mcp-registry/servers/hustcc-mcp-mermaid.json around lines 71-83: the Docker
example uses an inline secret, the wrong port, and a non-existent published
image; update it to (1) build the image locally from the repository Dockerfile
and reference that local tag, (2) map the correct default port 3033
(host:container 3033:3033), (3) remove inline API key and use a safer mechanism
such as --env-file (or Docker secrets) to pass API_KEY, and (4) add --rm to the
run args so containers are cleaned up after exit. Ensure the command and args
reflect these changes and the description mentions building locally.
User description
Summary
This PR adds a new MCP server manifest generated from the repository: https://github.com/hustcc/mcp-mermaid
Changes
mcp-registry/servers/Test plan
🤖 Generated with Claude Code
PR Type
Enhancement
Description
Add MCP manifest for hustcc-mcp-mermaid server
Configure Mermaid diagram generation with AI integration
Include installation methods (npm, uvx, docker)
Define OpenAI API configuration parameters
Diagram Walkthrough
File Walkthrough
hustcc-mcp-mermaid.json
New MCP manifest for Mermaid servermcp-registry/servers/hustcc-mcp-mermaid.json
Summary by CodeRabbit