Skip to main content
Glama

notion_create_database

Create a full Notion database from a Markdown table in one step, using the header row as property names and remaining rows as entries.

Instructions

Create a full database in ONE step from a Markdown table (header row = property names, other rows = entries). Much faster than adding rows/cells one by one: pastes the table, turns it into a database and names it. Columns start as text; change types afterwards with notion_run_code (n.db.headerMenu) if needed.

Input Schema

NameRequiredDescriptionDefault
pageNoPage URL or id. Default: the active Notion tab.
afterNo
tableYesMarkdown table, e.g. "| Name | Owner |\n| --- | --- |\n| Task | Sam |"
titleYes
positionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose one genuinely useful behavioral trait: columns start as text and types must be changed afterwards. It omits permissions/scoping needs, whether creation fails on an invalid page target, and what the tool returns (e.g. a database id or URL) so the agent can chain calls.

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?

Front-loaded with the core action and input format, and short overall. The middle clause ('pastes the table, turns it into a database and names it') slightly restates the opening sentence, which is minor waste but not damaging.

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

Completeness3/5

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

For a 5-parameter mutation tool with no annotations and no output schema, the description covers the main flow and the column-type caveat but leaves two parameters and the return value undocumented. An agent can call it, but cannot confidently chain on the result or control placement.

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

Parameters3/5

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

Schema coverage is only 40%, so the description must compensate; it does clarify `table` semantics (header row = property names) and that `title` names the database. However `after` and `position` are left entirely unexplained in both schema and description, and the interaction between `page` default and insertion placement is not addressed.

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?

States a specific verb and resource ('Create a full database') plus the distinctive input mechanism ('from a Markdown table'), which cleanly separates it from row-by-row insertion siblings like notion_insert. The parenthetical mapping of header row to property names and other rows to entries makes the operation unambiguous.

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

Usage Guidelines4/5

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

Explicitly positions itself against the alternative ('Much faster than adding rows/cells one by one'), giving a clear reason to pick it over incremental insertion. It also routes the follow-up task of changing column types to notion_run_code (n.db.headerMenu), but gives no exclusion criteria such as when a Markdown table is unsuitable or when to create an empty database instead.

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