
Micro-Manager Microscope
io.github.K-Dense-AIPublished by GitHub account K-Dense-AIv0.1.3Updated Oct 24, 2026
MCP server for microscopes controlled by Micro-Manager (pymmcore-plus).
The publisher's own server: Mu
Overview
Lets an assistant control a Micro-Manager microscope: snap images, run z-stacks and time-lapses, move stage and focus, switch channels and objectives.
- What you can do
- Wraps Micro-Manager's MMCore device layer through pymmcore-plus, so an assistant can drive any microscope with a Micro-Manager device adapter. Tools cover imaging (snap_image, acquire_z_stack, acquire_time_lapse), motion (move_stage_xy, move_z, autofocus), optics and light (set_config, set_objective, set_exposure, set_shutter), plus read-only inspection of devices, positions, config groups and a raw command log. Safety tools stop the stage and close the shutter. Images are saved as TIFF files and tools return statistics and a small preview.
- When to use it
- Use it when you want an assistant to operate a Micro-Manager-controlled microscope for routine imaging: capturing fields, z-stacks, time-lapses, autofocus, channel and objective changes, or reading instrument state. It is also usable without hardware through a built-in simulator, which is useful for trying prompts or testing workflows before touching a real scope.
- Requirements
- Runs locally over stdio as the PyPI package labmcp-micro-manager (uvx). Needs a Micro-Manager .cfg hardware configuration, matching device adapter libraries (installable via the bundled mmcore command or an existing Micro-Manager install), and vendor camera SDKs/drivers. The Micro-Manager app must be closed while the server holds the device. Optional environment variables: LABMCP_ADDRESS, LABMCP_LIMITS, LABMCP_READ_ONLY, LABMCP_SIMULATE. No authentication is declared.
Installation
In SourceWeft
- Open Micro-Manager Microscope in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Micro-Manager Microscope — MCP Server
Let an AI agent snap images, acquire z-stacks and time-lapses, move the stage and focus within limits you set, switch channels and objectives, set exposure, operate shutters and run autofocus on any microscope controlled by Micro-Manager, through its open device layer (MMCore) and pymmcore-plus.
Try it without hardware
The simulator is a widefield fluorescence microscope with a 512 x 512, 12-bit camera, an XY stage, a focus drive, a shutter, a DAPI / FITC / TRITC / Brightfield filter wheel, a 10x / 20x / 40x turret and a hardware autofocus, looking at a field of cell nuclei. Its images defocus with Z, scale with exposure, bleach with light dose, saturate at 4095 and carry shot and read noise, so focusing, exposure and bleaching behave like on a real microscope.
Connect your microscope
- Hardware configuration: create and test a
.cfgfile with Micro-Manager's Hardware Configuration Wizard (in the Micro-Manager app), including config groups for channels (usuallyChannel) and objectives (Objective) and a pixel-size calibration. Close the Micro-Manager app afterwards: a device can only be opened by one program. - Device adapters: pymmcore-plus needs Micro-Manager's device adapter libraries in a version that matches its
pymmcorebuild. Either download them with pymmcore-plus' own installer: or point to an existing Micro-Manager installation with--option mm_path=/path/to/Micro-Manager(it must be a build whose device interface matches pymmcore;mmcore infoshows the version). Vendor camera SDKs and drivers must be installed separately, as for Micro-Manager itself. - Test the connection:
--checkloads the configuration and prints the camera, stages and other device roles.
Add to your MCP client
Claude Code
Claude Desktop / Cursor / Windsurf (claude_desktop_config.json, .cursor/mcp.json, …)
Add --read-only to let the agent read positions and settings without imaging or moving anything (stop_stage and close_shutter stay available). For other clients, generate the snippet with uvx labmcp config micro-manager --address /path/to/MyScope.cfg --client vscode (also cursor, codex, claude-code).
Tools
get_connection_info, get_command_log and reconnect are built into every LabMCP server. get_command_log lists every state-changing MMCore call (setPosition(1502.0), setConfig('Channel', 'FITC'), snapImage(), ...).
Safety limits
Override at launch, e.g. --limit max_z_step_um=10 --limit max_frames=2000.
Soft limits (recommended): absolute stage bounds in micrometres, set with driver options. Find them by moving to the safe extremes in Micro-Manager (e.g. Z with the objective just below the coverslip) and reading the positions:
Every Z and XY move, every z-stack slice and every autofocus result is checked against the step limits and soft limits before anything moves (autofocus results are checked afterwards and undone if out of range).
Example prompts
- "What's on this microscope? List the channels and objectives, and the current position."
- "Switch to FITC, find an exposure that uses about half the camera's range without saturating, then snap an image and show me."
- "Autofocus, then take a z-stack from −10 to +10 µm in 1 µm steps in DAPI and FITC and tell me which slice is sharpest."
- "Move 500 µm to the right and snap a DAPI image; repeat three more times to make a row of four fields."
- "Record a time-lapse in TRITC every 30 s for 20 minutes and tell me how much the signal bleached."
- "Something is wrong — stop the stage and close the shutter."
Notes
- Objective crashes. Moving the focus drive toward the sample can drive the objective into the coverslip or dish.
get_position/get_system_inforeportfocus_direction(whether increasing Z moves the objective toward the sample, as declared by the device adapter; oftenunknown). Configurez_min_um/z_max_umfor every microscope you connect. - Objective changes (
set_objective) rotate the nosepiece and are marked as hazardous;set_configrefuses config groups whose names look like objective or turret groups (Objective,Nosepiece,Turret,Magnification,Lens). Other groups are applied as-is: if one of your presets moves hardware near the sample, name the group accordingly or leave it out of the configuration. - Light exposure. With auto-shutter on (the default), the light path only opens while the camera exposes.
set_shutter(open=True)leaves the sample lit untilclose_shutteris called. - Images are saved as TIFF files (ImageJ hyperstacks with pixel size, Z spacing and frame interval) in
save_path, or in--option data_dir=...(default: the system temp folder,labmcp-micro-manager/).save_pathmust end in.tif/.tiffand must not be a folder; it is checked before anything moves or is exposed. Existing files are never overwritten (a numeric suffix is added). Tools return statistics (min/max/mean/std, saturated fraction, a sharpness score) and a small contrast-stretched PNG preview, never the full image. - Acquisitions (
acquire_z_stack,acquire_time_lapse) snap image by image with the current camera settings; they do not use hardware-triggered sequencing, so they are slower than Micro-Manager's MDA engine but behave identically on every device.stop_stageorclose_shutteraborts them between frames; partial data is saved (an incomplete slice or timepoint is dropped). A z-stack returns the focus to its starting position unless it was aborted. An acquisition must fit in one tool call: one whose exposure time alone exceeds 3600 s is refused, and one that runs long because of stage, filter or camera overheads stops between slices/timepoints and reports why innote. Channels cannot come from an objective/turret group. - Autofocus uses the configured autofocus device (
fullFocus). Software autofocus plugins from the Micro-Manager Java app are not available. - pymmcore-plus is imported only when a real configuration is loaded, so
--simulateworks without Micro-Manager's native libraries.
Hardware verification
Source: servers/biology/micro-manager/README.md at commit 46545ea
Tools
0Version history
3- v0.1.3LatestSep 27, 2026
- v0.1.1Sep 26, 2026
- v0.1.0Sep 26, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Micro integrations

Mu
mu.microOfficial publisher
Mu is a hosted personal-assistant runtime that gives an assistant one endpoint for mail, calendar, contacts, docs, bookmarks, chat, news and web search.

NEMO x402 Micro-Services
Published by GitHub account floortomproductions-droid
Remote pay-per-call gateway of 34 data tools: site/SEO audits, weather, crypto and Polymarket data, YouTube, podcasts and job boards.

Myworker — 20 paid crypto & AI micro-APIs (x402)
Published by GitHub account princearies
Remote MCP server exposing 20 paid crypto, DeFi, FX, web-scraping and AI micro-APIs, billed per call in USDC via x402.

Skavio USDC Payment Verification & Proof MCP
eu.skavio
Hosted MCP server for inspecting and matching native USDC transfers, generating blockchain evidence PDFs, auditing DNS/TLS, and relaying paid document, OCR…

x402 Micro Tollgate
Published by GitHub account kevin2003050666-coder
A self-hosted x402 paywall that puts USDC micropayment tolls in front of your API or MCP tools, so agents pay per call.