Skip to main content

MCP tools

The MCP server offers AI agents the tools below. Each tool call becomes a request to the Gravitino server as the agent's user, so a tool returns only what that user may see and changes only what that user may change.

Most tools read metadata. The tools that change anything are limited to attaching and removing tags and policies, and running and cancelling jobs. An agent cannot create, alter, or delete any object, including tags and policies themselves.

Choosing the metalake​

Every tool takes an optional metalake argument naming the metalake it works in. A call without one uses the server's default metalake, mcp.metalake in the Helm values. With no default set, every call must name its metalake, and list_metalakes tells the agent which ones its user can reach.

Limiting the tools​

Each tool carries a tag. The server argument --include-tool-tags limits the tools to those tags, separated by commas, so an agent that only needs to read tables sees nothing else:

Expose only the catalog, schema, and table tools
mcp:
extraArgs: ["--include-tool-tags", "catalog,schema,table"]

Without it, the server offers every tool.

Tools​

ToolWhat it doesTag
list_metalakesLists the metalakes the user can access.metalake
get_list_of_catalogsLists the catalogs in the metalake.catalog
get_list_of_schemasLists the schemas in a catalog.schema
get_list_of_tablesLists the tables in a schema.table
get_table_metadata_detailsReturns a table's columns, partitioning, properties, and other details.table
list_of_topicsLists the topics in a schema.topic
load_topicReturns a topic's details.topic
list_of_filesetsLists the filesets in a schema.fileset
load_filesetReturns a fileset's details.fileset
list_files_in_filesetLists the files in a fileset, optionally under a sub-path or named location.fileset
list_of_modelsLists the models in a schema.model
load_modelReturns a model's details.model
list_model_versionsLists a model's versions.model
load_model_versionReturns one version of a model.model
load_model_version_by_aliasReturns the version of a model that carries an alias.model
list_of_tagsLists the tags in the metalake.tag
get_tag_by_nameReturns a tag's details.tag
associate_tag_with_metadataAttaches tags to an object.tag
disassociate_tag_from_metadataRemoves tags from an object.tag
list_tags_for_metadataLists the tags on an object.tag
list_metadata_by_tagLists the objects a tag is attached to.tag
get_list_of_policiesLists the policies in the metalake.policy
get_policy_detail_informationReturns a policy's details.policy
associate_policy_with_metadataAttaches policies to an object.policy
disassociate_policy_from_metadataRemoves policies from an object.policy
list_policies_for_metadataLists the policies on an object.policy
list_metadata_by_policyLists the objects a policy is attached to.policy
get_policy_for_metadataReturns one policy attached to an object.policy
metadata_type_to_fullname_formatsExplains how to write each object type's full name for the tag and policy tools.tag, policy
list_statistics_for_metadataLists the statistics on a table.statistic
list_statistics_for_partitionLists the statistics on a range of a table's partitions.statistic
list_of_job_templatesLists the job templates in the metalake.job
get_job_template_by_nameReturns a job template's details.job
list_of_jobsLists jobs, optionally for one template.job
get_job_by_idReturns a job's status.job
run_jobRuns a job from a template.job
cancel_jobCancels a running job.job