Skip to main content
A data dictionary is a markdown document bundled with a service that describes its real-world data patterns, field conventions, relationships, and sample data. It provides context that tool schemas alone cannot — actual enum values, ID format patterns, nullable fields in practice, and relationship cardinality.

Why it matters

Tool schemas define how to call a service, but not what the data looks like in practice. The gap varies by service type: API services (Shopify, GitHub, Slack) — tool schemas describe the available resources, but the data dictionary adds real-world patterns: a status field is actually an enum with values active, draft, and archived; product IDs use Shopify GID format like gid://shopify/Product/123456789; the metadata field contains parseable JSON. Data platform services (Snowflake, PostgreSQL, Elasticsearch) — tool schemas only describe how to run queries. They contain no information about what tables exist in the account, what columns those tables have, how tables relate to each other, or what the data means. The data dictionary bridges this gap entirely — documenting the account’s schema, table relationships, column semantics, and sample data so that AI agents can construct meaningful queries. AI agents and apps call get_data_dictionary before using a service to understand these patterns.

Structure

The data dictionary is defined in src/dataDictionary.ts:

The get_data_dictionary tool

The data dictionary is exposed at runtime through a get_data_dictionary tool so that AI agents and apps can retrieve it before interacting with the service.

Tool definition

Handler

Content guidelines

A good data dictionary documents what schemas cannot: