Skip to main content

MCP Tool Catalog

Every tool the DataStar MCP server exposes, grouped by purpose. Tools marked (read) are read-only; tools marked (write) require Allow write access to be enabled on the workspace's MCP settings.

Workspace

get_workspace_info (read)

Returns the currently open workspace: name, on-disk location, component path, whether it's under version control, and the categories it exposes.

list_categories (read)

Returns the component categories available in the current workspace.

get_database_context (read)

Returns the context the connected database session resolves unqualified names against: effective default schema, current user, vendor, and accessible schemas.

get_connection_status (read)

Returns the current database connection's name, vendor, schema, and summary. Reports "Not Connected" if no session is open.

list_saved_connections (read)

Lists the saved database connections the user has available.

Database inspection

get_database_schema (read)

Returns a high-level index of the connected database: tables, views, stored procedures, and functions. Capped per category.

  • maxObjectsPerCategory: int = 200

get_table_details (read)

Returns full detail for a single table: columns (type, nullability, default, primary-key flag), constraints, and indexes.

  • tableName: string (required)
  • schema: string? = null. Omit to use the session's default.

execute_query (read)

Runs an ad-hoc read-only SELECT. Writes are rejected. Database errors (e.g. ORA-00942) are surfaced verbatim.

  • sql: string (required)
  • maxRows: int = 1000

execute_sql (write)

Runs arbitrary SQL. dryRun=true executes inside a transaction that rolls back. For row-returning SELECTs, use execute_query.

  • sql: string (required)
  • dryRun: bool = true

Connections

connect_to_database (write)

Opens (or re-uses) a database connection by its saved name.

  • name: string (required)

Metadata tables

These tools only operate on tables listed in the workspace's configured metadata tables.

list_metadata_tables (read)

Lists the metadata tables available for this workspace.

describe_metadata_table (read)

Returns column definitions (name, type, nullability, max length) of a metadata table.

  • tableName: string (required)

query_metadata_table (read)

Queries a metadata table with optional column projection and AND'd filters.

  • tableName: string (required)
  • filters: MetadataFilter[]?
  • columns: string[]?
  • maxRows: int = 1000

Each MetadataFilter has column, operator (=, <>, LIKE, NOT LIKE, IS NULL, IS NOT NULL), and value.

count_metadata_table (read)

Returns the number of rows in a metadata table matching an optional set of filters.

  • tableName: string (required)
  • filters: MetadataFilter[]?

search_metadata (read)

Searches every configured metadata table for rows that mention a given term. Useful for open-ended questions like "tell me about the ACCOUNT table".

  • searchTerm: string (required)
  • maxRowsPerTable: int = 50

Returns { Matches, Errors } so you can see per-table failures.

Components

list_components (read)

Lists the SQL components in the current workspace. Optionally filter to a single category.

  • category: string?

get_component_content (read)

Returns the full SQL script for a component.

  • category: string (required)
  • name: string (required)

search_components (read)

Searches components by name, or by the content of their SQL when searchContent=true. Capped by maxResults.

  • query: string (required)
  • category: string?
  • searchContent: bool = false
  • maxResults: int = 200

get_component_metadata (read)

Returns a component's metadata: when and where it was last extracted, its database status, template, whether it has a pending draft or is in the deployment basket.

  • category: string (required)
  • name: string (required)

delete_component (write)

Deletes a component from the workspace and cleans up any associated draft.

  • category: string (required)
  • name: string (required)

Dependencies

get_dependencies (read)

Lists the components the given component refers to (its direct dependencies).

  • category: string (required)
  • name: string (required)

get_reverse_dependencies (read)

Lists the components that refer to the given component; answers "what would break if I changed this?". Best-effort scan; reports how many candidates were inspected and whether the scan was truncated.

  • category: string (required)
  • name: string (required)
  • scanAllCategories: bool = false
  • maxScan: int = 500

Drafts

list_drafts (read)

Lists components that have a pending draft. Optionally filter by category.

  • category: string?

get_draft_content (read)

Returns the SQL content of a component's pending draft.

  • category: string (required)
  • name: string (required)

apply_draft (write)

Applies drafts for one or more components in a category; the draft becomes the workspace version and is then removed. Omit names to apply every draft in the category.

  • category: string (required)
  • names: string[]?

discard_draft (write)

Discards drafts for one or more components in a category without applying them. Omit names to discard every draft in the category.

  • category: string (required)
  • names: string[]?

Extraction

extract_to_workspace (write)

Extracts CREATE script(s) for one or more components from the database straight into the workspace. Omit names to extract every component in the category.

  • category: string (required)
  • names: string[]?

extract_delete_script (write)

Extracts DROP script(s) for one or more components into the workspace.

  • category: string (required)
  • names: string[]?

extract_to_draft (write)

Extracts components into draft files, only when the database version differs from the workspace copy.

  • category: string (required)
  • names: string[]?

extract_to_location (write)

Writes a single component's script from the database to any folder inside the workspace. Workspace component tracking isn't modified.

  • category: string (required)
  • name: string (required)
  • outputDirectory: string (required)

Comparison

compare_with_database (read)

Compares the workspace copy of a component with the script generated from the live database.

  • category: string (required)
  • name: string (required)

