OpenBio Comfy MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OpenBio Comfy MCPAdd a group called 'upscaler' around the selected nodes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OpenBio Comfy MCP
OpenBio Comfy MCP is a local Model Context Protocol server and ComfyUI V3 extension for inspecting and editing the workflow currently open on a live ComfyUI canvas. It uses ComfyUI's native graph, selection, group, dirty-state, and undo behavior; it never queues, executes, or saves a workflow automatically.
Published releases are installable through ComfyUI Manager. Registry packages include a bundled MCP server, so Manager users do not need to runnpm ci.
Features
Inspect the active canvas as compact, structured MCP output.
Search all node types installed in the connected ComfyUI instance.
Inspect the complete native schema of an exact node type.
Select and focus native nodes or groups without modifying the workflow.
Add, remove, connect, disconnect, configure, and move nodes.
Add, update, fit, move, and remove native ComfyUI groups.
Apply a batch as one atomic, undoable native ComfyUI transaction.
Reject stale or invalid patches before changing the live graph.
Keep the MCP transport local: the stdio server opens no listening port, and canvas commands are accepted by the relay from loopback only.
Related MCP server: comfy-mcp
Architecture
MCP host application (Codex or another local host)
| MCP over stdio
v
Node.js MCP server
| ComfyUI HTTP
v
Python V3 extension relay
| ComfyUI WebSocket event
v
Browser page extension -> active app.canvas.graphThe browser page is the authority for the live graph. The Python extension correlates requests with a connected page, while the Node.js stdio server keeps no authoritative workflow copy. The extension registers no ComfyUI execution nodes and does not patch ComfyUI Core, ComfyUI_frontend, Desktop, or the workflow file format.
Requirements
ComfyUI 0.33.0 or newer
Python 3.10 or newer in the ComfyUI runtime
Node.js 20 or newer
An MCP host application that supports local stdio servers
A ComfyUI browser or Desktop page kept open while the tools are used
The ComfyUI extension has no additional Python package dependencies. Registry releases include a prebuilt MCP server. For source and development checkouts, npm ci installs only Node.js dependencies and builds that server; it does not modify the ComfyUI Python environment.
Install
ComfyUI Manager (recommended)
Open ComfyUI Manager, search for OpenBio Comfy MCP or openbio-comfy-mcp, select Install, and restart ComfyUI. The installed MCP entry point is:
<ComfyUI>/custom_nodes/openbio-comfy-mcp/dist/openbio-comfy-mcp.mjsNo npm ci step is required for a Registry installation.
Standard source installation
Clone the repository directly into ComfyUI's custom_nodes directory, then install the MCP server dependency and build the bundled entry point.
Windows PowerShell:
$ComfyRoot = "C:\path\to\ComfyUI"
Set-Location "$ComfyRoot\custom_nodes"
git clone https://github.com/Open-Bio/openbio-comfy-mcp.git
Set-Location .\openbio-comfy-mcp
npm ciLinux or macOS:
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/Open-Bio/openbio-comfy-mcp.git
cd openbio-comfy-mcp
npm ciRestart ComfyUI after installation, open its UI in a browser, and verify that the extension route is available:
Invoke-RestMethod http://127.0.0.1:8188/openbio-comfy-mcp/healthThe expected response is { "ok": true }.
Sibling checkout for development
Keep the Git checkout outside ComfyUI and expose it through a link when you want edits to remain in a standalone repository.
Windows PowerShell:
$ComfyRoot = "C:\path\to\ComfyUI"
$Repo = "C:\path\to\openbio-comfy-mcp"
New-Item -ItemType Junction `
-Path "$ComfyRoot\custom_nodes\openbio-comfy-mcp" `
-Target $Repo
Set-Location $Repo
npm ciLinux or macOS:
ln -s /path/to/openbio-comfy-mcp /path/to/ComfyUI/custom_nodes/openbio-comfy-mcp
cd /path/to/openbio-comfy-mcp
npm ciDo not expose the same checkout through more than one custom-node root.
Connect an MCP host
Codex
Register the local stdio server with an absolute path:
$Repo = (Resolve-Path "C:\path\to\openbio-comfy-mcp").Path
codex mcp add openbio-comfy-mcp `
--env OPENBIO_COMFY_URL=http://127.0.0.1:8188 `
-- node "$Repo\dist\openbio-comfy-mcp.mjs"
codex mcp get openbio-comfy-mcp --json
codex mcp list --jsonRestart the Codex client after adding the server. Codex Desktop, the CLI, and the IDE extension share MCP configuration on the same Codex host. See the official Codex MCP documentation.
Other stdio MCP hosts
For hosts that use an mcpServers JSON configuration, adapt this example with an absolute path:
{
"mcpServers": {
"openbio-comfy-mcp": {
"command": "node",
"args": ["C:\\path\\to\\openbio-comfy-mcp\\dist\\openbio-comfy-mcp.mjs"],
"env": {
"OPENBIO_COMFY_URL": "http://127.0.0.1:8188"
}
}
}
}Configuration keys vary by host. The command must start dist/openbio-comfy-mcp.mjs, and OPENBIO_COMFY_URL must point to the local ComfyUI server.
Configuration
Variable | Default | Description |
|
| Base URL of the ComfyUI server used by the local MCP server. |
Tools
Tool | Effect | Purpose |
| Read-only | Inspect compact topology or details for exact native node/group refs. |
| Read-only | Search the connected ComfyUI |
| Read-only | Read the complete native schema for one exact |
| UI state only | Select and optionally fit native items without modifying the workflow. |
| Writes the live canvas | Apply one atomic, undoable batch of typed node, link, or group operations. |
Recommended editing flow:
Call
inspect_canvasand keep the returnedcanvas_idandrevision.Use
search_nodesandinspect_node_typebefore adding an unfamiliar node type.Send one
apply_canvas_patchwith the inspectedcanvas_idandrevisionasbase_revision.Optionally call
present_canvasto select and focus the changed items.Inspect again. If the result is unwanted, use ComfyUI's native undo command.
See docs/spec.md for the exact public behavior and operation set.
Frontend development note
The standalone ComfyUI_frontend Vite development server (pnpm dev, normally port 5173) does not load JavaScript extensions supplied by custom nodes. OpenBio Comfy MCP therefore cannot connect to a canvas served only by that development server. Use the frontend served by ComfyUI itself, or build the frontend and launch ComfyUI with that build as its frontend root.
After installing or updating this repository, restart ComfyUI and reload the browser page so the page extension is loaded.
Security and privacy
Install MCP servers only from sources you trust. This local server runs with the same operating-system permissions as the MCP host application that launches it.
Treat
apply_canvas_patchas a write-capable tool and review or approve its use in your MCP host. It changes the workflow currently open in the selected page, although the whole patch can be reverted with one native undo.The stdio MCP server opens no network listener. It calls the configured ComfyUI HTTP server, which defaults to
http://127.0.0.1:8188.Canvas command requests are accepted from loopback only. This restriction is not a general authentication layer for ComfyUI; do not expose an unauthenticated ComfyUI server to untrusted networks.
The bridge exposes typed graph operations, not arbitrary JavaScript, DOM access, filesystem access, shell commands, workflow queueing, or execution.
Canvas inspections can include workflow names, paths, node titles, prompts, filenames, sample identifiers, and widget values. Any onward handling follows the privacy policy and configuration of the MCP host and model provider you connect.
A disconnected page returns
NO_LIVE_CANVAS; the system never falls back to editing workflow files in the background.
Troubleshooting
NO_LIVE_CANVAS: open or reload a ComfyUI page and leave it connected.Tools are missing in the host: verify the absolute
dist/openbio-comfy-mcp.mjspath and restart the MCP host application. For a source checkout, runnpm cifirst.Health endpoint is missing: verify the repository is directly under
custom_nodesor linked there, then restart ComfyUI and inspect its console for import errors.STALE_CANVAS: callinspect_canvasagain and build a new patch from the returned revision.Multiple pages are open: the most recently focused ComfyUI page is the default target; an unresolved ambiguity is reported instead of guessed.
Port
5173development page does not connect: use a frontend served by the ComfyUI backend as described above.
Update and uninstall
Update a source installation and its locked Node.js dependencies:
git pull --ff-only
npm ciRestart ComfyUI and reload its browser page after an update.
To uninstall, first remove the MCP host registration. For Codex:
codex mcp remove openbio-comfy-mcpThen remove the cloned openbio-comfy-mcp directory—or only the Junction/symbolic link for a sibling development checkout—from ComfyUI/custom_nodes, and restart ComfyUI.
Development
Install Node.js dependencies and run the MCP/page-extension tests:
npm ci
npm testRun the Python relay tests with the same interpreter used by ComfyUI:
C:\path\to\ComfyUI\.venv\Scripts\python.exe `
-m pytest --rootdir=tests -c pyproject.toml tests -qRepository layout:
dist/ Bundled, dependency-free Registry MCP entry point
mcp_host/ Node.js stdio MCP server
openbio_comfy_mcp/ ComfyUI V3 Python relay extension
scripts/ Reproducible MCP bundle build
web/ Live page extension and canvas bridge
tests/ Node.js and Python tests
docs/spec.md Public behavior and safety boundariesIssues and pull requests are welcome. Please keep changes inside the project's documented live-canvas and local-transport boundaries, and run both test suites before submitting.
License
OpenBio Comfy MCP is released under the MIT License.
This project uses the official Model Context Protocol TypeScript SDK and ComfyUI's documented V3 extension and JavaScript extension mechanisms.
Available Tools
5 toolsapply_canvas_patchBDestructive
Apply one atomic, undoable batch of changes to a live ComfyUI canvas.
| Name | Required | Description | Default |
|---|---|---|---|
| canvas_id | Yes | ||
| operations | Yes | ||
| base_revision | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description discloses that changes are atomic (all-or-nothing), undoable, and applied to a live canvas. This adds meaningful behavioral context about failure semantics and reversibility, though it doesn't address concurrency conflicts or the role of base_revision.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Every word ('atomic', 'undoable', 'live', 'batch') earns its place by conveying behavioral and semantic constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructive, non-idempotent nature and a complex operations schema with no output schema, an agent needs more context about conflict behavior, base_revision semantics, and typical use cases. The compact description covers a few key properties but leaves major gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not compensate by explaining canvas_id, base_revision, or the operations array. It only says 'batch of changes,' which maps vaguely to operations but adds no meaning to any specific parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('apply'), a precise resource ('changes to a live ComfyUI canvas'), and adds defining qualifiers ('atomic, undoable batch') that set it apart from the sibling read/search tools. It tells an agent immediately that this is the mutating patch tool for canvas edits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as inspect_canvas, present_canvas, search_nodes, or inspect_node_type. The phrase 'apply ... batch of changes' implies mutating use, but it does not state prerequisites, when not to use it, or which sibling might be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_canvasBRead-only
Inspect a compact live ComfyUI canvas, or details for native node and group refs.
| Name | Required | Description | Default |
|---|---|---|---|
| refs | No | ||
| canvas_id | No | Opaque canvas identity returned by an earlier inspection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only safety profile is covered. The description adds 'compact live' and 'native' context, which suggests the output is a condensed current-state view, but it does not disclose return format or behavior when no parameters are provided. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. 'Compact live' and 'native' are dense but meaningful qualifiers, though they could be clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two optional parameters, no required fields, no output schema, and no usage guidance, the description does not sufficiently equip an agent to invoke the tool correctly. Missing details include the meaning of an all-empty call, the relationship between canvas_id and refs, and when to prefer sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes canvas_id and the refs kind/id shape. The description adds that refs target 'native node and group' details, which gives some meaning beyond the schema. However, it does not clarify whether canvas_id and refs are alternatives, complementary, or what happens when both are absent, leaving a partial gap at 50% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a clear action ('Inspect') and resource ('compact live ComfyUI canvas', 'node and group refs'), which distinguishes it from mutating or presenting siblings. The phrase 'or details for native node and group refs' is slightly ambiguous about the exact object of inspection, but the core purpose is understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance for when to use this tool versus search_nodes or inspect_node_type. It weakly implies that this tool is for reading canvas/ref state, but it does not state conditions, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_node_typeBRead-only
Inspect the complete native ComfyUI schema for one installed node type.
| Name | Required | Description | Default |
|---|---|---|---|
| class_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=false, and the description's 'Inspect' verb aligns with a safe read operation - no contradiction. The phrase 'complete native ComfyUI schema' adds modest context about the scope of what is returned. However, it doesn't describe output volume, error behavior for invalid class types, or whether the full schema is returned as structured JSON, so the value added beyond annotations is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, tightly worded sentence with zero waste. The action and object are front-loaded with no filler or redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only inspection tool with no output schema, the definition is borderline adequate. It clearly states what it does and the annotation covers the safety profile, but it leaves the agent to guess what class_type should contain and offers no usage guidance. Given the tool's low complexity and the sibling overlap, this is a minimum-viable definition that could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden of explaining the parameter. The phrase 'one installed node type' weakly hints that class_type names a node type, but it never explicitly maps class_type to that concept, states its expected format, or notes that it must be an installed node type identifier. The description insufficiently compensates for the zero coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Inspect') and identifies a clear resource ('the complete native ComfyUI schema for one installed node type'). This distinguishes it from siblings like inspect_canvas (canvas vs node type) and search_nodes (search vs inspect), though it doesn't name them explicitly. A 5 would require explicit sibling differentiation, so 4 is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like search_nodes or inspect_canvas, and no prerequisites or exclusions are stated. The usage context is only implied by the purpose clause, so the agent receives no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
present_canvasAIdempotent
Select and optionally fit native items on a live ComfyUI canvas without modifying the workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| refs | Yes | ||
| fit_view | Yes | ||
| canvas_id | Yes | ||
| selection | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=false and idempotentHint=true; the description adds that the workflow is not modified and that the operation targets live canvas state. However, it does not disclose how the selection is changed (replace vs add), what happens with invalid refs, or the effect of fit_view.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler. It front-loads the action and includes a useful constraint about not modifying the workflow. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a relatively simple 4-parameter tool with strong safety annotations, but it leaves some semantics implicit, especially selection behavior and fit_view. Without an output schema, the description also does not indicate what the agent should expect after invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It only provides the overall intent and does not map canvas_id, refs, selection, or fit_view to concrete meanings. The enum values 'replace' and 'add' are left for the agent to infer from their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Select and optionally fit native items') and a specific resource ('live ComfyUI canvas'), and it explicitly scopes the operation as not modifying the workflow. This clearly distinguishes it from siblings like apply_canvas_patch (which modifies) and inspect_canvas (which reads).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys when to use the tool: for selection and view-fitting on a live canvas while keeping the workflow unchanged. It gives a clear exclusion ('without modifying the workflow'), but it does not explicitly name sibling alternatives or state cases where inspect_canvas or apply_canvas_patch should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_nodesCRead-only
Search the node types installed in ComfyUI.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the description's job is to add context beyond that. It adds little beyond restating the read-only search behavior, though for a simple search tool there is limited behavior to disclose. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero wasted words, and the core action is front-loaded. It is efficient, though it borders on under-specification rather than true concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no output schema and a sibling (inspect_node_type) that overlaps in domain, the description should clarify scope and the meaning of the limit parameter. It does neither, leaving an agent to guess about result behavior and when this tool is the right choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate for explaining the parameters. The description implies 'query' is a search term for node types, but it does not clarify the 'limit' parameter's semantics (pagination, result cap, or default behavior) at all. With two parameters undocumented, the description is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('search') and a specific resource ('node types installed in ComfyUI'), making the core purpose clear. It does not explicitly distinguish itself from its siblings (especially inspect_node_type), but the verb choice implies a broad search versus targeted inspection, giving partial differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus its siblings, no exclusions, and no named alternatives. An agent cannot tell from the description whether to use search_nodes or inspect_node_type for a given task, leaving the routing decision entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.1.0- First observed
apply_canvas_patch - First observed
inspect_canvas - First observed
inspect_node_type - First observed
present_canvas - First observed
search_nodes
TDQS
Each tool targets a distinct aspect: canvas inspection, canvas presentation, node search, node schema inspection, and canvas modification. No two tools overlap in purpose, making selection unambiguous.
All tool names follow a consistent verb_noun pattern (inspect_canvas, present_canvas, search_nodes, inspect_node_type, apply_canvas_patch) with uniform snake_case. The naming convention is predictable and clear.
With 5 tools, the server is well-scoped for ComfyUI canvas interaction. It covers inspection, navigation, searching, and modification without unnecessary bloat or missing essentials.
The surface covers reading (inspect), searching, schema inspection, visualization (present), and modification (apply_patch). Minor gaps like explicit node deletion or undo/redo history might exist, but the atomic undoable patch likely covers these needs.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.
Remote MCP server for RunComfy Serverless API (ComfyUI): deployments and async inference.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseAqualityAmaintenanceThe MCP server that drafts ComfyUI workflows a human can actually read. It lets coding agents build, repair, port, validate, and run ComfyUI workflows against your own ComfyUI instance, delivering clean, organized, fully-labeled workflows.292MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that enables AI agents to control a local ComfyUI instance for image generation, allowing workflow understanding, parameter modification, execution, and model discovery.233Apache 2.0
- AlicenseAqualityCmaintenanceA universal MCP server that lets agents discover ComfyUI nodes, build/edit/run API workflows, manage queues, retrieve outputs, and optionally render graphs on a ComfyUI canvas.23Apache 2.0
- FlicenseNot gradedqualityCmaintenanceWindows-native MCP server for a local ComfyUI portable package. It enables listing, validating, and running ComfyUI workflows via the loopback HTTP API.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Open-Bio/openbio-comfy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server