bioimage-mcp-server gives your LLM agents high-level access to microscopy data by wrapping Bio-Formats and common image-understanding tasks in a MCP server
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"bioimage-mcp": {
"args": [
"runner/bioimage_mcp.java"
],
"command": "jbang"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
An MCP server that gives LLM agents access to microscopy image data. Reads 150+ file formats (CZI, ND2, LIF, OME-TIFF, and many more) via Bio-Formats and exposes five tools for inspecting metadata, generating visual previews, computing intensity statistics, and converting to open formats.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in health / ai-ml
Dynamic problem-solving through sequential thought chains
Persistent memory using a knowledge graph
Workspace template + MCP server for Claude Code, Codex CLI, Cursor & Windsurf. Multi-agent knowledge engine (ag-refresh / ag-ask) that turns any codebase into a queryable AI assistant.
The official MCP server implementation for the Perplexity API Platform
MCP Security Weekly
Get CVE alerts and security updates for Bioimage Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP server that gives LLM agents access to microscopy image data. Reads 150+ file formats (CZI, ND2, LIF, OME-TIFF, and many more) via Bio-Formats and exposes five tools for inspecting metadata, generating visual previews, computing intensity statistics, and converting to open formats.
Hand your agent a .czi and ask "what channels were acquired?" or
"is this image saturated?" — no desktop application or one-off script
required.
This is a very new proof-of-concept implementation. It has been architected to be robust, extensible, and safe. However, it does not have extensive use to find in-practice problems!
Use with caution, but also enthusiasm, because it's nice to have your LLMs have better access to your data. If you see something wrong, or would like a feature tweaked, please submit an issue!
Installation should be one line on the command-line, listed on the download page!
claude mcp add bioimage-mcp \
-- jbang https://github.com/ichoran/bioimage-mcp-server/blob/main/runner/bioimage_mcp.java
Then future invocations of claude will have access.
Or from a local clone or copy of the bioimage_mcp.java file (generally you should use the absolute path on your system, not just runner/bioimage_mcp.java):
claude mcp add bioimage-mcp \
-- jbang runner/bioimage_mcp.java
To remove,
claude mcp remove bioimage-mcp
and future invocations will no longer have access.
Add to your Claude Desktop configuration (claude_desktop_config.json),
with the same caveats about paths:
{
"mcpServers": {
"bioimage-mcp": {
"command": "jbang",
"args": ["runner/bioimage_mcp.java"]
}
}
}
Instruct the client to run using jbang via URL or local target, using the Claude examples as a guide.
By default the server only accesses files under directories declared by the MCP client (client roots). To grant access to additional paths, or to deny access to sensitive directories, copy the runner file and edit the allow/deny lists:
BioImageMcpServer.builder()
.allow("/data/microscopy")
.allow("/shared/lab-images")
.deny("/data/microscopy/private")
.build()
.run(args);
This keeps your access rules inspectable and version-controllable in a single file. Then point your MCP client at your edited copy instead of the original.
For quick one-off use, you can also pass --allow and --deny flags
on the command line:
jbang runner/bioimage_mcp.java --allow /data/microscopy --deny /tmp/secret
CLI flags are merged with any paths hardcoded in the runner file. Deny rules always win. See DESIGN.md §5 for details.
| Tool | Returns | Purpose |
|---|---|---|
inspect_image | JSON | Dimensions, pixel type, physical sizes, channels, instrument info |
get_thumbnail | PNG | RGB composite preview with Z-projection and channel compositing |
get_plane | PNG | Single-channel grayscale plane at full resolution |
get_intensity_stats | JSON | Min/max/mean/stddev/median, histogram, saturation warnings |
export_to_tiff | JSON | Convert to OME-TIFF with optional subsetting |
All tools accept an absolute file path and handle large files safely (adaptive subsampling, time budgets). Errors are returned as structured messages, never silently swallowed — see DESIGN.md for the rationale.
inspect_image — learn what's in the file (start with summary detail)get_thumbnail — quick visual overviewget_plane / get_intensity_stats — detailed investigationexport_to_tiff — convert for downstream tools (FIJI, napari, etc.)
... [View full README on GitHub](https://github.com/Ichoran/bioimage-mcp-server#readme)