← WebMCP Directory

Tool tree

flylab-neuroethology.d-lougen.chatgpt.site

Health & EducationTools verified
Website
An agent-first WebMCP virtual Drosophila lab with typed site tools, reproducible experiments, source-backed circuits, and a visible operator audit surface.
Explore capabilities
    inspect_flylab_stateAnswer

    Read the current shared FlyLab page state before starting or resuming work. Returns the state revision, artifact IDs, exact next valid action, blockers, the visible non-WebMCP review gate, and the complete tool pipeline. It does not modify the page.

    View tool JSON
    {
      "name": "inspect_flylab_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the current shared FlyLab page state before starting or resuming work. Returns the state revision, artifact IDs, exact next valid action, blockers, the visible non-WebMCP review gate, and the complete tool pipeline. It does not modify the page.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "page": "/"
    }
    find_fly_circuitsAnswer

    Search FlyLab's curated adult Drosophila evidence and embodied motor-map index by behavior, body part, circuit, or neuron name. Use before drafting a hypothesis. Returns stable circuit IDs, typed brain-to-body paths, citations, model-readiness boundaries, and explicit evidence labels; it does not run a simulation.

    View tool JSON
    {
      "name": "find_fly_circuits",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search FlyLab's curated adult Drosophila evidence and embodied motor-map index by behavior, body part, circuit, or neuron name. Use before drafting a hypothesis. Returns stable circuit IDs, typed brain-to-body paths, citations, model-readiness boundaries, and explicit evidence labels; it does not run a simulation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "page_session_id": {
            "type": "string",
            "minLength": 9,
            "maxLength": 80,
            "description": "Exact page_session_id returned by inspect_flylab_state for this open FlyLab page."
          },
          "expected_state_revision": {
            "type": "integer",
            "minimum": 1,
            "description": "Exact state revision returned by the most recent inspect or successful mutation."
          },
          "query": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1000,
            "description": "Behavior, circuit, neuron type, complete mission prompt, or scientific question to search."
          },
          "behavior": {
            "type": "string",
            "enum": [
              "backward_walking",
              "retreat",
              "forward_walking",
              "turning",
              "short_mode_escape",
              "grooming",
              "any"
            ],
            "default": "any"
          },
          "body_part": {
            "type": "string",
            "enum": [
              "left_foreleg",
              "right_foreleg",
              "left_midleg",
              "right_midleg",
              "left_hindleg",
              "right_hindleg",
              "left_wing",
              "right_wing",
              "any"
            ],
            "default": "any"
          },
          "evidence_labels": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "measured",
                "derived",
                "connectome_inferred",
                "simulation_predicted",
                "agent_hypothesized"
              ]
            },
            "minItems": 1,
            "maxItems": 5,
            "uniqueItems": true
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "default": 8,
            "description": "Minimum top-k cutoff. Every candidate tied at the cutoff score is retained, so the returned candidate count may exceed this value."
          }
        },
        "required": [
          "page_session_id",
          "expected_state_revision",
          "query"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    draft_fly_hypothesisAction

    Create a visible, editable and falsifiable hypothesis from a selected circuit and discovered evidence. At least one cited role=hypothesis_support record must have kind=perturbation_effect matching the requested perturbation and behavior; structural, inventory, and motor-context records are supplemental only. Returns an agent_hypothesized record and does not run a simulation.

    View tool JSON
    {
      "name": "draft_fly_hypothesis",
      "kind": "act",
      "impl": "imperative",
      "description": "Create a visible, editable and falsifiable hypothesis from a selected circuit and discovered evidence. At least one cited role=hypothesis_support record must have kind=perturbation_effect matching the requested perturbation and behavior; structural, inventory, and motor-context records are supplemental only. Returns an agent_hypothesized record and does not run a simulation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "page_session_id": {
            "type": "string",
            "minLength": 9,
            "maxLength": 80,
            "description": "Exact page_session_id returned by inspect_flylab_state for this open FlyLab page."
          },
          "expected_state_revision": {
            "type": "integer",
            "minimum": 1,
            "description": "Exact state revision returned by the most recent inspect or successful mutation."
          },
          "circuit_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "claim": {
            "type": "string",
            "minLength": 10,
            "maxLength": 500
          },
          "predicted_behavior": {
            "type": "string",
            "enum": [
              "backward_walking",
              "retreat",
              "forward_walking",
              "turning",
              "short_mode_escape",
              "grooming"
            ]
          },
          "perturbation": {
            "type": "string",
            "enum": [
              "activate",
              "silence"
            ]
          },
          "primary_outcome": {
            "type": "string",
            "enum": [
              "backward_distance_mm",
              "signed_speed_mm_s",
              "response_latency_ms",
              "heading_change_deg",
              "stance_stability",
              "short_mode_escape_probability",
              "vertical_displacement_mm",
              "wing_recruitment",
              "leg_recruitment"
            ],
            "description": "Stable simulation metric ID used as the hypothesis primary outcome."
          },
          "expected_direction": {
            "type": "string",
            "enum": [
              "increase",
              "decrease"
            ]
          },
          "controls": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "condition_baseline",
                "condition_sham"
              ]
            },
            "minItems": 2,
            "maxItems": 2,
            "uniqueItems": true,
            "description": "Must include the exact baseline and model-sham condition IDs."
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 20,
            "uniqueItems": true,
            "description": "Discovered hypothesis-support IDs. Must include at least one perturbation_effect record matching perturbation and predicted_behavior; structural, inventory, and motor-context IDs may only supplement it."
          },
          "evidence_limitations": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 5,
              "maxLength": 300
            },
            "minItems": 1,
            "maxItems": 10,
            "uniqueItems": true,
            "description": "Explicit limits on what the cited evidence and reduced-order model can establish."
          },
          "falsification_criterion": {
            "type": "string",
            "minLength": 5,
            "maxLength": 300
          }
        },
        "required": [
          "page_session_id",
          "expected_state_revision",
          "circuit_id",
          "claim",
          "predicted_behavior",
          "perturbation",
          "primary_outcome",
          "expected_direction",
          "controls",
          "evidence_ids",
          "evidence_limitations",
          "falsification_criterion"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    design_stimulation_trialAction

    Create and display a controlled adult-fly perturbation protocol for a saved hypothesis. Returns baseline, sham and perturbation conditions, visible effective-drive derivations, timing, seeds and model assumptions; operator approval is still required before execution.

    View tool JSON
    {
      "name": "design_stimulation_trial",
      "kind": "act",
      "impl": "imperative",
      "description": "Create and display a controlled adult-fly perturbation protocol for a saved hypothesis. Returns baseline, sham and perturbation conditions, visible effective-drive derivations, timing, seeds and model assumptions; operator approval is still required before execution.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "page_session_id": {
            "type": "string",
            "minLength": 9,
            "maxLength": 80,
            "description": "Exact page_session_id returned by inspect_flylab_state for this open FlyLab page."
          },
          "expected_state_revision": {
            "type": "integer",
            "minimum": 1,
            "description": "Exact state revision returned by the most recent inspect or successful mutation."
          },
          "hypothesis_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "target_circuit_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "perturbation": {
            "type": "string",
            "enum": [
              "activate",
              "silence"
            ]
          },
          "laterality": {
            "type": "string",
            "enum": [
              "bilateral",
              "left",
              "right"
            ]
          },
          "activation_level": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "Unitless simulation control; not biological light power."
          },
          "onset_ms": {
            "type": "integer",
            "minimum": 0,
            "maximum": 5000
          },
          "duration_ms": {
            "type": "integer",
            "minimum": 50,
            "maximum": 5000
          },
          "trial_duration_ms": {
            "type": "integer",
            "minimum": 1000,
            "maximum": 10000
          },
          "replicates": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "default": 5
          },
          "include_baseline": {
            "type": "boolean",
            "const": true,
            "default": true,
            "description": "Required for the controlled FlyLab vertical slice."
          },
          "include_sham_control": {
            "type": "boolean",
            "const": true,
            "default": true,
            "description": "Required for the controlled FlyLab vertical slice."
          },
          "seed": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2147483647
          }
        },
        "required": [
          "page_session_id",
          "expected_state_revision",
          "hypothesis_id",
          "target_circuit_id",
          "perturbation",
          "laterality",
          "activation_level",
          "onset_ms",
          "duration_ms",
          "trial_duration_ms",
          "replicates",
          "include_baseline",
          "include_sham_control",
          "seed"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    run_fly_simulationAction

    Execute one approved, bounded FlyLab experiment and make exact seeded runs replayable in the shared arena. The caller must echo the approved_protocol_hash from the visible operator gate; any protocol or seed-manifest change revokes authorization. Returns effective-drive derivations, state/event timelines, complete per-run trajectories, model/controller identities, legacy lineage hash, and SHA-256 content hash with field-level attribution.

    View tool JSON
    {
      "name": "run_fly_simulation",
      "kind": "act",
      "impl": "imperative",
      "description": "Execute one approved, bounded FlyLab experiment and make exact seeded runs replayable in the shared arena. The caller must echo the approved_protocol_hash from the visible operator gate; any protocol or seed-manifest change revokes authorization. Returns effective-drive derivations, state/event timelines, complete per-run trajectories, model/controller identities, legacy lineage hash, and SHA-256 content hash with field-level attribution.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "page_session_id": {
            "type": "string",
            "minLength": 9,
            "maxLength": 80,
            "description": "Exact page_session_id returned by inspect_flylab_state for this open FlyLab page."
          },
          "expected_state_revision": {
            "type": "integer",
            "minimum": 1,
            "description": "Exact state revision returned by the most recent inspect or successful mutation."
          },
          "experiment_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "approved_protocol_hash": {
            "type": "string",
            "minLength": 71,
            "maxLength": 71,
            "pattern": "^sha256:[a-f0-9]{64}$",
            "description": "Exact protocol hash returned after visible operator approval and exposed by inspect_flylab_state."
          },
          "operation_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "description": "Stable caller-generated ID for one logical simulation operation. Retry the same operation with the same ID."
          }
        },
        "required": [
          "page_session_id",
          "expected_state_revision",
          "experiment_id",
          "approved_protocol_hash",
          "operation_id"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    analyze_fly_behaviorAction

    Compute and save the selected motor map's complete five-metric panel from summaries derived from each run's authoritative state trajectory. The required metric IDs are returned on the circuit motor map and simulation batch. The shared arena can replay the exact selected seeded run; a legacy condition illustration remains compatibility-only and excluded from analysis. Outputs are not wet-lab evidence.

    View tool JSON
    {
      "name": "analyze_fly_behavior",
      "kind": "act",
      "impl": "imperative",
      "description": "Compute and save the selected motor map's complete five-metric panel from summaries derived from each run's authoritative state trajectory. The required metric IDs are returned on the circuit motor map and simulation batch. The shared arena can replay the exact selected seeded run; a legacy condition illustration remains compatibility-only and excluded from analysis. Outputs are not wet-lab evidence.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "page_session_id": {
            "type": "string",
            "minLength": 9,
            "maxLength": 80,
            "description": "Exact page_session_id returned by inspect_flylab_state for this open FlyLab page."
          },
          "expected_state_revision": {
            "type": "integer",
            "minimum": 1,
            "description": "Exact state revision returned by the most recent inspect or successful mutation."
          },
          "batch_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "metrics": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "backward_distance_mm",
                "signed_speed_mm_s",
                "response_latency_ms",
                "heading_change_deg",
                "stance_stability",
                "short_mode_escape_probability",
                "vertical_displacement_mm",
                "wing_recruitment",
                "leg_recruitment"
              ]
            },
            "minItems": 5,
            "maxItems": 5,
            "uniqueItems": true,
            "description": "The complete five-metric panel declared by the selected circuit motor map; partial or mixed panels are rejected."
          }
        },
        "required": [
          "page_session_id",
          "expected_state_revision",
          "batch_id",
          "metrics"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    compare_fly_trialsAction

    Rank conditions from one or more saved analyses against a behavioral objective and create one bounded next-experiment proposal. It never executes the proposal automatically.

    View tool JSON
    {
      "name": "compare_fly_trials",
      "kind": "act",
      "impl": "imperative",
      "description": "Rank conditions from one or more saved analyses against a behavioral objective and create one bounded next-experiment proposal. It never executes the proposal automatically.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "page_session_id": {
            "type": "string",
            "minLength": 9,
            "maxLength": 80,
            "description": "Exact page_session_id returned by inspect_flylab_state for this open FlyLab page."
          },
          "expected_state_revision": {
            "type": "integer",
            "minimum": 1,
            "description": "Exact state revision returned by the most recent inspect or successful mutation."
          },
          "analysis_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 8,
            "uniqueItems": true
          },
          "objective_metric": {
            "type": "string",
            "enum": [
              "backward_distance_mm",
              "signed_speed_mm_s",
              "response_latency_ms",
              "heading_change_deg",
              "stance_stability",
              "short_mode_escape_probability",
              "vertical_displacement_mm",
              "wing_recruitment",
              "leg_recruitment"
            ]
          },
          "objective": {
            "type": "string",
            "enum": [
              "maximize",
              "minimize"
            ]
          }
        },
        "required": [
          "page_session_id",
          "expected_state_revision",
          "analysis_ids",
          "objective_metric",
          "objective"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    save_fly_evidenceAction

    Commit a complete FlyLab hypothesis, experiment, runs, analyses, comparison, citations, model versions and seeds to the visible browser-local evidence ledger. Verifies the simulation content hash and returns stable bundle metadata, the exact portable evidence-export envelope, its manifest hash, media type, and published JSON Schema URL.

    View tool JSON
    {
      "name": "save_fly_evidence",
      "kind": "act",
      "impl": "imperative",
      "description": "Commit a complete FlyLab hypothesis, experiment, runs, analyses, comparison, citations, model versions and seeds to the visible browser-local evidence ledger. Verifies the simulation content hash and returns stable bundle metadata, the exact portable evidence-export envelope, its manifest hash, media type, and published JSON Schema URL.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "page_session_id": {
            "type": "string",
            "minLength": 9,
            "maxLength": 80,
            "description": "Exact page_session_id returned by inspect_flylab_state for this open FlyLab page."
          },
          "expected_state_revision": {
            "type": "integer",
            "minimum": 1,
            "description": "Exact state revision returned by the most recent inspect or successful mutation."
          },
          "scope": {
            "type": "string",
            "enum": [
              "experiment",
              "mission"
            ],
            "description": "experiment saves the exact selected lineage; mission additionally preserves the goal, discovery decision, alternatives, exclusions, and coverage gaps."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "description": "Optional caller-entered administrative title. Omit it to use FlyLab system metadata; it is never scientific evidence."
          },
          "hypothesis_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "experiment_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "batch_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 1,
            "uniqueItems": true
          },
          "analysis_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "minItems": 1,
            "maxItems": 8,
            "uniqueItems": true
          },
          "comparison_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "note": {
            "type": "string",
            "maxLength": 500
          },
          "operation_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "description": "Stable caller-generated ID for one logical evidence-save operation. Retry the same operation with the same ID."
          }
        },
        "required": [
          "page_session_id",
          "expected_state_revision",
          "scope",
          "hypothesis_id",
          "experiment_id",
          "batch_ids",
          "analysis_ids",
          "comparison_id",
          "operation_id"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }