Marmot: a data catalog skill

Marmot

A skill that teaches an agent to search tables, trace lineage and read the glossary in your Marmot catalog via CLI, REST and MCP.

  • 627 ★ on the repository
  • Last commit
  • MIT
SkillOfficial

Broad access

Why this level

  • The agent gets a token or API key with your permissions in the catalog and can edit descriptions, tags and owners, and the `marmot assets delete` command removes assets
  • The query_data tool runs SQL against data sources under your account, and the rows end up in the conversation with the model
  • Signing in with marmot login registers the token in the Docker credential store for the instance host
All reasons and checks

marmotdata/marmot

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/marmot

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The agent gets a token or API key with your permissions in the catalog and can edit descriptions, tags and owners, and the `marmot assets delete` command removes assets
  • The query_data tool runs SQL against data sources under your account, and the rows end up in the conversation with the model
  • Signing in with marmot login registers the token in the Docker credential store for the instance host

This is third-party code. Review the repository files before installing.

What it does

Marmot is an open-source data catalog in a single binary: it describes your organization's tables, topics, queues, APIs and dashboards and stores the links between them. The skill in the repository root explains to an agent how to work with your Marmot instance. The agent searches assets, sees where data comes from and goes to, reads the glossary and term definitions, checks pipeline runs, finds owners and tags and gets metrics. The skill documents the `marmot` console client: commands for assets, search, glossary, lineage, runs, teams, users, API keys and metrics. There is a dedicated agent mode: `marmot agent schema` prints JSON with every command, flag and exit code, and the `MARMOT_READ_ONLY=true` variable forbids any command that does not read. Every exit code is clear to an agent without parsing text: 3 means not signed in, 4 means access denied, 9 means blocked by read-only mode. The Marmot server has a built-in MCP, and the skill advises preferring it. The tools discover_data, find_ownership, lookup_term, trace_lineage and others read the catalog; update_documentation, manage_tags and manage_owners change it; query_data runs one read-only SQL statement. Before writing, the agent must name the change and the asset and wait for consent.

Who it is for. For data analysts and engineers who run Marmot and want to query the catalog from a coding agent.

Good fit when

  • You need to find out who owns a table and what a field means without opening the catalog's web interface
  • Before a table changes, the agent should show which downstream flows and dashboards depend on it
  • You need to check a term against its business glossary definition and find the assets it is attached to
  • You need to check the latest pipeline runs and see which entities they processed
  • A report needs one SQL statement run against a catalog source, with the rows returned alongside table context

Not a fit when

  • There is no Marmot instance: the skill works only with a deployed catalog and a login to it
  • You need access to the database itself without a catalog: a direct database MCP server fits better
  • The agent must change nothing: then turn on read-only mode or leave the write tools out
  • You need to deploy and fill the catalog: the skill covers working with a ready catalog, and Marmot's documentation covers installing the server and source plugins

Example request

Find the `orders` table in the catalog, show who owns it and which dashboards depend on it downstream.

Limitations

The skill does nothing without a deployed Marmot instance. Sign-in uses `marmot login`: it opens a browser and gets a 24-hour token through OAuth 2.0 PKCE, or you can set `MARMOT_HOST` and `MARMOT_API_KEY` instead. SQL queries are available only to accounts with the `assets:query` permission, and a denial must not be worked around by rewriting the query.

Along the way `marmot login` registers the token in the Docker credential store for the instance host, so `docker push` and similar plugin publishing commands work. Glossary writes, metrics and administration exist only in the CLI and REST, and MCP does not cover them.

Whether your instance and the get.marmotdata.io site are reachable from Russia was not checked for this card.

How to disable. Delete the skill folder ~/.claude/skills/marmot, or .claude/skills/marmot for a project install. Sign out of the catalog with `marmot logout`, which erases the cached token and registry credential, and revoke issued API keys with `marmot apikeys delete`. Remove the marmot entry from the MCP configuration too.

FAQ

How do I install the Marmot skill in Claude Code?

Run `npx skills add marmotdata/marmot` or, if the console client is already installed, `marmot skills install`. By default the skill goes to ~/.claude/skills/marmot for all projects, the `--project` flag puts it in .claude/skills/marmot and `--dir` sets your own folder. Repeat the command after you update the client.

How do I sign in to Marmot from an agent?

With `marmot login https://marmot.example.com`: it opens a browser and gets a token that lives 24 hours. For automation, set `MARMOT_HOST` and `MARMOT_API_KEY` or pass the `--host` and `--api-key` flags.

How do I stop the agent from changing the catalog?

Set `MARMOT_READ_ONLY=true` or the `--read-only` flag: a blocked command exits with code 9 and changes nothing. MCP write tools are offered only to callers allowed to make the change, and the skill requires asking the user before every write.

Which MCP tools does Marmot have?

