Skip to content

MCP

Drive your Open Culture instruments — Habitat fluidics and MaxWell MEA recording rigs — from Claude (or any Model Context Protocol-capable assistant) in plain language. Open Culture hosts one MCP server in the cloud; connect it once and Claude can read status, run approval-gated operations, and answer questions about your rigs.

Unlike the REST API — which exposes every endpoint of a single device — the MCP surface is compact, high-level, and fleet-aware: each tool addresses a specific rig by its rig_id.

Connect Claude to Open Culture

You'll need

An Open Culture account — the same login you use for the web app.

Coming soon: one-click connect

We're submitting the OpenCulture connector to Anthropic's directory. Once it's listed, you'll be able to add it straight from Claude's built-in connector list — no custom URL needed. Until then, use the steps below.

Via claude.ai

  1. In claude.ai, open Settings → Connectors.
  2. Choose Add custom connector.
  3. For URL, enter https://app.openculture.ai/mcp, and give it a name like OpenCulture.
  4. Claude redirects you to the Open Culture sign-in. Log in with your Open Culture account.
  5. Approve the consent screen. The connector should now show as Connected.
  6. Open a new chat and enable the connector for that conversation (the tools / connector toggle).

That's it — ask Claude something like "Is rig MistyForest ready, and what's its CO₂ right now?" and it will call the tools for you.

How approvals work

Nothing runs without your approval

Claude can read freely, but anything that actuates hardware (a pump move, starting a recording, powering a rig on or off) is recorded as a pending request a human must approve — in the web app's Pending Approvals panel, or via the one-click link Claude gives you. An agent can't approve its own actions. The one exception is the emergency stop (panic button), which runs immediately by design.

Every domain follows the same shape: reads return right away (or as a quick background job you poll); operations are proposed for approval; jobs are tracked with <domain>_list_jobs / <domain>_get_job_status; and approvals go through <domain>_approve_job / <domain>_approve_pending (usually done in the web app).

Where to approve

When Claude proposes an action it gives you a one-click approve link — the quickest path. You can also review everything waiting for you in the Pending Approvals panel of the Open Culture web app, which lists each request with its rig, operation, and parameters to Approve or Decline. Approval always happens in the web app, never inside the chat.

Example prompts

Once connected, just ask — Claude picks the right tools. A few to try (swap in your own rig names):

  • "Is rig MistyForest ready, and what's its CO₂ and temperature right now?"
  • "Has CO₂ been stable on MistyForest over the last 24 hours?"
  • "What have the pumps on MistyForest been doing in the last hour — any failures?"
  • "Prime the reagent lines on MistyForest." — Claude proposes it; you approve.
  • "Is the MaxWell rig mea-1 ready to record — server up, disk free?"
  • "Start a 5-minute recording on mea-1." — proposed for your approval.
  • "What claims do we have about cortical organoids?"

Habitat — fluidics

Read status & telemetry

Tool What it does
habitat_check_system_ready Is the rig ready to actuate? ready plus blocking reasons (drivers not ready, emergency active, faulted pump, stale heartbeat).
habitat_get_rig_status Cached status descriptor — device/API health, safety state, pump count/faults, pending jobs.
habitat_get_pump_status Per-pump snapshot and which pumps are faulted.
habitat_get_pump_diagnostics Live per-pump diagnostic (encoder / registers), run as a background read job.
habitat_get_pump_activity Action log over a window — what the pumps did (dispenses, primes, feeds, failures), with level / action / failed_only filters.
habitat_get_sensor_latest · habitat_get_sensor_history · habitat_get_sensor_stats Latest / windowed / summarized CO₂ · temperature · humidity.

Run operations (human-approved)

Tool What it does
habitat_run_operation Propose a vetted fluidics op — dispense, prime, feed, wash, perfuse, sterilize, pump / valve / peristaltic primitives, and more (habitat_list_operations returns the live set).
habitat_run_experiment Author a bespoke plan by chatting with the cloud authoring agent; it validates against a mock rig, then hands it to you to approve.
habitat_emergency_stop Panic button — halts every pump immediately, no approval wait.
habitat_ask_educator Ask a conceptual question about operations, errors, or microfluidics / cell-culture concepts. Read-only.

