Antigravity-awesome-skills coda-automation
Automate Coda tasks via Rube MCP (Composio): manage docs, pages, tables, rows, formulas, permissions, and publishing. Always search tools first for current schemas.
git clone https://github.com/sickn33/antigravity-awesome-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/sickn33/antigravity-awesome-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/antigravity-awesome-skills-claude/skills/coda-automation" ~/.claude/skills/sickn33-antigravity-awesome-skills-coda-automation && rm -rf "$T"
plugins/antigravity-awesome-skills-claude/skills/coda-automation/SKILL.mdCoda Automation via Rube MCP
Automate Coda document and data operations through Composio's Coda toolkit via Rube MCP.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Coda connection via
with toolkitRUBE_MANAGE_CONNECTIONScoda - Always call
first to get current tool schemasRUBE_SEARCH_TOOLS
Setup
Get Rube MCP: Add
https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
respondsRUBE_SEARCH_TOOLS - Call
with toolkitRUBE_MANAGE_CONNECTIONScoda - If connection is not ACTIVE, follow the returned auth link to complete Coda authentication
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Search and Browse Documents
When to use: User wants to find, list, or inspect Coda documents
Tool sequence:
orCODA_SEARCH_DOCS
- Find documents [Required]CODA_LIST_AVAILABLE_DOCS
- Resolve a Coda URL to doc/page/table IDs [Alternative]CODA_RESOLVE_BROWSER_LINK
- List pages within a document [Optional]CODA_LIST_PAGES
- Get specific page details [Optional]CODA_GET_A_PAGE
Key parameters:
: Search term for finding documentsquery
: Filter to docs owned by the userisOwner
: Document ID for page operationsdocId
: Page identifier or namepageIdOrName
: Browser URL for resolve operationsurl
Pitfalls:
- Document IDs are alphanumeric strings (e.g., 'AbCdEfGhIj')
is the best way to convert a Coda URL to API IDsCODA_RESOLVE_BROWSER_LINK- Page names may not be unique within a doc; prefer page IDs
- Search results include docs shared with the user, not just owned docs
2. Work with Tables and Data
When to use: User wants to read, write, or query table data
Tool sequence:
- List tables in a document [Prerequisite]CODA_LIST_TABLES
- Get column definitions for a table [Prerequisite]CODA_LIST_COLUMNS
- List all rows with optional filters [Required]CODA_LIST_TABLE_ROWS
- Search for specific rows by query [Alternative]CODA_SEARCH_ROW
- Get a specific row by ID [Optional]CODA_GET_A_ROW
- Insert or update rows in a table [Optional]CODA_UPSERT_ROWS
- Get details of a specific column [Optional]CODA_GET_A_COLUMN
Key parameters:
: Document ID containing the tabledocId
: Table identifier or nametableIdOrName
: Filter query for searching rowsquery
: Array of row objects for upsert operationsrows
: Column IDs used for matching during upsertkeyColumns
: Column to sort results bysortBy
: Use column names instead of IDs in row datauseColumnNames
Pitfalls:
- Table names may contain spaces; URL-encode if needed
does insert if no match onCODA_UPSERT_ROWS
, update if match foundkeyColumns
must reference columns that have unique values for reliable upsertskeyColumns- Column IDs are different from column names; list columns first to map names to IDs
allows using human-readable names in row datauseColumnNames: true- Row data values must match the column type (text, number, date, etc.)
3. Manage Formulas
When to use: User wants to list or evaluate formulas in a document
Tool sequence:
- List all named formulas in a doc [Required]CODA_LIST_FORMULAS
- Get a specific formula's current value [Optional]CODA_GET_A_FORMULA
Key parameters:
: Document IDdocId
: Formula identifier or nameformulaIdOrName
Pitfalls:
- Formulas are named calculations defined in the document
- Formula values are computed server-side; results reflect the current state
- Formula names are case-sensitive
4. Export Document Content
When to use: User wants to export a document or page to HTML or Markdown
Tool sequence:
- Start an export job [Required]CODA_BEGIN_CONTENT_EXPORT
- Poll export status until complete [Required]CODA_CONTENT_EXPORT_STATUS
Key parameters:
: Document ID to exportdocId
: Export format ('html' or 'markdown')outputFormat
: Specific page to export (optional, omit for full doc)pageIdOrName
: Export request ID for status pollingrequestId
Pitfalls:
- Export is asynchronous; poll status until
is 'complete'status - Large documents may take significant time to export
- Export URL in the completed response is temporary; download promptly
- Polling too frequently may hit rate limits; use 2-5 second intervals
5. Manage Permissions and Sharing
When to use: User wants to view or manage document access
Tool sequence:
- View current sharing settings [Required]CODA_GET_SHARING_METADATA
- Get access control list settings [Optional]CODA_GET_ACL_SETTINGS
- Grant access to a user or email [Optional]CODA_ADD_PERMISSION
Key parameters:
: Document IDdocId
: Permission level ('readonly', 'write', 'comment')access
: Object with email or user ID of the recipientprincipal
: Whether to skip the sharing notification emailsuppressEmail
Pitfalls:
- Permission levels: 'readonly', 'write', 'comment'
- Adding permission sends an email notification by default; use
to preventsuppressEmail - Cannot remove permissions via API in all cases; check ACL settings
6. Publish and Customize Documents
When to use: User wants to publish a document or manage custom domains
Tool sequence:
- Publish a document publicly [Required]CODA_PUBLISH_DOC
- Unpublish a document [Optional]CODA_UNPUBLISH_DOC
- Add a custom domain for published doc [Optional]CODA_ADD_CUSTOM_DOMAIN
- Get doc categories for discovery [Optional]CODA_GET_DOC_CATEGORIES
Key parameters:
: Document IDdocId
: Custom URL slug for the published docslug
: Category IDs for discoverabilitycategoryIds
Pitfalls:
- Publishing makes the document accessible to anyone with the link
- Custom domains require DNS configuration
- Unpublishing removes public access but retains shared access
Common Patterns
ID Resolution
Doc URL -> Doc ID:
1. Call CODA_RESOLVE_BROWSER_LINK with the Coda URL 2. Extract docId from the response
Table name -> Table ID:
1. Call CODA_LIST_TABLES with docId 2. Find table by name, extract id
Column name -> Column ID:
1. Call CODA_LIST_COLUMNS with docId and tableIdOrName 2. Find column by name, extract id
Pagination
- Coda uses cursor-based pagination with
pageToken - Check response for
nextPageToken - Pass as
in next request until absentpageToken - Default page sizes vary by endpoint
Row Upsert Pattern
1. Call CODA_LIST_COLUMNS to get column IDs 2. Build row objects with column ID keys and values 3. Set keyColumns to unique identifier column(s) 4. Call CODA_UPSERT_ROWS with rows and keyColumns
Known Pitfalls
ID Formats:
- Document IDs: alphanumeric strings
- Table/column/row IDs: prefixed strings (e.g., 'grid-abc', 'c-xyz')
- Use RESOLVE_BROWSER_LINK to convert URLs to IDs
Data Types:
- Row values must match column types
- Date columns expect ISO 8601 format
- Select/multi-select columns expect exact option values
- People columns expect email addresses
Rate Limits:
- Coda API has per-token rate limits
- Implement backoff on 429 responses
- Bulk row operations via UPSERT_ROWS are more efficient than individual updates
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| Search docs | CODA_SEARCH_DOCS | query |
| List docs | CODA_LIST_AVAILABLE_DOCS | isOwner |
| Resolve URL | CODA_RESOLVE_BROWSER_LINK | url |
| List pages | CODA_LIST_PAGES | docId |
| Get page | CODA_GET_A_PAGE | docId, pageIdOrName |
| List tables | CODA_LIST_TABLES | docId |
| List columns | CODA_LIST_COLUMNS | docId, tableIdOrName |
| List rows | CODA_LIST_TABLE_ROWS | docId, tableIdOrName |
| Search rows | CODA_SEARCH_ROW | docId, tableIdOrName, query |
| Get row | CODA_GET_A_ROW | docId, tableIdOrName, rowIdOrName |
| Upsert rows | CODA_UPSERT_ROWS | docId, tableIdOrName, rows, keyColumns |
| Get column | CODA_GET_A_COLUMN | docId, tableIdOrName, columnIdOrName |
| Push button | CODA_PUSH_A_BUTTON | docId, tableIdOrName, rowIdOrName, columnIdOrName |
| List formulas | CODA_LIST_FORMULAS | docId |
| Get formula | CODA_GET_A_FORMULA | docId, formulaIdOrName |
| Begin export | CODA_BEGIN_CONTENT_EXPORT | docId, outputFormat |
| Export status | CODA_CONTENT_EXPORT_STATUS | docId, requestId |
| Get sharing | CODA_GET_SHARING_METADATA | docId |
| Add permission | CODA_ADD_PERMISSION | docId, access, principal |
| Publish doc | CODA_PUBLISH_DOC | docId, slug |
| Unpublish doc | CODA_UNPUBLISH_DOC | docId |
| List packs | CODA_LIST_PACKS | (none) |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.