Skip to main content
Glama
shibbirweb

mcp-mysql-read-only

by shibbirweb

Get Foreign Keys

get_foreign_keys
Read-onlyIdempotent

Retrieve foreign key relationships for a specified table to understand data dependencies and constraints.

Instructions

Show foreign key relationships for a specific table

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tableYesTable name
databaseNoOptional database to read from for this call only, without changing the active connection

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.5

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no extra behavioral context beyond the basic 'show' operation, such as error behavior or output structure, but it does not contradict 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 a single, tightly worded sentence with no filler. It front-loads the core action and resource, making the purpose immediately apparent. Every word contributes to the meaning.

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

Completeness4/5

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

For a simple two-parameter tool with strong annotations and full schema coverage, the description is mostly complete. The only gap is that with no output schema, a brief note about the result format (e.g., a list of FK relationships) would improve completeness, but it is not critical for correct invocation.

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 ('table' and 'database') are already documented with clear descriptions. The phrase 'for a specific table' in the description maps to the 'table' parameter but adds no new semantic detail beyond 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 uses a specific verb ('Show') and a specific resource ('foreign key relationships') scoped to a specific table. This clearly differentiates it from sibling tools like get_table_indexes and describe_table, which target different structures, so an agent can distinguish it without ambiguity.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives, when not to use it, or any prerequisites. There is no mention of preferring this over run_query or describe_table for FK-related needs, leaving the agent to infer the appropriate context.

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