Install
$ agentstack add skill-davepoon-buildwithclaude-coda-automation ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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 (RUBESEARCHTOOLS available)
- Active Coda connection via
RUBE_MANAGE_CONNECTIONSwith toolkitcoda - Always call
RUBE_SEARCH_TOOLSfirst 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_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitcoda - 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_DOCSorCODA_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 documentsisOwner: Filter to docs owned by the userdocId: Document ID for page operationspageIdOrName: Page identifier or nameurl: Browser URL for resolve operations
Pitfalls:
- Document IDs are alphanumeric strings (e.g., 'AbCdEfGhIj')
CODA_RESOLVE_BROWSER_LINKis 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 tabletableIdOrName: Table identifier or namequery: Filter query for searching rowsrows: Array of row objects for upsert operationskeyColumns: Column IDs used for matching during upsertsortBy: Column to sort results byuseColumnNames: Use column names instead of IDs in row data
Pitfalls:
- Table names may contain spaces; URL-encode if needed
CODA_UPSERT_ROWSdoes insert if no match onkeyColumns, update if match foundkeyColumnsmust 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: trueallows 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 IDformulaIdOrName: 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 exportoutputFormat: 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
statusis '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 IDaccess: Permission level ('readonly', 'write', 'comment')principal: Object with email or user ID of the recipientsuppressEmail: Whether to skip the sharing notification email
Pitfalls:
- Permission levels: 'readonly', 'write', 'comment'
- Adding permission sends an email notification by default; use
suppressEmailto 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 IDslug: Custom URL slug for the published doccategoryIds: 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
pageTokenin 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 RESOLVEBROWSERLINK 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 | CODASEARCHDOCS | query | | List docs | CODALISTAVAILABLEDOCS | isOwner | | Resolve URL | CODARESOLVEBROWSERLINK | url | | List pages | CODALISTPAGES | docId | | Get page | CODAGETAPAGE | docId, pageIdOrName | | List tables | CODALISTTABLES | docId | | List columns | CODALISTCOLUMNS | docId, tableIdOrName | | List rows | CODALISTTABLEROWS | docId, tableIdOrName | | Search rows | CODASEARCHROW | docId, tableIdOrName, query | | Get row | CODAGETAROW | docId, tableIdOrName, rowIdOrName | | Upsert rows | CODAUPSERTROWS | docId, tableIdOrName, rows, keyColumns | | Get column | CODAGETACOLUMN | docId, tableIdOrName, columnIdOrName | | Push button | CODAPUSHABUTTON | docId, tableIdOrName, rowIdOrName, columnIdOrName | | List formulas | CODALISTFORMULAS | docId | | Get formula | CODAGETAFORMULA | docId, formulaIdOrName | | Begin export | CODABEGINCONTENTEXPORT | docId, outputFormat | | Export status | CODACONTENTEXPORTSTATUS | docId, requestId | | Get sharing | CODAGETSHARINGMETADATA | docId | | Add permission | CODAADDPERMISSION | docId, access, principal | | Publish doc | CODAPUBLISHDOC | docId, slug | | Unpublish doc | CODAUNPUBLISHDOC | docId | | List packs | CODALIST_PACKS | (none) |
Powered by Composio
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: davepoon
- Source: davepoon/buildwithclaude
- License: MIT
- Homepage: https://www.buildwithclaude.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.