For reading: discover_data, find_ownership, lookup_term, explore_data_products, explore_teams and trace_lineage. For writing: update_documentation, manage_tags and manage_owners. For data: list_queryable_sources and query_data, available with the `assets:query` permission.

How does Marmot differ from DBHub?

DBHub opens PostgreSQL, MySQL and other databases to the agent directly. Marmot adds a catalog on top of the data: owners, glossary, lineage, and query_data returns rows together with what the catalog knows about every table read.

Discussion

No questions or reviews yet.

Skills
Official

An MCP server and skills from TigerData that help agents write PostgreSQL schemas and queries from current docs and practices

MCP serverExtended access1.9KRepository stars
Official

A CLI and MCP server that extracts structured knowledge from documents: graphs, hypergraphs, and fact search with sources

CLIExtended access4.2KRepository stars
Official

A graph database with git-style branches: the server exposes it to agents over MCP at /mcp, and a skill teaches the agent schemas and queries

MCP serverBroad access1.8KRepository stars
Official

A set of skills for working with the Moscow Exchange's ALGOPACK data: access and auth, candles, order book, volumes and market alerts

SkillMinimal access4Repository stars
Official

Official Tableau MCP server: the agent finds data sources, sends queries to them and opens dashboards and Pulse metrics

MCP serverBroad access361Repository stars
Official

Official MongoDB MCP server: queries and aggregations, index management, Atlas clusters and local deployments

MCP serverBroad access1.2KRepository stars

README in short

The document presents Marmot as a data catalog for teams that do not want heavy infrastructure: one binary, a web interface, full-text search with filters, interactive lineage, owners and glossaries. It stresses that the catalog gives agents context through MCP, REST and the interface. Installation details live in the documentation on marmotdata.io, which also has the section on skills and MCP, and the repository itself holds data source plugins and SDKs for Go, Python and TypeScript.

README badge

Original SKILL.md

---
name: marmot
description: Interact with a Marmot data catalog instance. Use this skill when the user wants to search for data assets, view lineage, browse glossary terms, check pipeline runs, manage tags or owners, view metrics, query catalogued data, or do anything related to their data catalog. Covers the Marmot CLI, REST API and MCP server.
---

This skill helps you interact with a Marmot data catalog. Marmot catalogs data assets (databases, tables, topics, APIs, dashboards) across an organisation's data stack and tracks lineage between them.

## Setup

The user needs the Marmot CLI installed and authenticated. If not already set up:

```bash
curl -fsSL get.marmotdata.io | sh
marmot login https://marmot.example.com
```

`marmot login` opens a browser for OAuth 2.0 PKCE authentication and caches the token locally. The token expires after 24 hours and carries the user's roles and permissions as claims. Login also registers the token with the Docker credential store for the instance's host, so `oras push`, `crane push` and `docker push` can publish plugins to the registry the instance serves. This goes through the `docker-credential-marmot` helper, a symlink to the marmot binary that `install.sh` creates; if the helper is not on your PATH, login writes the token itself into `~/.docker/config.json` the way `docker login` does. Alternatively, use an API key:

```bash
export MARMOT_HOST=https://marmot.example.com
export MARMOT_API_KEY=<key>
```

Or pass `--host` and `--api-key` as flags on any command.

`marmot skills install` refreshes this skill to match the installed CLI.

## MCP Server

Marmot has a built-in MCP (Model Context Protocol) server. If the user has configured MCP, you can interact with the catalog directly using these tools instead of the CLI:

Reading the catalog:

- **discover_data**: unified data discovery. Supports natural language queries, lookups by ID or MRN (e.g. `postgres://db/schema/table`), filtering by type, provider and tags, and metadata-based queries.
- **find_ownership**: ownership in both directions. "Who owns this asset?", "What does this user own?", "Show all data owned by the data-eng team". Works for assets and glossary terms.
- **lookup_term**: business glossary lookups. Search for terms by name or retrieve definitions.
- **explore_data_products**: curated collections of assets that serve a business purpose, and what they contain.
- **explore_teams**: teams and their members.
- **trace_lineage**: what feeds an asset (upstream) and what it feeds (downstream).

Changing the catalog (only offered to callers allowed to make the change):

- **update_documentation**: write or clear the human-authored description on an asset.
- **manage_tags**: add or remove tags on an asset.
- **manage_owners**: add or remove a user or team as an owner of an asset.

Querying data (only offered to callers with `assets:query`):

- **list_queryable_sources**: the sources that answer queries, searchable by name.
- **query_data**: run one read-only SQL statement against a source. The answer carries the rows plus what the catalog knows about every table read, and the id the query was recorded under.

Ask before calling the tools that change the catalog, even when the user's request implies the change. Say what you are about to write and to which asset.

Report a problem

Foxx AIMarmot: a data catalog skill
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.