mcpbeat Sign in

Coda Automation Skill for Cursor

Automate Coda tasks via Rube MCP (Composio): manage docs, pages, tables, rows, formulas, permissions, and publishing. Always search tools first for current schemas.

2k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
3248
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/davepoon/buildwithclaude --skill coda-automation

MCP servers it needs

declared by the author in the skill header

Not in the registry: rube

The skill names a server we cannot find in the official MCP registry. It may be private, renamed, or never published — either way, the skill will not work until you have it.

The instruction itself

16 sections, as written by the author

Coda Automation via Rube MCP

Automate Coda document and data operations through Composio's Coda toolkit via Rube MCP.

Toolkit docs: composio.dev/toolkits/coda

Prerequisites

  • Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
  • Active Coda connection via RUBE_MANAGE_CONNECTIONS with toolkit coda
  • Always call RUBE_SEARCH_TOOLS first to get current tool schemas

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 RUBE_SEARCH_TOOLS responds
  • Call RUBE_MANAGE_CONNECTIONS with toolkit coda
  • 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:

  • CODA_SEARCH_DOCS or CODA_LIST_AVAILABLE_DOCS - Find documents [Required]
  • CODA_RESOLVE_BROWSER_LINK - Resolve a Coda URL to doc/page/table IDs [Alternative]
  • CODA_LIST_PAGES - List pages within a document [Optional]
  • CODA_GET_A_PAGE - Get specific page details [Optional]

Key parameters:

  • query: Search term for finding documents
  • isOwner: Filter to docs owned by the user
  • docId: Document ID for page operations
  • pageIdOrName: Page identifier or name
  • url: Browser URL for resolve operations

Pitfalls:

  • Document IDs are alphanumeric strings (e.g., 'AbCdEfGhIj')
  • CODA_RESOLVE_BROWSER_LINK is the best way to convert a Coda URL to API IDs
  • 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:

  • CODA_LIST_TABLES - List tables in a document [Prerequisite]
  • CODA_LIST_COLUMNS - Get column definitions for a table [Prerequisite]
  • CODA_LIST_TABLE_ROWS - List all rows with optional filters [Required]
  • CODA_SEARCH_ROW - Search for specific rows by query [Alternative]
  • CODA_GET_A_ROW - Get a specific row by ID [Optional]
  • CODA_UPSERT_ROWS - Insert or update rows in a table [Optional]
  • CODA_GET_A_COLUMN - Get details of a specific column [Optional]

Key parameters:

  • docId: Document ID containing the table
  • tableIdOrName: Table identifier or name
  • query: Filter query for searching rows
  • rows: Array of row objects for upsert operations
  • keyColumns: Column IDs used for matching during upsert
  • sortBy: Column to sort results by
  • useColumnNames: Use column names instead of IDs in row data

Pitfalls:

  • Table names may contain spaces; URL-encode if needed
  • CODA_UPSERT_ROWS does insert if no match on keyColumns, update if match found
  • keyColumns must reference columns that have unique values for reliable upserts
  • Column IDs are different from column names; list columns first to map names to IDs
  • useColumnNames: true allows using human-readable names in row data
  • 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:

  • CODA_LIST_FORMULAS - List all named formulas in a doc [Required]
  • CODA_GET_A_FORMULA - Get a specific formula's current value [Optional]

Key parameters:

  • docId: Document ID
  • formulaIdOrName: Formula identifier or name

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:

  • CODA_BEGIN_CONTENT_EXPORT - Start an export job [Required]
  • CODA_CONTENT_EXPORT_STATUS - Poll export status until complete [Required]

Key parameters:

  • docId: Document ID to export
  • outputFormat: Export format ('html' or 'markdown')
  • pageIdOrName: Specific page to export (optional, omit for full doc)
  • requestId: Export request ID for status polling

Pitfalls:

  • Export is asynchronous; poll status until status is 'complete'
  • 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:

  • CODA_GET_SHARING_METADATA - View current sharing settings [Required]
  • CODA_GET_ACL_SETTINGS - Get access control list settings [Optional]
  • CODA_ADD_PERMISSION - Grant access to a user or email [Optional]

Key parameters:

  • docId: Document ID
  • access: Permission level ('readonly', 'write', 'comment')
  • principal: Object with email or user ID of the recipient
  • suppressEmail: Whether to skip the sharing notification email

Pitfalls:

  • Permission levels: 'readonly', 'write', 'comment'
  • Adding permission sends an email notification by default; use suppressEmail to prevent
  • 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:

  • CODA_PUBLISH_DOC - Publish a document publicly [Required]
  • CODA_UNPUBLISH_DOC - Unpublish a document [Optional]
  • CODA_ADD_CUSTOM_DOMAIN - Add a custom domain for published doc [Optional]
  • CODA_GET_DOC_CATEGORIES - Get doc categories for discovery [Optional]

Key parameters:

  • docId: Document ID
  • slug: Custom URL slug for the published doc
  • categoryIds: Category IDs for discoverability

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 pageToken in next request until absent
  • 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) |


*Powered by Composio*

Other skills for the same job

different authors, same section of the catalogue
Protocolsio Integration
by christophacham
×4

Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.

16k tokens
Tailored Resume Generator
by frostant
×4

Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances

3k tokens
Excalidraw Diagram Generator
by github
vendor ×3

Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.

36k tokens scripts
Expo Dev Client
by openai
vendor ×3

Build and distribute Expo development clients locally or via TestFlight

961 tokens
Executing Plans
by ZhanlinCui
×3

Use when you have a written implementation plan to execute in a separate session with review checkpoints

542 tokens
Anndata
by christophacham
×3

Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.

16k tokens
Benchling Integration
by christophacham
×3

Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.

14k tokens
Biopython
by christophacham
×3

Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.

24k tokens

How to use it

Copy the folder

Take davepoon/coda-automation from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.