com.mcparmory/airtable
PYPI · MCPARMORY-AIRTABLE · 2 COMPONENTS · SCANNED SEP 20
Create, read, update, and delete records in Airtable bases and tables
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security37
- Malware scan not yet available for this package.Unverified
- No known CVEs affecting this package version or its production dependencies.Pass
- Install-script risk not yet assessed.Unverified
- 2 of 46 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (MIT License) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 131 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability70
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2109 tokens (~175/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
- Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the com.mcparmory/airtable MCP server?
com.mcparmory/airtable runs locally as a PyPI package, launched with uvx mcparmory-airtable. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · mcparmory-airtable
claude mcp add com-mcparmory-airtable -- uvx mcparmory-airtable
{
"mcpServers": {
"com-mcparmory-airtable": {
"command": "uvx",
"args": [
"mcparmory-airtable"
]
}
}
} {
"servers": {
"com-mcparmory-airtable": {
"command": "uvx",
"args": [
"mcparmory-airtable"
]
}
}
} codex mcp add com-mcparmory-airtable -- uvx mcparmory-airtable
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-mcparmory-airtable": {
"type": "local",
"command": [
"uvx",
"mcparmory-airtable"
],
"enabled": true
}
}
} openclaw mcp add com-mcparmory-airtable --command uvx --arg mcparmory-airtable
mcp_servers:
com-mcparmory-airtable:
command: "uvx"
args: ["mcparmory-airtable"] {
"McpServers": {
"com-mcparmory-airtable": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"mcparmory-airtable"
]
}
}
} assistant mcp add com-mcparmory-airtable -t stdio -c uvx -a mcparmory-airtable
{
"mcpServers": {
"com-mcparmory-airtable": {
"command": "uvx",
"args": [
"mcparmory-airtable"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 −3
- Stability: pass → 0.80 functional
- 17 Sept 26 0
- Stability: 0.97 → pass security
- 16 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 −15
- Malware scan: pass → unverified ▼ security
- 12 Sept 26 +16
- Malware scan: unverified → pass ▲ security
- 11 Sept 26 −3
- Stability: pass → 0.80 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed pypi/mcparmory-airtable@1.0.3
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Dependencies 46 packages
| Packages resolved | 46 |
|---|---|
| Stale | 1 |
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
create_records Create Records ~175
Create multiple records in a table. Submit up to 10 record objects in a single request, with cell values keyed by field name or field ID. Returns an array of newly created record IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| baseId | string | yes | The unique identifier for the base containing the target table. |
| records | array | – | Array of up to 10 record objects to create. Each record object should contain a single key with an inner object of cell values, keyed by field name or field ID. |
| tableIdOrName | string | yes | The table identifier or name. Table IDs are recommended to avoid needing request updates when table names change. |
| typecast | boolean | – | Enable automatic type conversion from string values to appropriate field types. Disabled by default to preserve data integrity; enable when integrating with third-party data sources that may require… |
No output schema declared.
No examples provided.
delete_record Delete Record ~96
Permanently deletes a single record from a table. This action cannot be undone.
| Name | Type | Req | Description |
|---|---|---|---|
| baseId | string | yes | The unique identifier of the base containing the table and record to delete. |
| recordId | string | yes | The unique identifier of the record to delete. |
| tableIdOrName | string | yes | The table identifier or name where the record is located. Can be specified by either the table's unique ID or its display name. |
No output schema declared.
No examples provided.
delete_records Delete Records ~104
Delete multiple records from a table by their record IDs. Supports batch deletion of up to 10 records in a single request.
| Name | Type | Req | Description |
|---|---|---|---|
| baseId | string | yes | The unique identifier for the base containing the table. |
| records | array | – | Array of record IDs to delete. Accepts up to 10 record IDs per request. Each ID should be a valid record identifier string. |
| tableIdOrName | string | yes | The table identifier or name where records will be deleted. |
No output schema declared.
No examples provided.
get_current_user Get Current User ~45
Retrieve the current authenticated user's identity and account information. Returns the user ID, associated OAuth scopes (if applicable), and email address (if the token has user.email:read scope).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_record Get Record ~153
Retrieve a single record by its ID from a specified table. If the record is not found in the table, the system automatically searches across the entire base and returns the record if located.
| Name | Type | Req | Description |
|---|---|---|---|
| baseId | string | yes | The unique identifier of the base containing the record. |
| cellFormat | string | – | The format for cell values in the response. Use 'json' to format cells according to their field type, or 'string' to format all cells as user-facing strings (requires timeZone and userLocale paramete… |
| recordId | string | yes | The unique identifier of the record to retrieve. |
| tableIdOrName | string | yes | The table identifier or name where the record is located. |
No output schema declared.
No examples provided.
list_table_records List Table Records ~438
Retrieve paginated records from a table with optional filtering, formatting, and view selection. Results are returned one page at a time (up to 100 records per page by default), with pagination support via offset tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| baseId | string | yes | The unique identifier for the base containing the table. |
| cellFormat | string | – | Format for cell values: 'json' returns type-specific JSON representations, 'string' returns user-facing formatted strings. When using 'string', timeZone and userLocale are required. |
| filterByFormula | string | – | A formula to filter records. Records are included if the formula evaluates to a truthy value (excluding 0, false, empty string, NaN, empty array, or #Error!). |
| maxRecords | integer | – | The maximum total number of records to return across all paginated requests. Must be at least 1. |
| offset | string | – | Pagination token from a previous response. Include this to fetch the next page of records. |
| pageSize | integer | – | Number of records to return per page. Must be between 1 and 100 (defaults to 100). |
| recordMetadata | array | – | Optional metadata to include with each record. When specified, adds commentCount to the record metadata. |
| sort_directions | array | – | List of sort directions corresponding to sort_fields. Each value must be 'asc' or 'desc'. If shorter than sort_fields, remaining fields default to 'asc'. |
| sort_fields | array | – | List of field names to sort by, in order of precedence |
| tableIdOrName | string | yes | The table identifier or name to query records from. |
| timeZone | string | – | The time zone for formatting dates when using string cell format (required if cellFormat is 'string'). Use standard time zone identifiers. |
| userLocale | string | – | The user locale for formatting dates when using string cell format (required if cellFormat is 'string'). Use standard locale codes. |
| view | string | – | Filter results to a specific view by its name or ID. Only records visible in that view will be returned. |
No output schema declared.
No examples provided.
replace_record Replace Record ~168
Destructively update a single record in a table, clearing all unspecified cell values. Use this operation when you want to replace the entire record content with new values.
| Name | Type | Req | Description |
|---|---|---|---|
| baseId | string | yes | The unique identifier for the base containing the table and record to update. |
| fields | object | yes | An object containing the cell values for the record, keyed by field name or field ID. Any fields omitted from this object will be cleared during the update. |
| recordId | string | yes | The unique identifier of the record to update. |
| tableIdOrName | string | yes | The table identifier or name. Both formats are accepted interchangeably. |
| typecast | boolean | – | Enable automatic data type conversion from string values when integrating with third-party data sources. Disabled by default to maintain data integrity. |
No output schema declared.
No examples provided.
replace_records Replace Records ~174
Replace multiple records in a table with a destructive update that clears all unincluded cell values. Supports upserting up to 10 records by matching on specified field(s).
| Name | Type | Req | Description |
|---|---|---|---|
| baseId | string | yes | The unique identifier of the base containing the table. |
| fieldsToMergeOn | array | yes | One to three field names or IDs used to match and identify records for replacement. Field IDs must uniquely identify a single record. |
| records | array | yes | Array of up to 10 records to replace or upsert, with each record containing field values to apply. |
| tableIdOrName | string | yes | The unique identifier or name of the table to update. |
| typecast | boolean | – | When enabled, Airtable will attempt to convert string values to appropriate cell types (e.g., numbers, dates). Defaults to false. |
No output schema declared.
No examples provided.
sync_table_data Sync Table Data ~158
Syncs CSV data into a Sync API table. The CSV can contain up to 10,000 rows and 500 columns, with a maximum HTTP request size of 2 MB per sync run.
| Name | Type | Req | Description |
|---|---|---|---|
| apiEndpointSyncId | string | yes | The API endpoint sync identifier, obtained from the Sync API table setup flow or the synced table settings. |
| baseId | string | yes | The unique identifier for the base containing the table to sync. |
| body | string | yes | Raw CSV data to sync into the table. Supports up to 10,000 rows and 500 columns, with a total request size not exceeding 2 MB. |
| tableIdOrName | string | yes | The table identifier or name where the CSV data will be synced. |
No output schema declared.
No examples provided.
update_record Update Record ~178
Partially update a single record in a table by specifying only the fields you want to change. Unspecified fields remain unchanged. Table names and IDs can be used interchangeably.
| Name | Type | Req | Description |
|---|---|---|---|
| baseId | string | yes | The unique identifier for the base containing the record. |
| fields | object | yes | An object containing the field values to update, keyed by field name or field ID. Only specified fields will be updated; all other fields remain unchanged. |
| recordId | string | yes | The unique identifier of the record to update. |
| tableIdOrName | string | yes | The table identifier or name where the record is located. Both table IDs and table names are accepted. |
| typecast | boolean | – | Enable automatic data type conversion from string values when updating fields. Disabled by default to preserve data integrity, but useful when integrating with third-party data sources. |
No output schema declared.
No examples provided.
update_records Update Records ~232
Update or upsert up to 10 records in a table. When performUpsert is enabled, records matching the specified merge fields are updated; non-matching records are created. Only fields included in the request are modified; all other fields remain unchanged.
| Name | Type | Req | Description |
|---|---|---|---|
| baseId | string | yes | The unique identifier of the base containing the table. |
| fieldsToMergeOn | array | yes | One to three field names or IDs used to identify which records to update or upsert. Field IDs must uniquely identify a single record. When multiple fields are specified, all must match for a record t… |
| records | array | yes | Array of record objects to update or upsert, with a maximum of 10 records per request. Each record should include the merge-on fields and any fields to be updated. |
| tableIdOrName | string | yes | The unique identifier or name of the table to update records in. |
| typecast | boolean | – | When enabled, Airtable will automatically convert string values to appropriate cell types (e.g., '123' to number, 'true' to checkbox). Defaults to false. |
No output schema declared.
No examples provided.
upload_attachment Upload Attachment ~188
Upload a file attachment (up to 5 MB) directly to an attachment field in a record. The file must be provided as base64-encoded bytes along with its content type and filename.
| Name | Type | Req | Description |
|---|---|---|---|
| attachmentFieldIdOrName | string | yes | The ID or name of the attachment field where the file will be uploaded. |
| baseId | string | yes | The unique identifier of the base containing the record. |
| contentType | string | yes | The MIME type of the file being uploaded (e.g., image/jpeg, application/pdf, text/plain). |
| file | string | yes | The file content encoded as a base64 string. The decoded file size must not exceed 5 MB. |
| filename | string | yes | The name of the file including its extension (e.g., document.pdf, photo.jpg). |
| recordId | string | yes | The unique identifier of the record where the attachment will be added. |
No output schema declared.
No examples provided.
What is the com.mcparmory/airtable MCP server?
com.mcparmory/airtable is an MCP server listed in the public MCP registry as com.mcparmory/airtable. Create, read, update, and delete records in Airtable bases and tables. This page covers its PyPI package (mcparmory-airtable).
Is the com.mcparmory/airtable MCP server safe to use?
com.mcparmory/airtable scores 60 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the com.mcparmory/airtable MCP server expose?
com.mcparmory/airtable exposes 12 tools: get_current_user, list_table_records, create_records, replace_records, update_records, and 7 more. Their descriptions and schemas cost roughly 2,109 tokens of context every time the server is loaded.
Is the com.mcparmory/airtable MCP server still maintained?
com.mcparmory/airtable is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.