bc_data_find_tables
Finds Business Central tables by keyword or meaning and returns their IDs and names, so you can identify the right table before querying data.
Instructions
Finds Business Central tables by name or by meaning and returns their table IDs and names. This is the first step of the data query workflow: bc_data_find_tables -> bc_data_get_table_schema (exact field names) -> bc_data_get_table_relations (join paths, when joining tables) -> bc_data_query (compile and run an AL query). Use searchMode "keyword" with comma-separated name fragments when you can guess the table name ("customer, ledger entry"), and "semantic" with a plain-language description when you cannot ("posted invoices that are still unpaid"); semantic search ranks the source tables of matching pages and returns a score. Semantic search relies on BC's Copilot metadata search and can come back empty where that is not set up (seen on an on-prem BC 29.1 container); fall back to "keyword" when it returns no tables.
When to use: before writing an AL query for bc_data_query, to discover the table behind a business concept, including tables from extensions and tables that have no API page. When NOT to use: to read records from a known Standard API entity (bc_query is simpler), or to find a page to open in the UI (use bc_search_pages). The data query tools run on BC's own MCP server (BC 29+) and need "Data Query Tools (Preview)" enabled in BC's MCP Server Configuration; otherwise they return BC_MCP_UNAVAILABLE. They need no web-client session and no open page.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Maximum number of tables to return (default 20, max 50). | |
| company | No | Company to run in (exact, case-sensitive name from bc_list_companies). Defaults to the current session company, then BC_ODATA_COMPANY, then the user's default company in BC. | |
| searchMode | Yes | "keyword" matches table names by substring; "semantic" searches page metadata by meaning and returns the source tables of the best-matching pages. | |
| searchText | Yes | For searchMode "keyword": one or more comma-separated table name fragments (e.g., "customer, ledger entry"). For "semantic": a natural-language description of the data you need (e.g., "unpaid invoices from vendors"). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tables | Yes | ||
| company | Yes |