baic-dl-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BAIC_UI_URL | Yes | The URL of the BAIC UI. | |
| BAIC_TRANSPORT | No | Transport mode: 'stdio' (default) or 'http'. | stdio |
| BAIC_USER_NAME | Yes | The username used to authenticate with the BAIC platform. | |
| BAIC_BACKEND_URL | Yes | The URL of the BAIC backend. | |
| BAIC_USER_PASSWD | Yes | The password used to authenticate with the BAIC platform. | |
| BAIC_USER_MGMT_URL | Yes | The URL of the BAIC user management service. | |
| BAIC_ALLOW_DESTRUCTIVE | No | Set to 'true' to allow destructive operations (delete pipeline, delete golden SQL, delete knowledge cluster). | false |
| BAIC_ALLOW_AUTO_APPROVE | No | Reserved for chaining the pipeline review gate automatically. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_sourcesA | List configured data sources (source connections), one page at a time. source_type: RELATIONAL_DB (default), DOCUMENT, CONVERSATION, NOSQL, or "" for all. Returns source_id (usable everywhere a source id is needed), name, engine type, and the account/database/schema so you can tell which sources can share a knowledge cluster. Paged: read |
| get_sourceB | Full detail for one source, including its connection config (secrets masked). |
| list_connector_typesA | The connector engines this platform supports. There is no server endpoint for this; the list is fixed in the frontend. |
| create_snowflake_sourceA | Create a new Snowflake source connection. authentication_type: "default" (username+password), "oauth", or "keypair". Only "oauth" has been confirmed against the live API; if a create fails on this field, that is the most likely cause. |
| create_postgres_sourceA | Create a new Postgres source connection. connection_url is a full JDBC URL, e.g. jdbc:postgresql://host:5432/dbname?sslmode=require Postgres config differs from Snowflake: one JDBC URL + schema, no account or warehouse. |
| list_destinationsA | List destinations - the vector stores or warehouses that ingestion writes into. Needed to pick a destination_id for import_source_metadata. Paged: read |
| list_available_tablesA | List the tables a source exposes, before importing any of them. This is the Import Source table picker - use it to choose what to ingest. |
| import_source_metadataA | Crawl a source's metadata into a new knowledge base. Asynchronous: returns a task_id plus the new knowledge_base_id. Poll with get_ingestion_task. destination_id is required - get one from list_destinations. This writes embeddings into that destination, so pick a destination you own. |
| import_and_waitA | Import a source's metadata into a knowledge base and wait for it to finish. Convenience wrapper over import_source_metadata + get_ingestion_task. Returns the knowledge_base_id and the final status; if it is still running when timeout_s elapses the import continues server-side and you can keep polling get_ingestion_task. Writes embeddings into destination_id, so use a destination you own. |
| get_ingestion_taskA | Check the status of a metadata import started by import_source_metadata. |
| list_knowledge_basesA | List knowledge bases (KBs) - the metadata imported via Data Ingestion, one page at a time. Each row links a KB to its source, so use this to go from a source name to a knowledge_base_id. status SUCCESS means metadata was crawled successfully. Paged, and this is the big one: a deployment can hold thousands of KBs. Read |
| list_kb_tablesA | List the tables inside a knowledge base, one page at a time. Paged: read |
| get_table_detailsA | Table descriptions and column-level detail for one or more tables. Batches - pass several table names in one call. include_profiles adds full profiling stats, which are large. Paged over An empty This tool is for exploring a schema. It is not a validation step for generated SQL; do not call it to check SQL before saving a pipeline. |
| get_table_relationshipsC | Discovered foreign-key style relationships between tables in a knowledge base. |
| list_golden_sqlA | List the Golden SQL examples attached to a knowledge base. Paged: read |
| add_golden_sqlA | Save a SQL query as a Golden SQL example on a knowledge base. Use the description to record the question the query answers - that is what makes it useful to the agents later. |
| delete_golden_sqlA | Delete a Golden SQL example. Requires BAIC_ALLOW_DESTRUCTIVE=true. |
| get_kb_instructionsA | Read the instructions attached to a knowledge base, with all versions. |
| update_kb_instructionsA | Overwrite the active instructions on a knowledge base. Replaces, does not append. |
| list_knowledge_clustersA | List knowledge clusters (KCs) - the groupings of knowledge bases used by the agents. Paged: read |
| get_knowledge_clusterA | KC detail: member knowledge bases, their engines, and the KC instructions. knowledge_base_ids here is what the agent tools need, so fetch this before asking questions if you want to inspect the context first. |
| get_kc_instructionsA | Read a knowledge cluster's instructions, with all versions. Note: a KC can have an empty active version while an older version holds the real
content, so |
| update_kc_instructionsA | Overwrite a knowledge cluster's active instructions. Replaces, does not append. High leverage: these instructions steer the SQL the Data Engineering agent generates - grain, dedup keys, null handling, dialect, idempotency. Verified to change the output. |
| create_knowledge_clusterA | Create a knowledge cluster from knowledge bases, optionally with instructions. Refuses knowledge bases that would need federation - all structured KBs must share one engine and one account, because the platform cannot query across them. Unstructured (document) KBs are exempt. |
| check_kc_federationB | Check whether a set of knowledge bases could legally share one knowledge cluster. |
| delete_knowledge_clusterB | Delete a knowledge cluster. Requires BAIC_ALLOW_DESTRUCTIVE=true. |
| discover_tablesA | Ask the Data Discovery agent which tables and columns are relevant to a question. Fast (~15s) and the best starting point before writing SQL. Returns the relevant tables, their join relationships, and a per-table column shortlist. |
| ask_data_analystA | Ask the Data Analyst agent a question about a knowledge cluster.
execute_query mirrors the UI's "Run SQL" toggle and defaults to true, which is almost always what is wanted: a question about data wants an answer, not a query. Only pass false when the user explicitly asks for the SQL without running it. Each attempt takes roughly 40-60s. Pass session_id to continue a conversation. When executing, an empty result is retried up to max_attempts times, because the same question intermittently produces SQL that returns no rows. If every attempt comes back empty the result carries an execution_warning - an empty result is indistinguishable from a failed execution on this platform, so do not tell the user "there is no data". |
| generate_pipeline_sqlA | Ask the Data Engineering agent to write pipeline SQL. Branch on
Pass save_to_version_id (the pipeline's version_id) so that if SQL arrives on this turn it is saved without a round trip.
Do not validate generated SQL against table metadata, and do not summarise it. |
| approve_table_selectionA | 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 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 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 |
| list_pipelinesA | List data pipelines, optionally only those in one knowledge cluster. Paged: read |
| create_pipelineA | Create a data pipeline. source_id and knowledge_base_id identify where the pipeline writes; knowledge_cluster_id supplies the context the agent reasons over. Returns the pipeline id and its first version id, both needed to save SQL. |
| get_pipeline_sqlA | Read a pipeline's saved SQL and visual pipeline graph. Defaults to the active version. |
| save_pipeline_sqlA | Save SQL and/or the visual pipeline graph onto a pipeline version. Write-only. This is a plain write. Do NOT do any of the following around it:
Pass the Returns a compact receipt - saved flag, byte count, graph node count, version - and deliberately not the SQL body. Confirm the receipt in one line and stop. Use get_pipeline_sql only if the SQL itself is genuinely needed later. Partial update: passing only sql leaves an existing graph untouched. |
| delete_pipelineC | Delete a pipeline. Requires BAIC_ALLOW_DESTRUCTIVE=true. |
| whoamiA | Confirm connectivity and show which environment, tenant, and user are in play. Call this first in a session. Everything is environment-specific - hosts, ids, how much data exists - so never assume which deployment you are pointed at; the backend_url identifies it. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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