Skip to main content
Glama
BaranziniLab

SPOKEAgent

Official
by BaranziniLab

Query SPOKE Biomedical Knowledge Graph

query_spoke
Read-onlyIdempotent

Run read-only Cypher queries against the SPOKE biomedical knowledge graph with automatic safety limits, timeouts, and trimmed output for reliable knowledge inference.

Instructions

Execute a read-only Cypher query on SPOKE for biomedical knowledge inference.

Behaviour built in for you:

  • Only read queries are allowed (writes are rejected).

  • An unbounded, non-aggregate query gets a safety LIMIT appended so it cannot accidentally scan the 43M-node graph; aggregations and queries with your own LIMIT are left as-is.

  • A transaction timeout aborts pathological queries instead of hanging.

  • Output is trimmed (noisy HTML/link fields removed, long strings cut) and capped in size to stay efficient.

Tips: resolve names first with resolve_entity; use the edge_directory from get_spoke_schema to choose relationship types; pass literals via parameters.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
parametersNoQuery parameters, e.g. {"name": "Parkinson's disease"} used as $name in the query. Strongly preferred over inlining literals.
cypher_queryYesA read-only Cypher query. Anchor it on a node resolved via resolve_entity (match by exact name or identifier) and pass string literals through `parameters` rather than inlining them (this avoids case and apostrophe errors, e.g. "Parkinson's disease").

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.0

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial behavioral detail beyond them: writes are rejected, unbounded non-aggregate queries receive an automatic safety LIMIT, a transaction timeout aborts pathological queries, and output is trimmed and capped. This is rich, relevant disclosure for a graph-query tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then organized into behavioral notes and tips. Every part is useful, though the bulleted behavior section is somewhat long relative to the minimal information an agent needs to start using the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, open-ended Cypher query tool with no output schema, the description is complete enough: it covers safety constraints, automatic limits, timeout behavior, and output trimming and capping. It also provides the necessary prerequisites involving resolve_entity and get_spoke_schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already well documented in the input schema. The description repeats the guidance to pass literals via parameters rather than inline them, which adds little beyond the schema's own examples and warnings, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: execute a read-only Cypher query on SPOKE for biomedical knowledge inference. It also distinguishes the tool from siblings by telling the agent to resolve names first with resolve_entity and use get_spoke_schema for relationship guidance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear workflow: resolve names first, consult get_spoke_schema for edge types, and pass literals via parameters. It does not explicitly state when not to use this tool or directly compare it against all siblings, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.