Skip to main content
Glama

get_graph_list

Read-only

Get a CSV list of named graphs from a SPARQL endpoint, filtering out system graphs and prioritizing matching database names to identify relevant datasets.

Instructions

Get a list of named graphs on a SPARQL endpoint. ALWAYS pass database (required). Virtuoso/OpenLink internal graphs are filtered out. Graph URIs containing the database substring (case-insensitive) are ranked first — useful when the endpoint hosts multiple databases (e.g. SIB hosts UniProt + Rhea + Bgee + OMA). For a database not yet in the registry, pass endpoint_url (or endpoint_name if its parent endpoint is registered) to bypass database validation; the required database value is then used only as a ranking hint. RETURNS a CSV-formatted list of named graphs (database-name matches first); on missing endpoint selection it returns a string beginning with 'Error:' — check for that prefix before use.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
databaseYesRDF database name (e.g. 'uniprot', 'chembl'). Required. When the name is in the registry it resolves the endpoint URL; in any case the value is used as a case-insensitive substring to rank matching graph URIs first. For an unregistered database, also pass `endpoint_url` or `endpoint_name` (which take priority); `database` is then just the ranking hint.
endpoint_urlNoDirect SPARQL endpoint URL. Use when neither the database nor its parent endpoint name is in the registry.
endpoint_nameNoShort endpoint name (e.g. 'primary', 'sib', 'ebi'). Use when the database is not yet registered but its parent endpoint is.
include_systemNoIf True, include Virtuoso/OpenLink internal graphs (virtrdf, ldp, activitystreams, etc.). Default False — these are never useful for queries.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

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

Beyond the annotations (readOnlyHint and openWorldHint), the description details specific behaviors: internal graphs are filtered out, graph URIs containing the database substring are ranked first, and it returns a CSV list. It also discloses the error response prefix, adding transparency about output format and failure modes.

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

Conciseness5/5

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

The description is front-loaded with purpose, then proceeds to usage constraints, ranking behavior, fallback logic, and return format. Each sentence adds value without redundancy. Though a bit long, the density of relevant information justifies its length.

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 tool with 4 parameters and a complex registry logic, the description covers all necessary context: required input, alternative inputs, ranking behavior, internal graph filtering, and error handling. The presence of an output schema is complemented by the description's explanation of CSV format and 'Error:' prefix, making the tool fully understandable.

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

Parameters5/5

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

The schema descriptions already cover all parameters (100% coverage), but the description adds semantic depth: it explains the dual role of database (validation vs ranking), priority between endpoint_url and endpoint_name, and how include_system affects output. This goes beyond simple schema documentation and helps agents use parameters correctly.

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 clearly states the tool's purpose: 'Get a list of named graphs on a SPARQL endpoint.' It specifies the action (list), the resource (named graphs), and the context (SPARQL endpoint). It also distinguishes from siblings by highlighting endpoint discovery and filtering/ranking behavior, which is unique among the provided tools.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'ALWAYS pass database (required)' and explains when to use endpoint_url vs endpoint_name for unregistered databases, and how database value is used for ranking. It also warns about the 'Error:' prefix in return values, covering both usage conditions and error expectations.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dbcls/togomcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server