Skip to main content
Glama

List Programmable Objects

list_programmable_objects
Read-onlyIdempotent

Retrieve stored procedures, functions, views, and triggers from a SQL Server database with schema details and timestamps. Filter by object types and schemas to explore database structure.

Instructions

List stored procedures, functions, views, and triggers in a database. Returns JSON with schema, name, type, and create/modify dates.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
serverNameYesServer name from list_servers
databaseNameYesDatabase name from list_databases
includeSchemasNoOptional comma-separated schemas to include (e.g. 'dbo,sales'). Overrides excludeSchemas.
excludeSchemasNoOptional comma-separated schemas to exclude (e.g. 'sys,INFORMATION_SCHEMA'). Ignored if includeSchemas set.
objectTypesNoOptional comma-separated object types to filter: PROCEDURE, FUNCTION, VIEW, TRIGGER
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds value by specifying the return format ('Returns JSON with schema, name, type, and create/modify dates'), which is not covered by annotations, providing useful behavioral context about output structure without contradiction.

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 the core purpose in the first sentence and adds output details in the second. Both sentences earn their place by clarifying scope and return format without redundancy. It is appropriately sized for a list tool, with no wasted words or unnecessary elaboration.

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?

Given the tool's moderate complexity (5 parameters, no output schema), the description is mostly complete: it states the purpose, object types, and return format. However, it lacks details on pagination, error handling, or performance considerations, which could be useful for an agent. With annotations covering safety, it is sufficient but not exhaustive.

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%, with detailed descriptions for all parameters (e.g., serverName as 'Server name from list_servers'). The description does not add meaning beyond the schema, as it mentions no parameters. Baseline score of 3 is appropriate since the schema fully documents parameters, and the description focuses on output instead.

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 specific action ('List') and resources ('stored procedures, functions, views, and triggers in a database'), and distinguishes itself from siblings like list_databases or list_servers by focusing on programmable objects rather than databases or servers. It explicitly names the object types it retrieves, making its scope unambiguous.

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?

The description implies usage for retrieving programmable objects, but does not explicitly state when to use this tool versus alternatives like get_object_definition or get_object_dependencies. It provides context by listing object types, but lacks guidance on exclusions or specific scenarios where this tool is preferred over others, leaving some ambiguity for the agent.

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/mbentham/sql-augur'

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