VirtualFlyBrain
REMOTE · VFB3-MCP.VIRTUALFLYBRAIN.ORG · SCANNED SEP 27
MCP server for Drosophila neuroscience data from VirtualFlyBrain
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security46
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 11 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS check failed: the endpoint is reachable over plaintext HTTP. See how to fix → View diagnostics → Fail
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability62
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 4834 tokens (~439/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the VirtualFlyBrain MCP server?
VirtualFlyBrain is a hosted endpoint at https://vfb3-mcp.virtualflybrain.org/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · vfb3-mcp.virtualflybrain.org
claude mcp add --transport http org-virtualflybrain-vfb3-mcp 'https://vfb3-mcp.virtualflybrain.org/'
{
"mcpServers": {
"org-virtualflybrain-vfb3-mcp": {
"url": "https://vfb3-mcp.virtualflybrain.org/"
}
}
} {
"servers": {
"org-virtualflybrain-vfb3-mcp": {
"type": "http",
"url": "https://vfb3-mcp.virtualflybrain.org/"
}
}
} [mcp_servers.org-virtualflybrain-vfb3-mcp] url = "https://vfb3-mcp.virtualflybrain.org/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"org-virtualflybrain-vfb3-mcp": {
"type": "remote",
"url": "https://vfb3-mcp.virtualflybrain.org/",
"enabled": true
}
}
} openclaw mcp add org-virtualflybrain-vfb3-mcp --url 'https://vfb3-mcp.virtualflybrain.org/' --transport streamable-http
mcp_servers:
org-virtualflybrain-vfb3-mcp:
url: "https://vfb3-mcp.virtualflybrain.org/" {
"McpServers": {
"org-virtualflybrain-vfb3-mcp": {
"Transport": "http",
"Url": "https://vfb3-mcp.virtualflybrain.org/"
}
}
} assistant mcp add org-virtualflybrain-vfb3-mcp -t streamable-http -u 'https://vfb3-mcp.virtualflybrain.org/'
{
"mcpServers": {
"org-virtualflybrain-vfb3-mcp": {
"type": "http",
"url": "https://vfb3-mcp.virtualflybrain.org/"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 10 Sept 26 0
- Tool “query_connectivity” rewrote its description, which is the text the model reads security
- Schema quality: 4005 → 4834 ▼ functional
- Server version: 1.11.1 → 1.11.2 functional
- New tool “get_known_neurotransmitters” functional
- New tool “get_predicted_neurotransmitters” functional
- “query_connectivity” reworded the description of “group_by_class” cosmetic
- 26 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 0
- Stability: 0.97 → pass security
- 23 Aug 26 0
- HTTPS: unverified → fail ▼ security
- 22 Aug 26 0
- HTTPS: fail → unverified ▼ security
- 17 Aug 26 0
- Server version: 1.11.0 → 1.11.1 functional
- 11 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 27 Sept 2026 · Probed https://vfb3-mcp.virtualflybrain.org
TLS valid
Negotiated TLS 1.3 with TLS_AES_256_GCM_SHA384 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=virtualflybrain.org | CN=YR1,O=Let's Encrypt,C=US | 19 Sept 2026 | 18 Dec 2026 | RSA 2048 | SHA256-RSA | 55a7df55cca0635334c4b23fe8f067b39cf |
| SANs: abd1.5.catmaid.virtualflybrain.org, aligner.virtualflybrain.org, api.ids.virtualflybrain.org, api.virtualflybrain.org, backend.virtualflybrain.org, braintrap.inf.ed.ac.uk, braintrap.virtualflybrain.org, buttermilk.virtualflybrain.org, catmaid-fafb.virtualflybrain.org, catmaid.virtualflybrain.org, cayenne.virtualflybrain.org, chat.virtualflybrain.org and 87 more | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of vfb3-mcp.virtualflybrain.org. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| org. | present | 26974 | 8 | Verified |
| virtualflybrain.org. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://vfb3-mcp.virtualflybrain.org | Verified | 200 | |
| http (plaintext) | http://vfb3-mcp.virtualflybrain.org | Served over HTTP | 200 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
get_hierarchy ~263
Build a hierarchy tree for a VFB term, showing ancestors (parents) and/or descendants (children). Use relationship "part_of" for brain region structure (e.g. "what are the parts of the mushroom body?") and "subclass_of" for cell type hierarchies (e.g. "what types of Kenyon cell are there?"). Descendants are returned as a nested tree for both relationship types. Ancestors are returned as a nested chain, filtered to nervous system terms for part_of. Start with max_depth=1 for direct parents/children, and offer to go deeper if the user wants more detail.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | – | Which direction to explore (default: "both") |
| id | string | yes | VFB term ID (e.g. FBbt_00005801 for mushroom body, FBbt_00003686 for Kenyon cell) |
| max_depth | number | – | Number of levels to expand. 1 = direct children/parents only. Higher values go deeper. -1 = full tree (use with caution on broad terms). Default: 1. |
| relationship | string | yes | Type of hierarchy: "part_of" for brain region structure, "subclass_of" for cell type taxonomies |
No output schema declared.
No examples provided.
get_known_neurotransmitters ~229
Get the KNOWN (curated) neurotransmitter(s) for a Drosophila neuron class and its subclasses, from the ontology's classification rather than per-instance predictions — so there is no confidence. Use this for "what neurotransmitter is <cell type> known to use?" when you want the curated/established answer. Returns one row per (cell type, neurotransmitter): {cell_type_id, cell_type, nt_id, nt_label}, where the neurotransmitter is a GO secretion term (same id space as get_predicted_neurotransmitters). Empty when the ontology asserts none — in that case try get_predicted_neurotransmitters for the data-driven prediction. CONSTRAINTS: neuron class terms only (FBbt id or label); use search_terms with filter_types ["neuron","class"] to canonicalize.
| Name | Type | Req | Description |
|---|---|---|---|
| neuron_type | string | yes | Neuron class — OWL ID (e.g. "FBbt_00003797") or label (e.g. "Tm9"). Means the class and all of its subclasses. |
No output schema declared.
No examples provided.
get_predicted_neurotransmitters ~476
Get the PREDICTED neurotransmitter(s) for a Drosophila neuron class — itself or any subclass — from per-instance connectome predictions (each reconstructed neuron carries a predicted transmitter with a confidence). Use this for "what neurotransmitter does <cell type> use?" when you want the data-driven prediction and its confidence. By default results are aggregated to flat per-class rows (one per cell type × neurotransmitter) with instance counts, percent_of_class and mean_confidence; set aggregate=false for one row per individual neuron. Set split_by_dataset=true to get one row per (cell type, neurotransmitter, dataset) so you can see agreement across connectomes. The neurotransmitter is reported as a GO secretion term (nt_id/nt_label), the same id space as get_known_neurotransmitters. This is distinct from get_known_neurotransmitters, which returns the ontology-curated classification without confidence. CONSTRAINTS: neuron class terms only (FBbt id or label); use search_terms with filter_types ["neuron","class"] to canonicalize. RECOMMENDED: exclude_dbs defaults to ["hb","fafb"]; pass [] for all datasets.
| Name | Type | Req | Description |
|---|---|---|---|
| aggregate | boolean | – | If true (default), aggregate to flat per-class rows {cell_type_id, cell_type, nt_id, nt_label, instances, percent_of_class, mean_confidence}. If false, return one row per individual neuron {..., neur… |
| exclude_dbs | array | – | Dataset symbols to exclude (default ["hb","fafb"]). Pass [] to include all datasets. Same symbols as query_connectivity / list_connectome_datasets. |
| min_confidence | number | – | Drop predictions below this confidence (0..1). Default 0 (keep all). |
| neuron_type | string | yes | Neuron class — OWL ID (e.g. "FBbt_00003797") or label (e.g. "Tm9"). Means the class and all of its subclasses. |
| split_by_dataset | boolean | – | If true (aggregate only), emit one row per (cell type, neurotransmitter, dataset) with a dataset column, so cross-connectome agreement is visible. Default false aggregates over all included datasets. |
No output schema declared.
No examples provided.
get_term_info ~364
Get term info for a VFB or anatomy ontology entity (VFB_*, FBbt_*, etc.). THIS IS THE QUERY DISCOVERY TOOL: the response's "Queries" array lists the valid query_type values that run_query accepts for this entity. ALWAYS call get_term_info before run_query unless you already obtained the query_type from a previous get_term_info call in this conversation. Returns: SuperTypes (classification), Tags (data flags like has_image, has_neuron_connectivity), Queries (valid query_types for run_query), RelatedTools (other MCP tools applicable to this entity, with default_args ready to copy — e.g. get_hierarchy with subclass_of for cell types or part_of for nervous-system regions), Images (keyed by template brain ID), Publications, Synonyms. Supports batch — pass an array of IDs to fetch in parallel; batch results are returned as a JSON object keyed by ID. To build VFB browser URLs from the Images field: https://v2.virtualflybrain.org/org.geppetto.frontend/geppetto?id=<VFB_ID>&i=<TEMPLATE_ID>,<IMAGE_ID1>,<IMAGE_ID2> — id= sets the focus term and i= lists images for the 3D viewer (template ID must be first in i= to set the coordinate space).
| Name | Type | Req | Description |
|---|---|---|---|
| force_refresh | boolean | – | Bypass the response cache and recompute this result. Expensive — leave it unset on a first call. Set it ONLY to re-try a call that, earlier in this same conversation, returned a result that was clear… |
| id | – | yes | One or more VFB IDs to look up |
No output schema declared.
No examples provided.
list_connectome_datasets ~69
List available connectome datasets with their labels and symbols. Use the returned symbols when constructing exclude_dbs arguments for query_connectivity. Common datasets include Hemibrain (hb), FAFB (fafb), MANC, and others. Call this tool if unsure which dataset symbols are valid.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_search_facets ~166
List the type names search_terms can filter, exclude, boost or demote by, with the number of terms carrying each one. Call this instead of guessing: there are over 200 names, they are the index's own annotations rather than a curated list, and they change as data is added. Use contains to narrow (e.g. contains="lineage" for the ~120 lineage clones, contains="connectivity" to find the connectome facets). The counts tell you whether a name is broad or niche — "entity" covers everything, a single lineage covers a handful.
| Name | Type | Req | Description |
|---|---|---|---|
| contains | string | – | Only return type names containing this text. Matched case- and separator-insensitively, so "nervous system" finds "Nervous_system". |
No output schema declared.
No examples provided.
query_connectivity ~991
Query synaptic connectivity between Drosophila neuron classes across ALL connectome datasets simultaneously for comparative connectomics. This is NOT pre-cached — it runs live queries, so expect slow responses (up to several minutes). Set both upstream_type AND downstream_type to filter connections between two specific neuron classes (e.g., "What Tm1→T3 connections exist across all datasets?"). At least one of upstream_type or downstream_type is required. CONSTRAINTS: Only accepts neuron class terms (OWL IDs like FBbt_00003789 or labels like "transmedullary neuron Tm1") — anatomical regions or neuropils (e.g., "lobula", "medulla") are NOT accepted. NOT suitable for individual neuron-to-neuron connections — for pre-computed connections of a single individual neuron, use run_query with NeuronNeuronConnectivityQuery instead. NOT for muscle/sense organ connections. RECOMMENDED DEFAULTS: weight=5, exclude_dbs=["hb","fafb"] unless user specifies otherwise. For both-ends queries, start with weight≥50 to avoid timeouts. RESULT SIZE: a broad query is enormous (a single class at weight=5 can be over 50,000 connections), so results are ranked strongest-first and paged — you get limit rows (default 50) plus a summary computed over ALL of them: totals, per-dataset counts, distinct neuron counts, and the top class pairs. Answer from the summary and quote a handful of rows; only page with offset if the user asks for specific further rows. WORKFLOW: Confirm parameters with user before querying. Use search_terms with filter_types ["neuron","class"] to validate/canonicalize neuron type labels. If zero results, try relaxation: lower weight to 1, then remove exclude_dbs filter, then try group_by_class=true — report what worked and let user decide. group_by_class=true is usually the better first call on a broad query: it rolls the connections up over the subclass hierarchy — a row per (upstream level, downstream level) with data, up to the queried term(s) — instead of returning every n…
| Name | Type | Req | Description |
|---|---|---|---|
| downstream_type | string | – | Downstream (postsynaptic) neuron class — OWL ID or full label. Must be a neuron type/class, NOT an anatomical region. If user asks about connectivity to a brain region, first find neuron classes in t… |
| exclude_dbs | array | – | Dataset symbols to exclude (recommended default: ["hb", "fafb"] to focus on newer datasets). Pass empty array [] to include all datasets. Must be the exact `symbol` field from list_connectome_dataset… |
| group_by_class | boolean | – | If true, aggregate by class rolled up over the subclass hierarchy: a row appears for the queried class AND each subclass with data (a connection counts toward every ancestor pair up to the queried te… |
| limit | number | – | How many connection rows to return, strongest first (default 50). The summary always covers every connection found, not just the returned rows. Pass 0 for all rows — only do this on a query you alrea… |
| offset | number | – | Row to start from within the strongest-first ranking (default 0). Re-running with the same limit and the next offset walks down the list. |
| upstream_type | string | – | Upstream (presynaptic) neuron class — OWL ID (e.g., "FBbt_00003789") or full label (e.g., "transmedullary neuron Tm1"). Must be a neuron type/class, NOT an anatomical region. Use search_terms with fi… |
| weight | number | – | Minimum synapse count threshold (recommended default: 5). Lower to 1 if initial query returns zero results as first relaxation step. |
No output schema declared.
No examples provided.
resolve_combination ~218
Resolve an unresolved split-GAL4 combination name or synonym into its FBco ID and component hemidrivers. Pass the raw combination text exactly as the user wrote it (for example "MB002B" or "SS04495"). Do NOT pass an FBco ID; if you already have one, use the downstream tool directly. Uses tiered resolution: exact name → synonym → broad pattern match. Returns FBco ID, combination name, matched synonym (if applicable), and component allele IDs/names. IMPORTANT: When match is via synonym, confirm the resolved combination with the user before proceeding (e.g., "Your search for 'MB002B' matched [formal name] (FBco...) via synonym. Shall I proceed?"). If multiple matches, show disambiguation list and ask user to choose.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Unresolved split-GAL4 combination name or synonym exactly as written by the user (e.g., "MB002B", "SS04495"). Do NOT pass an FBco ID here. |
No output schema declared.
No examples provided.
resolve_entity ~311
Resolve an unresolved FlyBase-related query string into VFB/FlyBase IDs and metadata. Pass the raw text exactly as the user wrote it (for example "P{VT054895-GAL4.DBD}", "Hb9-GAL4", "SS04495", "MB002B", "PAM cluster", or "dpp"). Do NOT pass resolved IDs such as FBgn/FBal/FBti/FBco/FBst or VFB IDs; if you already have an ID, use the downstream tool directly. Uses tiered resolution: exact name → synonym → broad pattern match. Returns match_type (EXACT/SYNONYM/BROAD), feature ID, name, type, and synonyms. IMPORTANT: When match_type is SYNONYM or BROAD, always confirm the resolved entity with the user before proceeding to further queries. If multiple matches are returned, show a disambiguation list and ask the user to choose. This tool queries FlyBase Chado — for VFB ontology lookups (anatomical terms, neuron class IDs) use search_terms instead.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Unresolved FlyBase-related query string from the user. Pass the raw name/synonym exactly as written (e.g., "P{VT054895-GAL4.DBD}", "Hb9-GAL4", "SS04495", "MB002B", "PAM cluster", "dpp"). Do NOT pass… |
No output schema declared.
No examples provided.
run_query ~881
Run a pre-computed query on a VFB entity. REQUIRED WORKFLOW: (1) call get_term_info on the ID first; (2) read the response's "Queries" array; (3) pass one of those values as query_type. Calling run_query with a guessed query_type will return an error. If a query returns empty rows or an error, the entity does not support that query_type or has no data for it — try a different query_type from the Queries array, or try a related entity (e.g. its parent class via get_hierarchy). Empty results do NOT mean the answer is unknown — only that this call did not return it. NEVER fabricate results from training data when a query is empty; tell the user clearly what was tried. NEVER pass tool names like "get_term_info" or "search_terms" as query_type — those are separate tools. Common query_types by entity kind: PaintedDomains, AllAlignedImages, AlignedDatasets, AllDatasets (templates); SimilarMorphologyTo, NeuronInputsTo, NeuronNeuronConnectivityQuery, NeuronRegionConnectivityQuery (individual neurons); ListAllAvailableImages, SubclassesOf, PartsOf, NeuronsPartHere, NeuronsSynaptic, ExpressionOverlapsHere, DownstreamClassConnectivity, UpstreamClassConnectivity (classes). Supports batch — pass an array of IDs (same query_type) or a "queries" array of {id, query_type} pairs; batch results are keyed by "ID::query_type". Results are PAGED: the first 25 rows by default (change with limit/offset) plus the true total as "count". ALWAYS read "count_status" before quoting "count": "exact" means count is the true total; "unavailable" means the query FAILED upstream and count is -1, which is NOT zero and must never be reported as "no results" — read "_note" and tell the user the query could not be run. Image/thumbnail columns are excluded by default to save space - pass include_images=true to include them. FlyBase integration is via query_types too: FindStocks (fly stocks for a FlyBase feature ID - FBgn/FBal/FBti/FBtp/FBco/FBst) and FindComboPublications (publications for an FBco split-…
| Name | Type | Req | Description |
|---|---|---|---|
| force_refresh | boolean | – | Bypass the response cache and recompute this result. Expensive — leave it unset on a first call. Set it ONLY to re-try a call that, earlier in this same conversation, returned a result that was clear… |
| id | – | – | One or more VFB IDs to query |
| include_images | boolean | – | Include the image/thumbnail column in result rows. Default false: the thumbnail is a long markdown image string that is rarely useful to reason over and greatly inflates every row, so it is stripped… |
| limit | number | – | Max rows returned per call (default 25). The true total is always returned as "count"; broad queries (e.g. ListAllAvailableImages, or NeuronsSynaptic on a whole region) can have thousands to hundreds… |
| offset | number | – | Row offset for paging (default 0). To get the next page, re-run with offset increased by limit; "count" gives the total. |
| queries | array | – | Array of {id, query_type} pairs for mixed batch queries. When provided, id and query_type params are ignored. |
| query_type | string | – | A valid query type from the Queries array returned by get_term_info. Used for single id or array of ids. |
No output schema declared.
No examples provided.
search_terms ~866
Search VFB terms. This is the search virtualflybrain.org itself runs — the same Solr query, the same ranking — so what comes back first here is what a user would see first on the site. USE filter_types BY DEFAULT. Unfiltered searches mix scRNAseq artifacts and developmental stages in with the entity the user wants. Common filter_types recipes: - Neuron classes: ["neuron", "class"] - Individual neurons with images: ["neuron", "has_image"] - Neurons with connectome data: ["neuron", "has_neuron_connectivity"] - Brain regions / neuropils: ["anatomy"] - Genes: ["gene"] - Driver lines / expression patterns: ["expression_pattern"] - Datasets: ["dataset"] There are over 200 type names and they change as data is added, so do NOT guess them: call list_search_facets to see the current vocabulary (optionally filtered, e.g. contains="lineage"). Names are matched case- and separator-insensitively, and a name that does not exist is an error with suggestions rather than a silently empty result. Deprecated terms are excluded by the search itself — you do not need exclude_types: ["deprecated"], and adding it is harmless but pointless. Stage filtering: VFB covers adult, larval, and embryonic data, and many anatomical FBbt classes are stage-agnostic. Do NOT add "adult" or "larva" to filter_types by default — only add them when the user is explicit about a stage (e.g. "adult Kenyon cells", "larval mushroom body"). Default searches should leave stage out so stage-agnostic classes and all life stages are visible. Useful flags: - unique=true (the default) → one row per term. Turn it OFF only when you need to see WHICH synonym matched; with unique=false a term appears once per matching synonym, so "Kenyon cell" can return the same ID several times. - minimize_results=true → top 10, essential fields only, for exploratory searches. - auto_fetch_term_info=true → if an exact label match is found, returns get_term_info in the same response. - boost_types=["has_image", "has_neuron_connecti…
| Name | Type | Req | Description |
|---|---|---|---|
| auto_fetch_term_info | boolean | – | When true and an exact label match is found, automatically fetch and include term info in the response. |
| boost_types | array | – | Float results matching these facets_annotation types to the top of the ranked list without excluding others |
| demote_types | array | – | Sink results matching these facets_annotation types to the bottom of the ranked list without excluding them. Ignored for a type that also appears in boost_types. |
| exclude_types | array | – | Exclude results matching ANY of these facets_annotation types (OR logic). Deprecated terms are already excluded. |
| filter_types | array | – | Filter results to only include items matching ALL of these facets_annotation types (AND logic). Use list_search_facets for valid names. |
| minimize_results | boolean | – | When true, return at most 10 results with only the essential fields. For exact matches, return only the matching result. |
| query | string | yes | Search query (e.g., medulla) |
| rows | number | – | Number of results to return (default 150, max 1000) - use smaller numbers for focused searches |
| start | number | – | Pagination start index (default 0) - use to get results beyond the first page |
| unique | boolean | – | One row per term (default true). Set false to get a row per matching synonym, which shows WHICH name matched at the cost of repeating IDs. |
No output schema declared.
No examples provided.
What is the VirtualFlyBrain MCP server?
VirtualFlyBrain is an MCP server listed in the public MCP registry as org.virtualflybrain/vfb3-mcp. MCP server for Drosophila neuroscience data from VirtualFlyBrain. This page covers its hosted endpoint (https://vfb3-mcp.virtualflybrain.org).
Is the VirtualFlyBrain MCP server safe to use?
VirtualFlyBrain scores 72 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the VirtualFlyBrain MCP server expose?
VirtualFlyBrain exposes 11 tools: get_term_info, run_query, search_terms, list_search_facets, resolve_entity, and 6 more. Their descriptions and schemas cost roughly 4,834 tokens of context every time the server is loaded.
Does the VirtualFlyBrain MCP server require authentication?
No. We connected to VirtualFlyBrain without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the VirtualFlyBrain MCP server still maintained?
VirtualFlyBrain is still listed as active in the MCP registry. We last reached this channel on 27 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.