Skip to main content
Glama
openl-tablets

OpenL MCP Server

Official

Get Table Dependencies

openl_get_table_dependencies
Read-onlyIdempotent

Retrieve table dependency graphs as adjacency lists for a whole project or a specific table, with filters for module, layer, direction, and depth, plus JSON or Markdown output.

Instructions

Get the table dependency graph as an adjacency list. Omit tableId for the whole project graph, optionally restricted by module and layer (executable, datatype, or all); provide tableId for its dependency/dependent neighborhood with optional direction and depth. Executable nodes include signatures, return types, and dimension properties; datatype nodes include inheritance and declared field references; vocabulary nodes include their value type, total value count, and a bounded first/last values preview. Dispatchers represent versioned executable tables, self-loops represent recursion or self-reference, and cycles are derived from dependency edges. JSON preserves the graph nodes directly. Markdown renders executable calls as a Mermaid flowchart and the data model, including declared fields, vocabulary value previews, and reference cardinalities, as a Mermaid ER diagram; vocabulary headers use Name, preview rows leave the redundant type column visually empty, and a + N more marker identifies a truncated middle. Inheritance is shown separately when present. Detailed Markdown adds per-node metadata, while concise Markdown stays textual.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
depthNoWhen tableId is provided, maximum traversal depth from that table.
layerNoWhen tableId is omitted, return executable tables, datatype/vocabulary nodes, or both (backend default all).
moduleNoWhen tableId is omitted, limit the project graph to this module. Discover names with openl_list_project_modules().
tableIdNoOptional table whose dependency neighborhood to return. Omit to return the whole project (or module) graph.
directionNoWhen tableId is provided, relations to traverse (backend default BOTH).
projectIdYesProject ID returned by backend. Use the exact 'projectId' value from openl_list_projects() response without modification or reformatting.
response_formatNoResponse format: 'json' for structured, round-trippable data (default), 'markdown' for human-readable output, 'markdown_concise' for a brief summary (1-2 paragraphs), or 'markdown_detailed' for full details with contextjson
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, and the description adds substantial behavioral detail: what executable, datatype, and vocabulary nodes contain; how dispatchers, self-loops, cycles, and inheritance are represented; how truncation and previews appear; and how JSON vs Markdown variants render. There is no contradiction with the annotations.

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 long but densely informative, moving from core behavior to mode selection to output rendering. Every sentence adds distinct value, including the Mermaid rendering details that matter for choosing response_format. There is no tautology or filler.

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 no output schema, the description covers the response semantics surprisingly well: it defines the adjacency-list graph, the node types, the meaning of dispatchers, self-loops, and cycles, and the differences between JSON and the Markdown variants. Required projectId and parameter constraints are already covered by the schema, so nothing essential is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is a 3. The description adds conditional meaning beyond the schema, such as 'omit tableId for the whole project graph' vs 'provide tableId for its dependency/dependent neighborhood,' and explains how response_format affects the output. It does not independently document every parameter, but it meaningfully supplements the schema.

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 opens with a specific verb and resource: 'Get the table dependency graph as an adjacency list.' It then clearly distinguishes the two main call modes: whole project/module graph when tableId is omitted, and dependency/dependent neighborhood when tableId is provided. This makes the tool's purpose immediately distinguishable from sibling table tools like openl_get_table or openl_list_tables.

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?

The description explicitly explains when to omit or provide tableId, when to use direction and depth, and how module and layer restrict the graph. It even points to openl_list_project_modules() for discovering module names. It stops short of explicitly naming sibling tools to avoid or saying 'use this instead of X,' so it is just below a 5.

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/openl-tablets/openl-mcp'

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