MaxWell MEA — electrophysiology

Read status

Tool What it does
ephys_check_system_ready Is the MaxWell rig ready to actuate (mxwserver listening, not busy, disk free, no emergency)? A necessary-but-not-sufficient cached check.
ephys_get_device_info Device identity — device_kind, version, num_wells, sampling_rate_hz, chip_id, free disk.
ephys_get_rig_status Cached status descriptor (device kind, chip id, well count, disk free, mxwserver up/down).
ephys_get_mxwserver_status Is the MaxWell server listening, and its version.
ephys_get_smartplug_status The rig's mains-power (smart plug) state.

Run operations (human-approved)

Tool What it does
ephys_run_operation Propose a canned rig op — start_recording, activity_scan, select_electrodes, system_on, system_off, emergency_clear (ephys_list_operations returns the live set).
ephys_run_experiment Author a bespoke MaxWell experiment with the cloud authoring agent; it dummy-validates the script, then hands it to you to approve.
ephys_emergency_stop Panic button — stops acquisition/stimulation and cuts the rig's mains power immediately.
ephys_ask_educator Ask a conceptual question about recordings, activity scans, stimulation, or MEA hardware. Read-only.

Recurring schedules

Tool What it does
ephys_create_schedule Arm a recurring canned op — e.g. record 5 min every hour for 24 h. Bounded by an end time and/or max occurrences. Because this arms unattended future actuation, it requires a standing delegation you grant ahead of time (ocs approval delegate --hardware ephys --tier schedule --mode always) — you can't self-authorize recurring runs in the moment.
ephys_list_schedules · ephys_cancel_schedule List your recurring schedules; cancel one (revokes its grant so no further occurrences fire).

Delegate deliberately

A standing --mode always delegation lets an agent actuate hardware unattended for the life of the grant. Grant it only when you mean to, scope it to the specific hardware and window, and revoke it when the run is done (ephys_cancel_schedule stops an individual schedule).

Analysis & data

Beyond driving instruments, the connector exposes tools for analyzing recordings and querying what you know — aimed at data analysis, not hardware control. These are read-oriented; committing a claim requires knowledge-graph writes to be enabled for your tenant.

Spike analysis (SpikeLab)

Tool What it does
spikelab_list_tools List the deterministic SpikeLab analysis primitives you can run.
spikelab_run, spikelab_result Run a primitive (non-blocking → job_id) and poll for its result. Pass a stable workspace_id to accumulate state so steps (load → curate → compute) build on each other.
spikelab_create_thread, spikelab_send Open a SpikeLab session — educator (Q&A), sorter (spike sorting), or analyzer (pipelines + figures) — and converse with it.

Ask your data

Tool What it does
analysis_create_thread, analysis_send Open a general analysis session and ask it to run an analysis or produce a figure.
graph_ask Ask a natural-language question about your knowledge graph; a graph-librarian agent answers, grounded on the graph, with citations.
search_graph Free-text search across claims, recordings, analysis workspaces, samples, and more.

Recordings, claims & provenance

Tool What it does
find_recordings Find recordings by modality, probe, origin, or reference — your own plus the shared global pool.
recording_windows The timing windows a recording carries — task/trial, stimulation, drug exposure, treatment, media, environment.
recording_treatment_history How a culture was fed and treated leading up to a recording (media-state chain + fluidics schedule).
find_claims, find_claims_by_sample, get_claim Browse and read hypotheses / insights, optionally scoped to a cell line or model system.
draft_claim, author_claim Propose a claim (validate only) or commit one to your tenant's graph. Promotions are recorded as requests, never auto-approved.
provenance Trace a derived result back to the recordings it came from.

Bring data in

Tool What it does
upload_recording_init Start a recording upload — returns presigned S3 URLs; bytes go straight to S3, never through the connector.

Other MCP clients

The same server works with any MCP client — for example Claude Desktop or Claude Code — by adding https://app.openculture.ai/mcp as a custom / remote MCP server and signing in with your Open Culture account.

Prefer to call the API yourself?

If you're building your own agent rather than using these tools, drive the Habitat REST API directly — see the From code examples.