compare_with_draft (read)

Compares the workspace copy of a component with its pending draft.

  • category: string (required)
  • name: string (required)

Deployment basket

get_basket (read)

Returns the components currently staged in the deployment basket.

add_to_basket (write)

Stages a component in the deployment basket.

  • category: string (required)
  • name: string (required)

remove_from_basket (write)

Removes a component from the deployment basket.

  • category: string (required)
  • name: string (required)

empty_basket (write)

Clears every component from the deployment basket.

import_basket_from_task (write)

Populates the basket from the deployment file attached to a task in the configured task tracker.

  • taskId: string (required)

Execution

execute_script (write)

Runs a component's SQL script against the connected database.

  • category: string (required)
  • name: string (required)
  • dryRun: bool = true. When true, the script runs inside a transaction that is rolled back.

Templates

list_templates (read)

Lists templates in the workspace. Optionally filter by type (data or object) and / or category.

  • type: string?
  • category: string?

get_template (read)

Returns a template's metadata and full XML by workspace-relative path.

  • filePath: string (required)

get_data_template_xsd (read)

Returns the XSD schema DataStar uses to validate DataComponent templates. Useful to hand to an agent before asking it to author one.

get_object_template_xsd (read)

Returns the XSD schema DataStar uses to validate ObjectComponent templates.

create_template (write)

Creates a new template at the given path. The XML is validated against the appropriate XSD before being written.

  • filePath: string (required)
  • xmlContent: string (required)

update_template (write)

Updates an existing template. The XML is validated against the appropriate XSD before being written.

  • filePath: string (required)
  • xmlContent: string (required)

Deployment files

get_deployment_file_storage_info (read)

Reports where the deployment file for a task is stored: attached to the task, in the workspace, or not yet created.

  • taskId: string (required)

get_task_deployment_file (read)

Returns the raw XML of the deployment file for a task. Auto-routes between task attachment and workspace file based on workspace configuration.

  • taskId: string (required)

set_task_deployment_file (write)

Writes or overwrites the deployment file for a task. Routes to task attachment or workspace location per configuration.

  • taskId: string (required)
  • xmlContent: string (required)

describe_deployment_file (read)

Structured summary of a deployment file: source VCS type, branch, and deployment items with their ordering.

  • taskId: string (required)

Reversal scripts

generate_reversal_scripts (read)

Generates rollback scripts for the deployment file associated with a task, against the named database connection. Read-only: produces scripts, does not apply them.

  • taskId: string (required)
  • connectionName: string (required)

Task tracking

Grouped by responsibility: capability reporting, read-only lookups, CRUD on tasks, and workflow actions.

Capabilities

get_task_tracking_capabilities (read)

Reports what the connected task tracker supports (create, update, comment, transition, search, metadata, linking).

CRUD

get_current_user (read)

Returns the authenticated user's account ID, display name, and email as known to the task tracker.

run_query (read)

Runs a raw tracker query: JQL on Jira, WIQL on Azure Boards.

  • query: string (required)
  • maxResults: int = 50

search_tasks (read)

Structured search across the tracker by any combination of text, status, assignee, type, and labels.

  • text: string?
  • status: string?
  • assignee: string?
  • type: string?
  • labels: string[]?
  • maxResults: int = 50

get_task (read)

Returns the full details of a task by its ID.

  • taskId: string (required)

create_task (write)

Creates a task in the connected task tracker.

  • type: string (required)
  • title: string (required)
  • project: string?
  • description: string?
  • assignee: string?
  • priority: string?
  • labels: string[]?
  • parentId: string?

update_task (write)

Updates one or more fields on an existing task, including custom fields.

  • taskId: string (required)
  • title: string?
  • description: string?
  • assignee: string?
  • priority: string?
  • labels: string[]?
  • parentId: string?
  • customFields: dict<string,string>?

lookup_user (read)

Finds tracker users by name or email fragment. Useful for resolving an assignee string to a concrete account ID before calling create_task or update_task.

  • searchString: string (required)

Metadata

get_task_types (read)

Lists the task types the tracker supports.

get_available_statuses (read)

Lists the statuses a task of the given type can hold.

  • taskType: string (required)

get_available_transitions (read)

Lists the status transitions a specific task can make from its current state.

  • taskId: string (required)

get_task_fields (read)

Lists the fields for a task type (including custom fields), with each field's type and whether it is required.

  • taskType: string (required)

get_priorities (read)

Lists the priority levels the tracker recognises.

list_projects (read)

Lists the projects the authenticated user can access.

Lists the link types (e.g. blocks, relates to) that the tracker supports between tasks.

Workflow

transition_task (write)

Moves a task to a new status. Optionally attaches a comment with the transition.

  • taskId: string (required)
  • targetStatus: string (required)
  • comment: string?

add_task_comment (write)

Posts a comment on a task.

  • taskId: string (required)
  • comment: string (required)

get_task_comments (read)

Lists the comments on a task, oldest first.

  • taskId: string (required)

Creates a link of the given type between two tasks, optionally with a comment.

  • linkType: string (required)
  • inwardTaskId: string (required)
  • outwardTaskId: string (required)
  • comment: string?