list_bases
Retrieve all accessible Airtable bases to view available workspaces and tables for data management and integration.
Instructions
List all accessible Airtable bases
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/airtable_mcp/mcp/server.py:127-140 (handler)The MCP tool handler and registration for 'list_bases'. Decorated with @self.mcp.tool, it retrieves an authenticated AirtableClient and calls its list_bases() method, returning a list of base dictionaries.@self.mcp.tool(description="List all accessible Airtable bases") async def list_bases() -> list[dict[str, Any]]: """List all accessible Airtable bases.""" client = await self._get_authenticated_client() response = await client.list_bases() return [ { "id": base.id, "name": base.name, "permissionLevel": base.permission_level, } for base in response.bases ]
- AirtableClient.list_bases() method, which makes the authenticated GET request to Airtable's /v0/meta/bases endpoint and parses the response using ListBasesResponse model.async def list_bases(self) -> ListBasesResponse: """List all accessible Airtable bases. Returns: Response containing list of bases """ logger.info("Listing Airtable bases") return await self._make_request( "GET", "/v0/meta/bases", response_model=ListBasesResponse, )
- src/airtable_mcp/api/models.py:8-20 (schema)Pydantic models AirtableBase and ListBasesResponse used for parsing the Airtable API response in list_bases.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]