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:
mcp:
extraArgs: ["--include-tool-tags", "catalog,schema,table"]
Without it, the server offers every tool.
Tools
| Tool | What it does | Tag |
|---|---|---|
list_metalakes | Lists the metalakes the user can access. | metalake |
get_list_of_catalogs | Lists the catalogs in the metalake. | catalog |
get_list_of_schemas | Lists the schemas in a catalog. | schema |
get_list_of_tables | Lists the tables in a schema. | table |
get_table_metadata_details | Returns a table's columns, partitioning, properties, and other details. | table |
list_of_topics | Lists the topics in a schema. | topic |
load_topic | Returns a topic's details. | topic |
list_of_filesets | Lists the filesets in a schema. | fileset |
load_fileset | Returns a fileset's details. | fileset |
list_files_in_fileset | Lists the files in a fileset, optionally under a sub-path or named location. | fileset |
list_of_models | Lists the models in a schema. | model |
load_model | Returns a model's details. | model |
list_model_versions | Lists a model's versions. | model |
load_model_version | Returns one version of a model. | model |
load_model_version_by_alias | Returns the version of a model that carries an alias. | model |
list_of_tags | Lists the tags in the metalake. | tag |
get_tag_by_name | Returns a tag's details. | tag |
associate_tag_with_metadata | Attaches tags to an object. | tag |
disassociate_tag_from_metadata | Removes tags from an object. | tag |
list_tags_for_metadata | Lists the tags on an object. | tag |
list_metadata_by_tag | Lists the objects a tag is attached to. | tag |
get_list_of_policies | Lists the policies in the metalake. | policy |
get_policy_detail_information | Returns a policy's details. | policy |
associate_policy_with_metadata | Attaches policies to an object. | policy |
disassociate_policy_from_metadata | Removes policies from an object. | policy |
list_policies_for_metadata | Lists the policies on an object. | policy |
list_metadata_by_policy | Lists the objects a policy is attached to. | policy |
get_policy_for_metadata | Returns one policy attached to an object. | policy |
metadata_type_to_fullname_formats | Explains how to write each object type's full name for the tag and policy tools. | tag, policy |
list_statistics_for_metadata | Lists the statistics on a table. | statistic |
list_statistics_for_partition | Lists the statistics on a range of a table's partitions. | statistic |
list_of_job_templates | Lists the job templates in the metalake. | job |
get_job_template_by_name | Returns a job template's details. | job |
list_of_jobs | Lists jobs, optionally for one template. | job |
get_job_by_id | Returns a job's status. | job |
run_job | Runs a job from a template. | job |
cancel_job | Cancels a running job. | job |