Skip to main content
Glama

Programmability List Functions

programmability_list_functions
Read-onlyIdempotent

List user-defined functions (UDFs) in a Snowflake database or schema, including quoted and qualified names for accurate reference.

Instructions

List user-defined functions (UDFs) in a database or schema. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

Input Schema

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv3.0.0
    • addedInput schema / properties / database / description
      Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • addedInput schema / properties / schema_name / description
      Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
  2. Addedv2.0.4

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly=true, idempotent=true, destructive=false, so the safety profile is fully covered and the description does not contradict it. The added sentence about quoted_name/quoted_qualified_name is return-value detail that is largely redundant given an output schema exists. Nothing is said about pattern-matching semantics, result limits, or pagination.

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?

Two sentences, front-loaded with purpose. The second sentence is a bit tangled ('and, when the row has a database and schema, quoted_qualified_name') but still short and readable. Minor redundancy with the output schema.

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

Completeness3/5

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

The basics for a read-only list tool are present, and return values are covered by the output schema. Gaps remain around 'pattern' semantics and default listing scope, which are the pieces an agent actually needs to call this correctly.

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

Parameters2/5

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

Schema coverage is 67%, and the one undocumented parameter is 'pattern', whose filtering semantics (SQL LIKE? substring? case sensitivity?) are explained nowhere — neither in the schema nor in the description. The description adds no parameter meaning beyond what the schema already states for database and schema_name.

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

Purpose4/5

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

The first sentence gives a specific verb and resource ('List user-defined functions (UDFs)') and states the scoping options (database or schema). It does not, however, distinguish itself from close siblings such as programmability_list_procedures or programmability_describe_function, so an agent must infer the boundary from the name alone.

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

Usage Guidelines3/5

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

'in a database or schema' hints that scope is optional, which is the main usage decision. There is no explicit guidance on when to reach for describe_function instead, or on what happens when both database and schema_name are omitted (presumably account-wide listing).

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

Deploy Server

Other Tools