Skip to main content
Glama
andrewlwn77
by andrewlwn77

NocoDB MCP Server

A Model Context Protocol (MCP) server that provides a comprehensive interface to NocoDB - the open source Airtable alternative. This server enables AI agents to interact with NocoDB databases, making it perfect for storing and managing operational data across multiple AI teams.

Features

  • Database Operations: List and manage NocoDB bases/projects

  • Table Management: Create, list, and delete tables with custom schemas

  • Column Management: Add columns to existing tables with full type support

  • Record CRUD: Full create, read, update, delete operations on records

  • Advanced Queries: Filter, sort, search, and aggregate data

  • View Management: Create and use different views (Grid, Gallery, Form, etc.)

  • Bulk Operations: Insert multiple records at once

  • File Attachments: Upload files locally or from URLs, attach to records

Related MCP server: Airtable MCP Server

Installation

Via NPM (Global)

npm install -g @andrewlwn77/nocodb-mcp

Via NPX (No installation)

npx @andrewlwn77/nocodb-mcp

Configuration

Environment Variables

Create a .env file in your project root:

# Required
NOCODB_BASE_URL=http://localhost:8080
NOCODB_API_TOKEN=your_api_token_here

# Optional
NOCODB_DEFAULT_BASE=your_default_base_id

Getting Your API Token

  1. Log into your NocoDB instance

  2. Click on your profile icon

  3. Select "API Tokens"

  4. Create a new token with appropriate permissions

