Skip to main content
Glama
prepmonk

baic-dl-mcp

by prepmonk

approve_table_selection

Confirm the selected tables and generate the SQL for your pipeline. Optionally save the SQL directly to a version by providing the version ID, or get the SQL and graph for later saving.

Instructions

Confirm the table selection and generate the SQL. Step 2 of 2.

keep_tables and all_offered_tables take fully-qualified DB.SCHEMA.TABLE names; all_offered_tables is the offered_tables list from generate_pipeline_sql.

PREFERRED: pass save_to_version_id (the pipeline's version_id) and the SQL is generated and saved in this single call. You get back a saved receipt and a short sql_preview instead of the full body.

Do not validate the generated SQL. It is produced by the platform's own engineering agent from the knowledge cluster's metadata and instructions; it does not need checking against table metadata, and calling get_table_details or list_kb_tables to verify it is wasted work. Report the saved receipt and stop.

Without save_to_version_id you get sql and graph back, which must then be handed to save_pipeline_sql unchanged - do not reformat, re-indent, or edit them.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
session_idYes
keep_tablesYes
pipeline_idYes
max_attemptsNo
target_tableYes
all_offered_tablesYes
save_to_version_idNo
knowledge_cluster_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

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

With no annotations, the description fully discloses behavioral nuances: the two distinct return paths, that all_offered_tables must come from generate_pipeline_sql, the warning that SQL is auto-generated and must not be validated, the instruction to 'Report the saved receipt and stop,' and the directive to pass sql/graph unchanged to save_pipeline_sql. This is rich, non-obvious behavior that the agent needs to know.

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 moderately long but every sentence contributes actionable information. It front-loads the core purpose in the first sentence, then uses short paragraphs for preferred usage, alternative usage, and a critical warning. No filler or redundant content—each line earns its place.

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?

Given the tool's complexity, the description covers the essential context: it is the second step of a two-step flow, it has two operational paths with different return values, it explicitly states what to do with the returned data (hand to save_pipeline_sql unchanged) and what not to do (validate against metadata). The output schema exists but the description still summarizes the return payloads, making the tool self-contained.

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 description coverage is 0%, so the description must compensate. It clarifies the meaning of keep_tables and all_offered_tables (fully-qualified DB.SCHEMA.TABLE names, with all_offered_tables tied to generate_pipeline_sql's offered_tables) and explains the effect of save_to_version_id. However, it does not explain the remaining parameters (pipeline_id, knowledge_cluster_id, session_id, target_table, max_attempts), which are mostly self-explanatory but still lack explicit semantic guidance. The key ambiguous parameters are covered, so this goes above baseline 3.

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-resource pair: 'Confirm the table selection and generate the SQL.' It explicitly identifies itself as 'Step 2 of 2,' clearly tying it to the preceding generate_pipeline_sql step, and distinguishes the two operational modes (with/without save_to_version_id). This removes ambiguity about the tool's role among the large sibling set.

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?

The description gives explicit when-to-use and when-not-to-use guidance. It names the preferred path ('PREFERRED: pass save_to_version_id... the SQL is generated and saved in this single call') and the alternative path that requires handing sql/graph to save_pipeline_sql. It also names specific tools to avoid ('get_table_details or list_kb_tables') and explains why validating is wasted work, analogous to TDQS 4.3's explicit alternative naming.

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/prepmonk/baic-dl-mcp'

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