Skip to main content
Glama
elekto-com-br

Elekto MCP for SQL Server

Official

Dependency graph

get_dependency_graph
Read-onlyIdempotent

Retrieve foreign keys and module references as data to analyze database dependencies programmatically. Fails if login lacks permissions to read dependency views.

Instructions

Returns the dependency edges between database objects as data: foreign keys between tables, and references among views, procedures and functions. Use it to analyze dependencies programmatically; for a diagram use generate_dependency_dot, and for what references one table use get_table_usage. Fails, saying so, when the login cannot read sys.sql_expression_dependencies; without VIEW DEFINITION the module edges cover only modules the login can read.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
schemaNoFilter by schema name. Empty means every schema. Example: 'Feeder'
databaseYesName of the database as registered in the configuration.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantive operational context: it fails with an explicit message when the login lacks read access to sys.sql_expression_dependencies, and it warns that without VIEW DEFINITION the module edges only cover readable modules — i.e. results can be silently partial. That is exactly the beyond-annotation disclosure this dimension rewards.

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?

Three tight sentences, each carrying distinct load: what it returns, when to use it vs alternatives, then failure and permission caveats. Nothing is redundant and the purpose is front-loaded.

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?

No output schema exists, so the description must describe the return — and it does, specifying that the result is edge data with concrete edge categories. Combined with the failure/permission caveats, an agent has everything needed to call it and interpret partial results.

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 coverage is 100%, so both parameters (schema filter, database name) are already documented in the schema, and the description adds no syntax or format detail beyond that. Baseline 3 is correct when the schema carries the parameter burden.

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?

States a specific verb and resource ('returns the dependency edges between database objects as data') and enumerates the covered edge types (foreign keys, view/procedure/function references). It explicitly distinguishes itself from siblings generate_dependency_dot and get_table_usage, so an agent can route without opening a schema.

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?

Explicitly says to use it 'to analyze dependencies programmatically' and names the two alternatives with the conditions that select them: a diagram via generate_dependency_dot, and single-table references via get_table_usage. When/when-not is fully covered.

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