MCP Configuration

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "nocodb": {
      "command": "npx",
      "args": ["@andrewlwn77/nocodb-mcp"],
      "env": {
        "NOCODB_BASE_URL": "http://localhost:8080",
        "NOCODB_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Or if installed globally:

{
  "mcpServers": {
    "nocodb": {
      "command": "nocodb-mcp",
      "env": {
        "NOCODB_BASE_URL": "http://localhost:8080",
        "NOCODB_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Available Tools

Database Operations

  • list_bases - List all available databases/projects

  • get_base_info - Get detailed information about a specific base

Table Management

  • list_tables - List all tables in a base

  • get_table_info - Get table schema and column information

  • create_table - Create a new table with custom schema

  • delete_table - Delete a table

  • add_column - Add a new column to an existing table

  • delete_column - Delete a column from a table

Record Operations

  • insert_record - Insert a single record

  • bulk_insert - Insert multiple records at once

  • get_record - Retrieve a specific record by ID

  • list_records - List records with filtering and pagination

  • update_record - Update an existing record

  • delete_record - Delete a record

  • search_records - Full-text search across records

Query Operations

  • query - Advanced filtering with multiple conditions

  • aggregate - Perform SUM, COUNT, AVG, MIN, MAX operations

  • group_by - Group records by a column

View Management

  • list_views - List all views for a table

  • create_view - Create a new view

  • get_view_data - Get records from a specific view

File Attachments

  • upload_attachment - Upload a local file to NocoDB storage

  • upload_attachment_by_url - Upload files from URLs

  • attach_file_to_record - Upload and attach a file to a record

  • get_attachment_info - Get attachment information from a record

Usage Examples

Creating a Table

{
  "tool": "create_table",
  "arguments": {
    "base_id": "p_abc123",
    "table_name": "customers",
    "columns": [
      {
        "title": "Name",
        "uidt": "SingleLineText",
        "rqd": true
      },
      {
        "title": "Email",
        "uidt": "Email",
        "unique": true
      },
      {
        "title": "Revenue",
        "uidt": "Number",
        "dt": "decimal"
      },
      {
        "title": "Status",
        "uidt": "SingleSelect",
        "dtxp": "'active','inactive','pending'"
      }
    ]
  }
}

Adding Columns to Existing Tables

The add_column tool allows you to dynamically add columns to existing tables. Here are some examples:

Basic Column Types

{
  "tool": "add_column",
  "arguments": {
    "table_id": "table_id_here",
    "title": "Description",
    "uidt": "LongText"
  }
}

Column with Constraints

{
  "tool": "add_column",
  "arguments": {
    "table_id": "table_id_here",
    "title": "Product Code",
    "uidt": "SingleLineText",
    "unique": true,
    "rqd": true
  }
}

Select Column with Options

{
  "tool": "add_column",
  "arguments": {
    "table_id": "table_id_here",
    "title": "Priority",
    "uidt": "SingleSelect",
    "meta": {
      "options": [
        {"title": "Low", "color": "#059669"},
        {"title": "Medium", "color": "#d97706"},
        {"title": "High", "color": "#dc2626"},
        {"title": "Critical", "color": "#7c3aed"}
      ]
    }
  }
}

Currency Column

{
  "tool": "add_column",
  "arguments": {
    "table_id": "table_id_here",
    "title": "Price",
    "uidt": "Currency",
    "meta": {
      "currency_code": "USD"
    }
  }
}

For more column type examples, see Column Types Examples.

Deleting Columns

The delete_column tool allows you to remove columns from existing tables. You can identify the column to delete by either its ID or name.

Delete by Column ID

{
  "tool": "delete_column",
  "arguments": {
    "table_id": "table_id_here",
    "column_id": "column_id_to_delete"
  }
}

Delete by Column Name

{
  "tool": "delete_column",
  "arguments": {
    "table_id": "table_id_here",
    "column_name": "ColumnToDelete"
  }
}

Note: The tool will search for columns matching either the column_name or title field, making it flexible for different naming conventions.

Inserting Records

{
  "tool": "insert_record",
  "arguments": {
    "base_id": "p_abc123",
    "table_name": "customers",
    "data": {
      "Name": "Acme Corp",
      "Email": "contact@acme.com",
      "Revenue": 50000,
      "Status": "active"
    }
  }
}

Querying with Filters

{
  "tool": "query",
  "arguments": {
    "base_id": "p_abc123",
    "table_name": "customers",
    "where": "(Status,eq,active)~and(Revenue,gt,10000)",
    "sort": ["-Revenue", "Name"],
    "fields": ["Name", "Email", "Revenue"],
    "limit": 10
  }
}

Aggregating Data

{
  "tool": "aggregate",
  "arguments": {
    "base_id": "p_abc123",
    "table_name": "customers",
    "column_name": "Revenue",
    "function": "sum",
    "where": "(Status,eq,active)"
  }
}

File Upload Examples

Upload a Local File

{
  "tool": "upload_attachment",
  "arguments": {
    "file_path": "/path/to/document.pdf",
    "storage_path": "documents/2024"
  }
}

Upload from URL

{
  "tool": "upload_attachment_by_url",
  "arguments": {
    "urls": [
      "https://example.com/image1.png",
      "https://example.com/image2.jpg"
    ],
    "storage_path": "images"
  }
}

Attach File to Record

{
  "tool": "attach_file_to_record",
  "arguments": {
    "base_id": "p_abc123",
    "table_name": "products",
    "record_id": "42",
    "attachment_field": "ProductImages",
    "file_path": "/path/to/product-photo.jpg"
  }
}

Get Attachment Information

{
  "tool": "get_attachment_info",
  "arguments": {
    "base_id": "p_abc123",
    "table_name": "products",
    "record_id": "42",
    "attachment_field": "ProductImages"
  }
}

NocoDB Field Types

Supported UI data types (uidt) for columns:

Basic Types

  • SingleLineText - Short text field

  • LongText - Multi-line text

  • Number - Integer numeric values

  • Decimal - Decimal numbers with precision

  • Checkbox - Boolean true/false

Date & Time

  • Date - Date without time

  • DateTime - Date with time

  • Time - Time only

  • Duration - Time duration

Specialized Text

  • Email - Email addresses with validation

  • URL - Web links

  • PhoneNumber - Phone numbers (note: use "PhoneNumber" not "Phone")

Numeric Types

  • Currency - Money values (requires meta.currency_code)

  • Percent - Percentage values

  • Rating - Star rating

Selection Types

  • SingleSelect - Dropdown with single selection (requires meta.options)

  • MultiSelect - Multiple selections (requires meta.options)

Advanced Types

  • Attachment - File uploads

  • JSON - JSON data storage

Virtual/Computed Columns

  • Formula - Calculated fields

  • Rollup - Aggregate related records

  • Lookup - Lookup values from related records

  • QrCode - Generate QR codes (requires meta.fk_qr_value_column_id)

  • Barcode - Generate barcodes (requires meta.fk_barcode_value_column_id)

Relational

  • LinkToAnotherRecord - Relationships between tables

  • Links - Many-to-many relationships

Special Parameters for Column Types

Some column types require additional parameters in the meta field:

  • SingleSelect/MultiSelect: meta.options array with {title, color} objects

  • Currency: meta.currency_code (e.g., "USD", "EUR")

  • QrCode: meta.fk_qr_value_column_id - ID of column to encode

  • Barcode: meta.fk_barcode_value_column_id - ID of column to encode, optional meta.barcode_format

Filter Syntax

NocoDB uses a specific syntax for filtering:

  • (field,operator,value) - Basic condition

  • ~and - AND operator

  • ~or - OR operator

  • ~not - NOT operator

Operators

  • eq - Equal to

  • neq - Not equal to

  • gt - Greater than

  • ge - Greater than or equal

  • lt - Less than

  • le - Less than or equal

  • like - Contains (use % for wildcards)

  • nlike - Does not contain

  • null - Is null

  • notnull - Is not null

Examples

  • (Status,eq,active) - Status equals "active"

  • (Revenue,gt,1000)~and(Status,eq,active) - Revenue > 1000 AND Status = "active"

  • (Name,like,%Corp%) - Name contains "Corp"

Development

Building from Source

# Clone the repository
git clone https://github.com/your-org/nocodb-mcp.git
cd nocodb-mcp

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev

Running Tests

npm test

Error Handling

The server provides detailed error messages for common issues:

  • Invalid API token

  • Base/table not found

  • Invalid column types

  • Network connectivity issues

  • Rate limiting

Best Practices

  1. Use Views: Create views for commonly accessed data subsets

  2. Batch Operations: Use bulk_insert for multiple records

  3. Field Selection: Specify only needed fields to reduce payload size

  4. Pagination: Use limit/offset for large datasets

  5. Caching: Consider caching frequently accessed data on the client side

Limitations

  • Some advanced NocoDB features may not be exposed through this interface

  • Rate limits depend on your NocoDB instance configuration

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

Support

For issues and feature requests, please create an issue on the GitHub repository.

Available Tools

25 tools
add_columnB

Add a new column to an existing table. For SingleSelect: provide options in meta. For QrCode/Barcode: provide reference column ID. PhoneNumber uses standard text storage.

ParametersJSON Schema
NameRequiredDescriptionDefault
table_idYesThe ID of the table to add column to
titleYesDisplay name of the column
column_nameNoDatabase column name (optional, will be generated from title if not provided)
uidtYesUI Data Type - Basic: SingleLineText, LongText, Number, Decimal, Currency, Percent | Date/Time: Date, DateTime, Duration | Boolean: Checkbox | Select: SingleSelect, MultiSelect | Advanced: Attachment, JSON, Email, PhoneNumber, URL, Rating | Virtual/Computed: Formula, Rollup, Lookup, QrCode, Barcode | Relational: Link, Links
dtNoDatabase data type (optional)
pkNoIs primary key (default: false)
rqdNoIs required field (default: false)
uniqueNoHas unique constraint (default: false)
aiNoIs auto increment (default: false)
unNoIs unsigned number (default: false)
cdfNoColumn default value
dtxNoDate format for Date/DateTime columns
npNoNumeric precision (for Number/Decimal types)
nsNoNumeric scale (for Decimal type)
metaNoAdditional metadata for specific column types

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions some implementation details for specific column types, it doesn't address critical behavioral aspects like whether this is a destructive operation (modifies table structure), what permissions are required, error conditions, or what happens if the operation fails. For a schema-altering tool with 15 parameters, this is a significant gap.

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?

The description is appropriately sized and front-loaded with the core purpose. The three subsequent sentences provide specific guidance for different column types without unnecessary elaboration. Every sentence serves a clear purpose, though the structure could be slightly improved with clearer separation between general and type-specific guidance.

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

Completeness2/5

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

For a complex schema-altering tool with 15 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain the tool's impact on existing data, error handling, return values, or relationships between the many parameters. The description provides only minimal guidance for a few specific column types, leaving most behavioral and operational context undocumented.

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?

The description adds some semantic context for specific parameter combinations (SingleSelect requires options in meta, QrCode/Barcode need reference column IDs, PhoneNumber uses text storage), which provides value beyond the 100% schema description coverage. However, it doesn't explain relationships between parameters or provide guidance on which parameters are most important for common use cases.

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 the specific action ('Add a new column') and target resource ('to an existing table'), distinguishing it from sibling tools like create_table (creates new table) or delete_column (removes column). It provides a precise verb+resource combination that leaves no ambiguity about the tool's function.

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

Usage Guidelines3/5

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

The description provides implied usage guidance through examples for specific column types (SingleSelect, QrCode/Barcode, PhoneNumber), but doesn't explicitly state when to use this tool versus alternatives or mention prerequisites. There's no comparison to sibling tools like update_record or create_table for similar operations.

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

aggregateC

Perform aggregation operations on a column

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesThe name of the table
column_nameYesThe column to aggregate
functionYesAggregation function
whereNoOptional filter condition

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'aggregation operations' but doesn't specify whether this is read-only, what permissions are needed, how results are returned, or any rate limits. For a tool with 5 parameters and no annotations, this is insufficient.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, clearly stating the core purpose without unnecessary elaboration.

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

Completeness2/5

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

Given 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, error conditions, or behavioral traits. For a data manipulation tool in this context, more information is needed.

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 description coverage is 100%, so all parameters are documented in the schema. The description adds no additional parameter semantics beyond implying aggregation on a column, which aligns with the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('perform aggregation operations') and the target ('on a column'), which is specific and distinguishes it from non-aggregation tools. However, it doesn't explicitly differentiate from the 'group_by' sibling tool, which might also involve aggregation operations.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'group_by' or 'query' for similar operations. It lacks context about prerequisites, when-not-to-use scenarios, or comparisons with sibling tools.

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

attach_file_to_recordC

Attach an uploaded file to a record

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesThe name of the table
record_idYesThe ID of the record
attachment_fieldYesThe name of the attachment field
file_pathYesPath to the file to upload and attach

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a write operation ('attach') but doesn't disclose permissions needed, rate limits, error conditions, or what happens if the attachment field doesn't exist. This leaves significant gaps for a mutation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's function without any wasted words. It's appropriately sized and front-loaded with the core action.

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

Completeness2/5

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

For a mutation tool with 5 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'attached' means operationally, what the response contains, or error handling, leaving too much undefined for reliable agent use.

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 description coverage is 100%, providing clear documentation for all 5 parameters. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline for adequate but unenhanced coverage.

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

Purpose4/5

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

The description clearly states the action ('attach') and target ('uploaded file to a record'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'upload_attachment' or 'upload_attachment_by_url', which prevents a perfect score.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'upload_attachment' or 'upload_attachment_by_url'. The description assumes the file is already uploaded, but doesn't clarify prerequisites or context for selection among attachment-related tools.

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

bulk_insertC

Insert multiple records into a table

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesThe name of the table
recordsYesArray of records to insert

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action without disclosing critical behavioral traits. It doesn't mention whether this is an atomic operation, what happens on partial failures, rate limits, authentication needs, or return values. For a mutation tool with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, clearly stating the core purpose without unnecessary elaboration.

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

Completeness2/5

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

Given this is a mutation tool with no annotations, no output schema, and incomplete behavioral disclosure, the description is inadequate. It should explain more about the operation's behavior, error handling, and what to expect in return, especially since it handles multiple records.

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 description coverage is 100%, so the schema already documents all three parameters (base_id, table_name, records). The description adds no additional meaning beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Insert multiple records') and target ('into a table'), which is specific and distinguishes it from single-record operations like 'insert_record'. However, it doesn't explicitly differentiate from other bulk operations that might exist, though none are listed among siblings.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'insert_record' (for single records) or other bulk operations. It lacks context about prerequisites, performance considerations, or error handling for batch inserts.

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

create_tableC

Create a new table in a base with specified columns. Supports various column types including SingleSelect (with options), PhoneNumber, QrCode, and Barcode.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesName of the new table
columnsYesArray of column definitions

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions support for various column types, it doesn't describe critical behavioral aspects: whether this operation is idempotent, what permissions are required, how errors are handled, whether the table name must be unique, or what the response looks like. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding the tool's behavior.

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?

The description is a single, efficient sentence that states the core purpose upfront. It avoids unnecessary words and gets straight to the point. However, it could be slightly more structured by separating the core action from the column type examples for better readability.

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

Completeness2/5

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

Given this is a mutation tool (creates a table) with no annotations, no output schema, and 3 required parameters, the description is incomplete. It doesn't address behavioral aspects like error handling, permissions, or response format. While the schema covers parameters well, the overall context for using this tool safely and effectively is insufficient.

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 description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds minimal value beyond the schema by mentioning specific column types (SingleSelect, PhoneNumber, QrCode, Barcode) as examples, but doesn't provide additional syntax, format details, or constraints beyond what's in the schema. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Create a new table') and resource ('in a base with specified columns'), providing a specific verb+resource combination. It distinguishes from siblings by focusing on table creation rather than column operations (add_column), data operations (insert_record), or table deletion (delete_table). However, it doesn't explicitly differentiate from similar tools like create_view, which is why it doesn't achieve a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing base), when to choose create_table over create_view, or any exclusions. The agent must infer usage from the tool name and description alone, which is insufficient for optimal tool selection.

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

create_viewC

Create a new view for a table

ParametersJSON Schema
NameRequiredDescriptionDefault
table_idYesThe ID of the table
titleYesTitle of the new view
typeNoType of view (1=Grid, 2=Gallery, 3=Form, 4=Kanban, 5=Calendar)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Create a new view' which implies a write/mutation operation, but doesn't disclose any behavioral traits such as permissions required, whether the operation is idempotent, what happens on failure, or the format of the response. This leaves significant gaps for a mutation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose ('Create a new view for a table'), making it immediately scannable and easy to understand without unnecessary elaboration.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., the new view's ID or properties), error conditions, or side effects. Given the complexity of creating a view and the lack of structured data, more context is needed for effective use.

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 description coverage is 100%, so the schema fully documents all three parameters (table_id, title, type with default and enum-like values). The description adds no additional parameter semantics beyond what's in the schema, such as explaining view types in more detail or providing examples. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description 'Create a new view for a table' clearly states the action (create) and resource (view for a table), making the purpose immediately understandable. It distinguishes from siblings like 'create_table' by specifying 'view' rather than 'table', though it doesn't explicitly contrast with other view-related tools like 'list_views' or 'get_view_data'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing table), exclusions (e.g., not for modifying existing views), or when to choose other tools like 'list_views' to check existing views first. Usage is implied but not explicitly stated.

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

delete_columnC

Delete a column from a table

ParametersJSON Schema
NameRequiredDescriptionDefault
table_idYesThe ID of the table containing the column
column_idNoThe ID of the column to delete (provide either column_id or column_name)
column_nameNoThe name of the column to delete (provide either column_id or column_name)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. 'Delete' implies a destructive mutation, but the description doesn't specify if this is irreversible, requires special permissions, affects dependent views/queries, or has rate limits. This is a significant gap for a destructive tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly.

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

Completeness2/5

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

Given this is a destructive mutation tool with no annotations and no output schema, the description is inadequate. It lacks critical context such as what happens after deletion (e.g., data loss, error handling), permissions required, or behavioral constraints, leaving the agent under-informed for safe usage.

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 description coverage is 100%, so the schema already documents all three parameters (table_id, column_id, column_name) and their purposes. The description adds no additional parameter semantics beyond what the schema provides, meeting the baseline for high coverage but not enhancing understanding.

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

Purpose4/5

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

The description clearly states the action ('Delete') and target ('a column from a table'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'delete_table' or 'delete_record' beyond the resource type, which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing table access), exclusions (e.g., cannot delete primary key columns), or comparisons to siblings like 'delete_table' or 'delete_record', leaving the agent with minimal context for selection.

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

delete_recordC

Delete a single record

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesThe name of the table
record_idYesThe ID of the record to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Delete' implies a destructive operation, it doesn't specify whether deletion is permanent, requires specific permissions, triggers cascading effects, or provides confirmation. This is inadequate for a destructive tool with zero annotation coverage.

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

Conciseness5/5

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

The description is extremely concise with just four words, front-loading the essential action and resource. Every word earns its place with zero wasted verbiage.

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

Completeness2/5

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

For a destructive operation with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after deletion, potential side effects, error conditions, or return values. The context demands more comprehensive disclosure than provided.

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 description coverage is 100%, so all three parameters (base_id, table_name, record_id) are documented in the schema. The description adds no additional parameter information beyond what's already in the structured schema, meeting the baseline expectation.

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

Purpose4/5

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

The description clearly states the action ('Delete') and resource ('a single record'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'delete_column' or 'delete_table', which also perform deletion operations on different resources.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'bulk_insert' for batch operations or 'update_record' for modifications instead of deletion. There's no mention of prerequisites, constraints, or typical use cases.

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

delete_tableC

Delete a table from the database

ParametersJSON Schema
NameRequiredDescriptionDefault
table_idYesThe ID of the table to delete

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool deletes a table, implying a destructive mutation, but doesn't cover critical aspects like whether deletion is permanent, requires specific permissions, affects related data (e.g., cascading to records), or returns confirmation. For a destructive tool with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste—it directly states the tool's purpose without redundancy. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the tool's destructive nature, lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral risks (e.g., irreversibility), permissions, side effects, or response format, which are crucial for safe invocation. The high schema coverage helps with parameters, but overall context is inadequate for a mutation tool.

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 description coverage is 100%, with the single parameter 'table_id' fully documented in the schema as 'The ID of the table to delete'. The description adds no additional meaning beyond this, such as format examples or sourcing hints, so it meets the baseline of 3 where the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Delete') and resource ('a table from the database'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'delete_column' or 'delete_record', which would require mentioning it removes entire tables rather than columns or individual records.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing table ID), exclusions (e.g., cannot delete if referenced by views), or compare to siblings like 'delete_record' (for rows) or 'delete_column' (for columns), leaving the agent to infer usage context.

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

get_attachment_infoC

Get information about file attachments in a record

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesThe name of the table
record_idYesThe ID of the record
attachment_fieldYesThe name of the attachment field

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read-only operation ('Get information'), but doesn't disclose critical details like authentication requirements, rate limits, error conditions (e.g., invalid attachment fields), or output format (e.g., JSON structure, pagination). This leaves significant gaps for agent decision-making.

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

Conciseness5/5

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

The description is a single, focused sentence with zero redundant words. It front-loads the core purpose ('Get information about file attachments in a record') without unnecessary elaboration. Every word earns its place, making it highly efficient for quick comprehension.

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

Completeness2/5

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

Given the tool's moderate complexity (4 required parameters, no output schema, no annotations), the description is insufficient. It lacks details on what information is returned, how to interpret results, error handling, or integration with sibling tools (e.g., 'upload_attachment'). For a tool with no structured output documentation, more descriptive context is needed.

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 description coverage is 100%, providing clear documentation for all 4 parameters. The description adds no additional parameter context beyond what the schema already states (e.g., it doesn't clarify 'attachment_field' semantics or provide examples). This meets the baseline for high schema coverage but doesn't enhance understanding.

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

Purpose4/5

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

The description clearly states the action ('Get information') and target ('about file attachments in a record'), which distinguishes it from sibling tools like 'attach_file_to_record' or 'upload_attachment'. However, it doesn't specify what information is retrieved (e.g., metadata, URLs, file sizes) or differentiate from 'get_record' which might also include attachment data.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a record with attachments), contrast with 'get_record' (which might return attachment info as part of a broader record), or indicate scenarios where this specialized tool is preferred over general retrieval methods.

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

get_base_infoB

Get detailed information about a specific base/project

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get detailed information' implies a read-only operation, it doesn't specify what 'detailed information' includes, whether authentication is required, rate limits, error conditions, or response format. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple retrieval tool and front-loads the essential information (action and target).

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 simple read operation with one parameter and 100% schema coverage, the description is minimally adequate. However, with no annotations and no output schema, it should ideally provide more context about what information is returned, error handling, or usage constraints to be fully complete.

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 description coverage is 100%, with the single parameter 'base_id' fully documented in the schema. The description doesn't add any parameter-specific information beyond what the schema already provides (e.g., format examples, validation rules, or what constitutes a valid base/project ID).

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

Purpose4/5

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

The description clearly states the action ('Get detailed information') and the target resource ('about a specific base/project'), providing a specific verb+resource combination. However, it doesn't explicitly distinguish this tool from similar siblings like 'get_table_info' or 'get_record', which also retrieve information about specific resources.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'list_bases' (for listing bases) and 'get_table_info' (for table details), there's no indication of when this base-level information tool is appropriate versus other information-retrieval tools.

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

get_recordC

Get a single record by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesThe name of the table
record_idYesThe ID of the record

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states the basic action ('Get a single record') without mentioning permissions, error handling, rate limits, or response format. For a read operation with zero annotation coverage, this leaves significant behavioral gaps unexplained.

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

Conciseness5/5

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

The description is perfectly concise at six words, front-loading the essential information ('Get a single record by ID') with zero wasted words. Every element earns its place, making it immediately scannable and understandable.

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

Completeness2/5

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

Given the tool's moderate complexity (3 required parameters) and lack of both annotations and output schema, the description is insufficiently complete. It doesn't explain what a 'record' contains, how IDs are formatted, what happens if the record doesn't exist, or what the return value looks like. For a core retrieval tool in this context, more contextual information is needed.

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 description coverage is 100%, so all parameters are documented in the schema. The description adds no additional parameter information beyond implying 'record_id' is the primary identifier. Since the schema does the heavy lifting, the baseline score of 3 is appropriate—the description doesn't compensate but doesn't need to.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('a single record by ID'), making the purpose immediately understandable. It distinguishes this from bulk retrieval tools like 'list_records' or 'search_records' by specifying 'single record'. However, it doesn't explicitly differentiate from similar single-record tools like 'get_attachment_info' or 'get_table_info', which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'get_record' over 'list_records' for multiple records, 'search_records' for filtered queries, or 'query' for complex retrievals. There are no prerequisites or contextual cues about appropriate use cases.

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

get_table_infoC

Get detailed information about a table including its schema

ParametersJSON Schema
NameRequiredDescriptionDefault
table_idYesThe ID of the table

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves information, implying a read-only operation, but doesn't specify permissions required, rate limits, error conditions, or what 'detailed information' includes beyond schema. This leaves significant gaps for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to understand quickly. Every part of the sentence earns its place.

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

Completeness2/5

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

Given the complexity of a tool that retrieves 'detailed information' about tables, the description is incomplete. There are no annotations, no output schema, and it doesn't specify what 'detailed information' includes (e.g., column types, constraints, metadata). This leaves the agent guessing about the return format and scope, which is inadequate for effective use.

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?

The input schema has 100% description coverage, with 'table_id' clearly documented. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate, as the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('detailed information about a table including its schema'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_base_info' or 'list_tables', which might provide related but different information.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't clarify if this is for schema details only versus data retrieval (compared to 'get_record' or 'query'), or how it differs from 'list_tables' which might provide summary information. No exclusions or prerequisites are mentioned.

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

get_view_dataC

Get records from a specific view

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesThe name of the table
view_idYesThe ID of the view
limitNoNumber of records to return
offsetNoNumber of records to skip

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get records' implies a read operation, but it doesn't specify permissions needed, rate limits, pagination behavior (beyond schema parameters), error conditions, or what 'specific view' entails (e.g., filtered/sorted data). For a tool with 5 parameters and no annotations, this is a significant gap in behavioral context.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste—'Get records from a specific view' is front-loaded and appropriately sized for its purpose. Every word earns its place, making it highly concise and well-structured.

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

Completeness2/5

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

Given the complexity (5 parameters, no output schema, no annotations, and multiple sibling tools for similar functions), the description is incomplete. It lacks context on behavior, usage guidelines, and output expectations, making it inadequate for an AI agent to fully understand when and how to invoke this tool correctly.

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 description coverage is 100%, so the schema already documents all 5 parameters with clear descriptions. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't explain relationships between parameters like how 'view_id' relates to 'table_name' or typical use cases for 'limit' and 'offset'). Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description 'Get records from a specific view' clearly states the action (get) and resource (records from a specific view), which is a specific verb+resource combination. However, it doesn't distinguish itself from sibling tools like 'get_record', 'list_records', 'query', or 'search_records' that also retrieve records, so it misses full sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, and with multiple sibling tools for retrieving records (e.g., 'get_record', 'list_records', 'query', 'search_records'), there's no indication of when this specific view-based retrieval is preferred.

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

group_byC

Group records by a column and get counts

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesThe name of the table
column_nameYesThe column to group by
whereNoOptional filter condition
sortNoSort order for groups
limitNoMaximum number of groups to return
offsetNoNumber of groups to skip

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic operation without disclosing behavioral traits like whether it's read-only, performance characteristics, error handling, or output format. It mentions 'get counts' but doesn't detail what the counts represent or the structure of results.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste, clearly front-loading the core purpose. Every word earns its place, making it easy to parse quickly.

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

Completeness2/5

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

Given the complexity of a 7-parameter tool with no annotations and no output schema, the description is incomplete. It doesn't explain the return values, error conditions, or how the grouping interacts with other parameters like 'where' or 'sort', leaving significant gaps for an AI agent.

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 description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds no additional meaning beyond implying grouping and counting, which aligns with the schema but doesn't provide extra context like examples or constraints.

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

Purpose4/5

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

The description clearly states the verb ('group') and resource ('records'), specifying the operation as grouping by a column and getting counts. It distinguishes from siblings like 'aggregate' or 'query' by focusing specifically on grouping with counts, though it doesn't explicitly compare to them.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'aggregate' or 'query', which also perform data analysis operations. The description lacks context about prerequisites, typical use cases, or exclusions.

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

insert_recordC

Insert a single record into a table

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesThe name of the table
dataYesThe record data to insert

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('insert') but does not cover critical aspects such as required permissions, error handling, response format, or whether the operation is idempotent. This leaves significant gaps for a mutation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words, making it easy to parse. It is front-loaded with the core action, achieving optimal conciseness for its purpose.

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

Completeness2/5

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

Given the complexity of a mutation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits, error cases, and return values, failing to provide the completeness needed for effective tool invocation.

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?

The input schema has 100% description coverage, documenting all three parameters clearly. The description adds no additional semantic context beyond what the schema provides, such as examples or constraints, so it meets the baseline score for high schema coverage.

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

Purpose4/5

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

The description clearly states the verb ('insert') and resource ('a single record into a table'), making the purpose unambiguous. However, it does not differentiate from sibling tools like 'bulk_insert' or 'update_record', which would require explicit comparison for a score of 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'bulk_insert' for multiple records or 'update_record' for modifications. It lacks context about prerequisites or typical use cases, offering minimal usage direction.

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

list_basesB

List all available NocoDB bases/projects

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action is to 'List all available' items, implying a read-only operation, but doesn't specify details like pagination, rate limits, error handling, or authentication requirements. For a tool with zero annotation coverage, this leaves significant behavioral aspects unclear.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It front-loads the key information ('List all available NocoDB bases/projects') efficiently, making it easy to parse. Every part of the sentence contributes directly to understanding the tool's purpose.

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?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks context on usage, behavior, or output format. Without annotations or output schema, more detail on what 'list' entails (e.g., format, limitations) would improve completeness for agent invocation.

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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here. A baseline of 4 is applied as it correctly avoids redundancy, though it doesn't enhance beyond the schema's completeness.

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

Purpose4/5

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

The description clearly states the action ('List') and the resource ('all available NocoDB bases/projects'), making the purpose evident. It doesn't explicitly differentiate from siblings like 'list_tables' or 'list_views', but the resource specificity (bases/projects) provides implicit distinction. However, it lacks explicit sibling comparison, preventing a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, such as whether it requires authentication or if there are filtering options. With siblings like 'get_base_info' that might retrieve specific base details, the lack of comparative guidance is a notable gap.

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

list_recordsC

List records from a table with optional filtering, sorting, and pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesThe name of the table
whereNoFilter condition (e.g., "(status,eq,active)")
sortNoSort fields (prefix with - for descending, e.g., "-created_at")
fieldsNoComma-separated list of fields to return
limitNoNumber of records to return (default: 25)
offsetNoNumber of records to skip
view_idNoView ID to use for filtering

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool supports filtering, sorting, and pagination but doesn't describe important behaviors like rate limits, authentication requirements, error handling, response format, or whether this is a read-only operation. For a tool with 8 parameters and no annotation coverage, this leaves significant gaps in understanding how the tool actually behaves.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose ('List records from a table') followed by key capabilities. There's zero wasted language, and every word earns its place by conveying essential information about the tool's functionality.

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

Completeness2/5

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

Given the tool's complexity (8 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain what 'records' consist of, what format they're returned in, how errors are handled, or any limitations. For a data retrieval tool with multiple filtering options and no structured output definition, the description should provide more context about the operation's scope and results.

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 description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds minimal value beyond confirming the existence of filtering, sorting, and pagination capabilities. It doesn't provide additional context about parameter interactions, default behaviors, or practical examples that would help an agent understand how to combine these parameters effectively.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('records from a table'), making the purpose immediately understandable. It distinguishes from siblings like 'get_record' (singular) and 'search_records' (implied more complex search), though not explicitly. However, it doesn't fully differentiate from 'query' which might overlap in functionality.

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

Usage Guidelines2/5

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

The description mentions optional filtering, sorting, and pagination but provides no guidance on when to use this tool versus alternatives like 'search_records' or 'query'. There's no mention of prerequisites, performance considerations, or typical use cases for this specific listing approach versus other retrieval methods available in the sibling tools.

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

list_tablesC

List all tables in a base

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but does not cover important traits like whether it's read-only, pagination behavior, error handling, or output format, leaving significant gaps for an agent.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words, making it highly concise and front-loaded. It efficiently communicates the core purpose without unnecessary elaboration.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It fails to address behavioral aspects like safety, response format, or error conditions, which are crucial for an agent to use the tool effectively in this context.

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?

The input schema has 100% description coverage, so the parameter 'base_id' is well-documented in the schema. The description adds no additional meaning beyond implying the tool operates within a base, which aligns with the schema but doesn't enhance parameter understanding.

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

Purpose4/5

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

The description clearly states the action ('List') and resource ('tables in a base'), making the purpose understandable. However, it does not differentiate from sibling tools like 'list_bases' or 'list_views', which also list resources, so it lacks explicit distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as 'list_bases' for bases or 'get_table_info' for specific table details. It also omits prerequisites like needing a valid base_id, leaving usage context unclear.

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

list_viewsC

List all views for a table

ParametersJSON Schema
NameRequiredDescriptionDefault
table_idYesThe ID of the table

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It implies a read-only operation by using 'List', but doesn't cover important aspects like pagination, rate limits, error conditions, or the format of returned data, which are critical for a list operation.

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

Conciseness5/5

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

The description is extremely concise and front-loaded, consisting of a single, clear sentence that directly states the tool's purpose. There is no wasted language or unnecessary elaboration, making it efficient for quick understanding.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a list operation. It doesn't explain what the output looks like (e.g., list of view objects, metadata), how results are structured, or any behavioral nuances, leaving significant gaps for the agent to handle the tool effectively.

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?

The schema description coverage is 100%, with the single parameter 'table_id' well-documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high schema coverage without adding value.

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

Purpose4/5

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

The description clearly states the action ('List all views') and resource ('for a table'), making the tool's purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list_tables' or 'list_bases' beyond specifying the resource type, which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for usage, or compare it to similar tools like 'list_tables' or 'get_view_data', leaving the agent to infer usage scenarios independently.

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

queryC

Execute an advanced query with filtering, sorting, and field selection

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesThe name of the table
whereNoFilter condition using NocoDB syntax (e.g., "(status,eq,active)~and(priority,gt,5)")
sortNoArray of sort fields (prefix with - for descending)
fieldsNoArray of fields to return
limitNoNumber of records to return
offsetNoNumber of records to skip

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the query is 'advanced' but doesn't specify whether it's read-only, paginated, rate-limited, or has side effects. For a query tool with 7 parameters and no annotation coverage, this is a significant gap in transparency about how the tool behaves beyond basic functionality.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose ('Execute an advanced query') and key capabilities. There's zero waste or redundancy, making it easy for an agent to parse quickly while conveying essential information.

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

Completeness2/5

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

Given the tool's complexity (7 parameters, no annotations, no output schema), the description is insufficient. It doesn't cover behavioral aspects like read/write nature, error handling, or output format, nor does it differentiate from sibling tools. For a query tool in a database context, more context is needed to guide effective use.

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 description coverage is 100%, so the schema fully documents all 7 parameters. The description adds no additional meaning beyond what's in the schema—it doesn't explain parameter relationships, default behaviors, or syntax examples beyond the schema's details. This meets the baseline for high schema coverage but doesn't enhance understanding.

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

Purpose4/5

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

The description clearly states the action ('Execute an advanced query') and the capabilities ('filtering, sorting, and field selection'), which distinguishes it from simpler retrieval tools like 'list_records' or 'get_record'. However, it doesn't explicitly mention what resource is being queried (database records), leaving some ambiguity compared to siblings like 'search_records' or 'get_view_data'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'search_records', 'list_records', or 'get_view_data'. It lacks context about prerequisites (e.g., needing base and table info) or performance considerations, leaving the agent to infer usage from the tool name and parameters alone.

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

search_recordsC

Search for records containing a query string

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesThe name of the table
queryYesSearch query string
whereNoAdditional filter condition
sortNoSort fields
limitNoNumber of records to return
offsetNoNumber of records to skip

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions searching 'containing a query string', which hints at text matching, but lacks details on permissions, rate limits, pagination (despite limit/offset params), error handling, or return format. For a search tool with 7 parameters and no annotations, this is insufficient.

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

Conciseness5/5

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

Extremely concise single sentence with zero wasted words. It's front-loaded with the core purpose ('search for records'), making it easy to parse quickly.

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

Completeness2/5

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

For a search tool with 7 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the return structure, error conditions, or behavioral nuances like how 'query' interacts with 'where'. The schema covers parameter basics, but the description fails to provide necessary context for effective use.

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 description coverage is 100%, so parameters are well-documented in the schema. The description adds minimal value by implying 'query' is for text search, but doesn't clarify interactions between 'query' and 'where', or how sorting/limiting works. Baseline 3 is appropriate as the schema handles most semantics.

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

Purpose4/5

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

The description clearly states the action ('search for records') and target resource ('records'), specifying the search is based on a 'query string'. It distinguishes from siblings like 'list_records' (which likely lists without search) and 'query' (which may have different semantics), but doesn't explicitly differentiate them.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'list_records', 'query', or 'get_record'. The description implies searching within content, but doesn't specify prerequisites, constraints, or comparative use cases with sibling tools.

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

update_recordC

Update a single record

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYesThe ID of the base/project
table_nameYesThe name of the table
record_idYesThe ID of the record to update
dataYesThe fields to update

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like whether updates are partial or full, if there are validation rules, rate limits, authentication needs, or what happens on failure. This is inadequate for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

The description is extremely concise with a single sentence, 'Update a single record', which is front-loaded and wastes no words. Every word earns its place, though this brevity contributes to gaps in other dimensions.

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

Completeness2/5

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

Given the complexity of a mutation tool with 4 required parameters, no annotations, and no output schema, the description is incomplete. It fails to explain return values, error conditions, or operational context, leaving significant gaps for an AI agent to understand how to use it effectively.

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 description coverage is 100%, so the input schema fully documents all 4 parameters. The description adds no additional meaning beyond what's in the schema, such as explaining the structure of 'data' or relationships between parameters. Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose3/5

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

The description 'Update a single record' clearly states the action (update) and resource (record), but it's vague about scope and doesn't differentiate from siblings like 'insert_record' or 'delete_record'. It lacks specificity about what constitutes a 'record' in this context.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'insert_record' for creating new records or 'delete_record' for removal. The description doesn't mention prerequisites, such as needing an existing record ID, or contextual factors like permissions or constraints.

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

upload_attachmentC

Upload a file attachment to NocoDB storage

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesPath to the file to upload
storage_pathNoOptional path in NocoDB storage

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'upload' implies a write operation, it doesn't specify permissions required, file size limits, supported formats, error conditions, or what happens on success. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a tool with two parameters and gets straight to the point without unnecessary elaboration.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after upload, what gets returned, error handling, or how this differs from sibling tools. The context demands more completeness for effective tool selection and use.

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?

The schema has 100% description coverage, with both parameters clearly documented in the structured schema. The description adds no additional parameter information beyond what's already in the schema, so it meets the baseline expectation when schema coverage is complete.

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

Purpose4/5

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

The description clearly states the action ('upload') and target ('file attachment to NocoDB storage'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from its sibling 'upload_attachment_by_url', which handles a similar function through a different method.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'upload_attachment_by_url' or 'attach_file_to_record'. There's no mention of prerequisites, constraints, or appropriate contexts for choosing this specific upload method.

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

upload_attachment_by_urlC

Upload files to NocoDB storage from URLs

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYesArray of URLs to upload
storage_pathNoOptional path in NocoDB storage

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the tool uploads files from URLs but doesn't disclose behavioral traits like authentication requirements, rate limits, file size constraints, supported URL schemes, error handling, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and context, making it easy to parse. Every part of the sentence contributes essential information.

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

Completeness2/5

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

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, error conditions, or important behavioral constraints. While concise, it lacks necessary context for safe and effective use, especially compared to siblings like 'upload_attachment'.

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 description coverage is 100%, with clear descriptions for both parameters ('urls' and 'storage_path'). The description adds no parameter-specific semantics beyond what the schema provides, such as URL format examples or storage path conventions. Baseline 3 is appropriate since the schema adequately documents parameters, but the description doesn't enhance understanding.

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

Purpose4/5

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

The description clearly states the action ('upload files') and target ('to NocoDB storage from URLs'), which is specific and actionable. It distinguishes from the sibling 'upload_attachment' (which likely handles local files) by specifying 'from URLs', though it doesn't explicitly name alternatives. However, it lacks explicit differentiation from other storage-related tools like 'attach_file_to_record'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when-not scenarios, prerequisites, or compare with siblings like 'upload_attachment' or 'attach_file_to_record'. The agent must infer usage from the name and description alone without explicit context.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 25 tool updates
    • First observedadd_column
    • First observedaggregate
    • First observedattach_file_to_record
    • First observedbulk_insert
    • First observedcreate_table
    • First observedcreate_view
    • First observeddelete_column
    • First observeddelete_record
    • First observeddelete_table
    • First observedget_attachment_info
    • First observedget_base_info
    • First observedget_record
    • First observedget_table_info
    • First observedget_view_data
    • First observedgroup_by
    • First observedinsert_record
    • First observedlist_bases
    • First observedlist_records
    • First observedlist_tables
    • First observedlist_views
    • First observedquery
    • First observedsearch_records
    • First observedupdate_record
    • First observedupload_attachment
    • First observedupload_attachment_by_url

TDQS

B3.2/5.0

Scored across 25 tools

Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between 'list_records', 'get_view_data', 'query', and 'search_records' which could cause confusion in selection. However, descriptions clarify their specific use cases, such as 'query' for advanced operations and 'search_records' for text-based searches, mitigating ambiguity.

Naming Consistency4/5

Tool names follow a consistent verb_noun pattern (e.g., 'list_bases', 'create_table', 'delete_record'), with minor deviations like 'aggregate' and 'group_by' that are still clear. Overall, the naming is predictable and enhances readability, though not perfectly uniform.

Tool Count3/5

With 25 tools, the count is borderline high for a database management server, potentially overwhelming. While it covers extensive operations, it might be slightly heavy for typical agent use, leaning towards the upper limit of reasonable scope.

Completeness5/5

The tool set provides comprehensive CRUD and lifecycle coverage for NocoDB operations, including base, table, column, record, view, and attachment management. No obvious gaps are present; it supports creation, retrieval, updating, deletion, and advanced querying across all relevant entities.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides tools for AI assistants to interact with Airtable databases, enabling CRUD operations on Airtable bases and tables.
    7 npm
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables complete interaction with Airtable databases through 16 CRUD operations including batch processing, schema management, and record manipulation. Designed for AI applications and n8n workflows with HTTP streaming support.
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables CRUD operations on NocoDB tables via natural language commands, supporting table manipulation, file upload, and bulk actions.
    72 npm
    76
    MIT