Connect OpenCode to Asana and Google Sheets
What happens next
Set up in minutes
Choose where it runs
On your computer through your own OpenCode, or hosted in the cloud. The rest of setup adapts to your choice:
Pick what it can do in Asana
A preset of real Asana operations. Each one becomes a tool the agent can call, and it can't touch anything outside the list.
Pick what it can do in Google Sheets
A preset of real Google Sheets operations. Each one becomes a tool the agent can call, and it can't touch anything outside the list.
Connect Asana
One sign-in. The agent acts through your account, scoped to the operations you picked.
Connect Google Sheets
One sign-in. The agent acts through your account, scoped to the operations you picked.
Add your personal MCP link
The last step mints a private MCP URL for this agent and walks you through exactly this, with your real link filled in. The page flips to Connected the moment your OpenCode first calls in.
1. Run this in your terminal
2. Choose Remote and paste your server URL
3. Choose No when asked about OAuth authentication — the link itself is the key
<your-link> is your personal server URL — setup mints it for you.
Exact capabilities
Tools OpenCode gets
Asana
121 toolsGet the authenticated user (handy for testing credentials).
List users in a workspace (resolve assignees/followers).
Get a specific user by their gid.
List workspaces and organizations the user can access.
List teams in an organization.
List custom fields available in a workspace.
List all member records for a workspace.
Add a user (invite them) to a workspace or organization.
Remove a user from a workspace or organization.
Search across all object types in a workspace (typeahead / autocomplete).
Get a team's details.
List users in a team.
Add a user to a team.
Remove a user from a team.
List projects, optionally filtered by workspace.
Get a single project's details.
Create a new project in a workspace (optionally in a team).
Update a project's name, notes, or archived status.
Delete a project.
Duplicate a project (creates an async Job — poll the returned job_gid for completion).
List members/memberships of a project.
Add users to a project as members.
Remove users from a project.
Add followers to a project.
Remove followers from a project.
Get task counts for a project (total, completed, incomplete, etc.).
List status updates on a project.
Post a status update on a project (On Track, At Risk, Off Track).
Delete a project status update.
List status updates for a project, portfolio, or goal (modern API).
Create a status update for a project, portfolio, or goal (modern API).
Delete a status update.
Get a project brief.
Create a project brief (rich-text overview for a project).
Update a project brief's title or content.
Delete a project brief.
List project templates available in a workspace or team.
Instantiate a new project from a project template.
Save an existing project as a project template.
Poll an async job (e.g. from duplicate_project / create_project_from_template). Returns the job status and a ``new_project`` link when complete.
List custom field settings (definitions) attached to a project.
List sections within a project.
Get a single section by its gid.
Create a section in a project.
Rename or update a section.
Delete a section from a project.
List tasks in a specific section.
Search tasks in a workspace by text.
Get a single task with its fields.
Create a task (name, notes, assignee, due date, projects).
Update a task (rename, reassign, complete, set due date).
Delete a task.
Duplicate a task (optionally into the same project under a new name).
List tasks belonging to a project.
Add a task to a project (optionally into a section).
Remove a task from a project.
Move/place a task into a project section.
Set or change the parent task of a task (makes it a subtask).
List projects that a task belongs to.
List a task's subtasks.
Create a subtask under a parent task.
Get tasks that a task depends on (its dependencies).
Set tasks that must be completed before this task (dependencies).
Remove task dependencies.
Get tasks that depend on this task (dependents / blocking tasks).
Mark tasks as depending on this task (add dependents).
Remove dependent tasks from this task.
Add followers to a task.
Remove followers from a task.
List tasks that have a specific tag.
List task templates in a project.
Instantiate a task from a task template.
Add a comment (story) to a task.
List stories (comments + activity) on a task.
Get a single story (comment or activity event) by its gid.
Edit the text of a comment (story) on a task.
Delete a comment (story) from a task.
List tags in a workspace.
Get a tag by its gid.
Create a new tag in a workspace.
Update a tag's name or color.
Delete a tag.
Tag a task.
Remove a tag from a task.
List all tags on a task.
Get a custom field definition.
Create a custom field definition in a workspace.
Update a custom field's name, description, or settings.
Delete a custom field definition from the workspace.
Set a custom field value on a task.
Add a custom field to a project.
Remove a custom field from a project.
List file attachments on a task.
Delete a file attachment.
List time tracking entries on a task.
Log a time entry on a task.
Update the duration or date of an existing time tracking entry.
Delete a time tracking entry.
Get a user's personal 'My Tasks' task list.
List tasks in a user's My Tasks list.
List portfolios accessible to a user in a workspace.
Get a single portfolio's details.
Create a new portfolio.
Update a portfolio's name or public setting.
Delete a portfolio.
List projects (items) in a portfolio.
Add a project to a portfolio.
Remove a project from a portfolio.
Add members to a portfolio.
Remove members from a portfolio.
List goals in a workspace (requires premium/business plan).
Get a single goal's details.
Create a goal in a workspace or team.
Update a goal's name, status, notes, or dates.
Delete a goal.
List parent goals for a goal (supporting relationship traversal).
Set a metric on a goal (defines how goal progress is measured).
Update the current value of a goal's metric.
Add followers / collaborators to a goal.
Remove followers / collaborators from a goal.
Trigger a rule that uses an 'incoming web request' trigger.
Google Sheets
85 toolsConfiguration for reading data from a Google Sheet
Configuration for writing data to a Google Sheet
Configuration for appending rows to a Google Sheet
Configuration for clearing values from a range
Configuration for creating a new spreadsheet
Configuration for getting spreadsheet metadata
Configuration for reading multiple ranges at once
Configuration for writing to multiple ranges at once
Configuration for adding a new sheet/tab
Configuration for deleting a sheet/tab
Configuration for copying a sheet to another spreadsheet
Configuration for renaming a sheet/tab
Configuration for duplicating a sheet within the same spreadsheet
Configuration for find and replace in a spreadsheet
Configuration for inserting rows
Configuration for deleting rows
Configuration for clearing multiple ranges at once
Configuration for inserting columns
Configuration for deleting columns
Configuration for formatting a range of cells
Configuration for sheet-level display properties
Configuration for auto-sizing columns or rows to fit their contents
Configuration for setting an explicit column width or row height
Configuration for merging cells
Configuration for unmerging cells
Configuration for drawing borders on a range
Configuration for alternating row colours
Configuration for adding a filter to a range
Configuration for removing a filter
Configuration for a conditional formatting rule
Configuration for sorting a range
Configuration for adding a dropdown or input rule to a range
Configuration for removing dropdowns / input rules from a range
Configuration for removing conditional formatting rules
Configuration for removing alternating row colours
Configuration for turning a range into a Sheets table
Configuration for removing a table
Configuration for editing or reordering a conditional formatting rule
Configuration for recolouring existing banding in place
Configuration for changing a table's name, range or column types
Configuration for spreadsheet-level properties
Configuration for naming a range
Configuration for changing a named range
Configuration for removing a named range
Configuration for protecting a range from edits
Configuration for changing a protected range
Configuration for removing range protection
Configuration for putting a hover note on cells
Configuration for inserting people or link smart chips
Configuration for anchoring a pivot table
Configuration for copying a range onto another
Configuration for moving a range
Configuration for pasting delimited text
Configuration for extending a series
Configuration for splitting a column of text
Configuration for trimming whitespace
Configuration for removing duplicate rows
Configuration for shuffling rows
Configuration for inserting cells and shifting the rest
Configuration for deleting cells and shifting the rest
Configuration for moving rows or columns
Configuration for appending blank rows or columns
Configuration for adding a chart
Configuration for changing an existing chart
Configuration for moving or resizing a chart
Configuration for a chart's border colour
Configuration for removing a chart
Configuration for appending rows of cells after the last row of data
Configuration for creating a saved filter view
Configuration for changing a filter view
Configuration for copying a filter view
Configuration for removing a filter view
Configuration for grouping rows or columns
Configuration for collapsing or expanding a group
Configuration for ungrouping rows or columns
Configuration for adding a slicer control
Configuration for changing a slicer
Configuration for tagging a sheet, row or column with durable metadata
Configuration for changing developer metadata
Configuration for removing developer metadata
Configuration for connecting a BigQuery data source
Configuration for repointing a data source
Configuration for disconnecting a data source
Configuration for refreshing connected data
Configuration for cancelling a running refresh
Starting points
What you can build
Meet the runner
About OpenCode
Good to know
Frequently asked questions
Keep exploring
More ways to connect
More tools for OpenCode
Popular OpenCode pairs
Make it yours
Open your OpenCode agent in one click.
NoClick runs OpenCode for you with Asana and Google Sheets wired in as tools. Connect your account and run.