Skip to main content
Glama
onimsha

Airtable OAuth MCP Server

by onimsha
models.py2.64 kB
"""Pydantic models for Airtable API responses.""" from typing import Any from pydantic import BaseModel, Field class AirtableBase(BaseModel): """Represents an Airtable base.""" id: str name: str permission_level: str = Field(alias="permissionLevel") class ListBasesResponse(BaseModel): """Response from listing Airtable bases.""" bases: list[AirtableBase] class FieldConfig(BaseModel): """Configuration for a field.""" type: str options: dict[str, Any] | None = None class AirtableField(BaseModel): """Represents an Airtable field.""" id: str name: str type: str description: str | None = None options: dict[str, Any] | None = None class AirtableTable(BaseModel): """Represents an Airtable table.""" id: str name: str description: str | None = None primary_field_id: str = Field(alias="primaryFieldId") fields: list[AirtableField] views: list[dict[str, Any]] | None = None class BaseSchemaResponse(BaseModel): """Response from getting base schema.""" tables: list[AirtableTable] class AirtableRecord(BaseModel): """Represents an Airtable record.""" id: str fields: dict[str, Any] created_time: str | None = Field(alias="createdTime", default=None) class ListRecordsResponse(BaseModel): """Response from listing records.""" records: list[AirtableRecord] offset: str | None = None class CreateRecordsRequest(BaseModel): """Request for creating records.""" records: list[dict[str, dict[str, Any]]] typecast: bool | None = False class CreateRecordsResponse(BaseModel): """Response from creating records.""" records: list[AirtableRecord] class UpdateRecordsRequest(BaseModel): """Request for updating records.""" records: list[dict[str, Any]] typecast: bool | None = False class UpdateRecordsResponse(BaseModel): """Response from updating records.""" records: list[AirtableRecord] class DeleteRecordsResponse(BaseModel): """Response from deleting records.""" records: list[dict[str, Any]] class ListRecordsOptions(BaseModel): """Options for listing records.""" max_records: int | None = Field(alias="maxRecords", default=None) filter_by_formula: str | None = Field(alias="filterByFormula", default=None) view: str | None = None sort: list[dict[str, str]] | None = None fields: list[str] | None = None cell_format: str | None = Field(alias="cellFormat", default=None) time_zone: str | None = Field(alias="timeZone", default=None) user_locale: str | None = Field(alias="userLocale", default=None)

Implementation Reference

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/onimsha/airtable-mcp-server-oauth'

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