Skip to main content
Glama
kkawailab

MLIT Data Platform MCP Server

by kkawailab

get_data_catalog

Retrieve detailed information about data catalogs and datasets from Japan's MLIT Data Platform, enabling users to access metadata, filter by specific catalogs, and optionally include dataset listings.

Instructions

データカタログ・データセットの詳細情報を取得する。

            使い方:
            - すべてのカタログの詳細を取得(重い): ids を指定しない(内部的に IDs=null 相当)、include_datasets=True
            - 特定カタログだけ取得(推奨): ids=["cals","rsdb"] のように配列で指定
            - 軽量にID/タイトル等だけ取得: minimal=True
            - データセット一覧や件数も取得: include_datasets=True(データセットのメタデータ定義・件数が取得可能)

            例:
            - 全カタログのID/タイトルのみ(軽量):
            minimal=True, include_datasets=False

            - 特定カタログ(cals, rsdb)の詳細 + データセット一覧:
            ids=["cals","rsdb"], minimal=False, include_datasets=True

            - 単一カタログのメタ情報だけ(datasets不要):
            ids=["mlit_plateau"], minimal=False, include_datasets=False

            注意:
            - 公式仕様では `dataCatalog(IDs: [String])` で、IDs に null を渡すと全カタログが返ります。IDを指定すると対象のみ取得されます。
            - `include_datasets=True` の場合、各カタログ配下の `datasets` 情報(メタデータ定義、データ件数など)も取得します。大量になるため必要に応じてオフにしてください。
            - `minimal=True` は主要フィールド中心の軽量レスポンスです。詳細が必要な場合は False にしてください。
            - 返るフィールドは `DataCatalogClass` に準拠します(title, description, publisher, modified など多数を含み、datasets も持ちます)。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idsNoカタログIDの配列。nullの場合は全カタログを取得
minimalNo最小限の情報のみ返す
include_datasetsNo配下のデータセット情報も含める

Implementation Reference

  • Tool handler for "get_data_catalog" in server.py, which calls the corresponding method on the MLITClient.
    elif name == "get_data_catalog":
        ids = arguments.get("ids")
        if ids is not None and not isinstance(ids, list):
            raise ValueError("ids must be an array of strings")
        minimal = arguments.get("minimal", False)
        include_datasets = arguments.get("include_datasets", True)
        data = await client.get_data_catalog(
            ids=ids,
            minimal=minimal,
            include_datasets=include_datasets,
        )
  • Implementation of the "get_data_catalog" tool logic in MLITClient.
    async def get_data_catalog(
        self,
        *,
        ids: Optional[List[str]] = None,
        minimal: bool = False,
        include_datasets: bool = True,
    ) -> Dict[str, Any]:
        fields = "id title" if minimal else "id title"
        q = self.build_data_catalog(ids=ids, fields=fields, include_datasets=include_datasets)
        return await self.post_query(q)
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description effectively discloses performance characteristics (labels operations as '重い'/heavy or '軽量'/lightweight), warns about large data volumes ('大量になる'), and specifies the return structure conforms to DataCatalogClass with enumerated fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear section headers (使い方/例/注意) that front-load critical information. Slightly verbose with some repetition between usage patterns and examples, but every section serves a distinct purpose (theory vs concrete examples vs technical spec details).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema exists, the description adequately compensates by specifying the return type (DataCatalogClass) and listing representative fields (title, description, publisher, modified, datasets). Also covers performance implications and parameter interactions comprehensively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While schema has 100% description coverage (baseline 3), the description adds significant practical context beyond the schema: explains that omitting ids is equivalent to null internally, clarifies the trade-offs between minimal=true/false, and details what include_datasets actually retrieves (metadata definitions, record counts).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves '詳細情報' (detailed information) of data catalogs/datasets, distinguishing it from the sibling tool 'get_data_catalog_summary'. The specific verb+resource combination is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Excellent explicit guidance with dedicated sections: '使い方' explains when to use specific parameter combinations (heavy vs recommended vs lightweight), '例' provides concrete parameter sets, and '注意' clarifies the official API spec behavior regarding null IDs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kkawailab/kklab-mlit-dpf-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server