Dreamwork vs Sheets MCP
A side-by-side look at the Dreamwork and Sheets MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Dreamwork for workplace & productivity work over a hosted endpoint; choose Sheets MCP for workplace & productivity as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Dreamwork when
- You need dedicated capabilities in the Workplace & Productivity domain.
- You prefer a remote HTTP/SSE transport.
- Its auth model fits you: API key required.
- You have the keys it needs:
DREAMWORK_API_KEY, DREAMWORK_API_URL, DREAMWORK_UNREAD_NOTICES, DREAMWORK_TELEMETRY, DO_NOT_TRACK. - You want tools like
list_matches, get_job, save_job.
Choose Sheets MCP when
- You need dedicated capabilities in the Workplace & Productivity domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: OAuth 2.0.
- You want tools like
google_accounts, find_spreadsheet, create_spreadsheet.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Workplace & Productivity | Workplace & Productivity |
| Quality signal | 75/100 · Great | 68/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Remote HTTP/SSE | Local subprocess (stdio) |
| Auth | API key required | OAuth 2.0 |
| Pricing | Not declared | Free |
| Required env vars | DREAMWORK_API_KEYDREAMWORK_API_URLDREAMWORK_UNREAD_NOTICESDREAMWORK_TELEMETRYDO_NOT_TRACK | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 12 | 35 |
| Directory activity | 2 views 0 installs 0 upvotes | 5 views 0 installs 0 upvotes |
| Tools | 71 | 29 |
| Full listing | View Dreamwork | View Sheets MCP |
Tools & capabilities
Dreamwork tools 71
list_matchesReturns the account's ranked live match pool with job id, its Dreamwork page url, title, company, location, remote terms, salary, dates, match percent and saved/applied state. Filters narrow that pool; nextCursor continues a page with identical filters, and null ends the walk. A page holds 10 jobs by default and limit accepts up to 50; the next page is the previous nextCursor, which keeps the page size it was issued with. addedAfter supports overlapping discovery windows because listings can become servable after first discovery. notes describe applied filters and coverage.get_jobReturns one saved or corpus role by id with full description, company, location and remote terms, salary, posted date, match score, saved state, board column, application id, material readiness and work-eligibility verdict. url is the Dreamwork listing page; sourceUrl is the employer's direct posting. eligible is true for an unrestricted role or a confirmed allowed country, false for a high-confidence restriction excluding confirmed countries, and null when eligibility is unknown. Only false blocks applying or Autopilot: null means eligibility is not yet known, so proceed with applying — the application itself surfaces any real restriction. whyItMatches may be empty when no matcher explanation is stored.save_jobSaves one role to the account's pipeline at SAVED as a bookmark. No application is submitted or queued until apply is called. Application materials may start preparing in the background. An already saved role returns a no-op receipt.dismiss_matchHides one role, every listing with the same employer and title in any location, from the account's match feed, job alerts and Autopilot until the account restores or saves it. The receipt offers undo for one minute; restore_match reverses it at any time and list_dismissed_matches lists dismissed listings. The supplied reason is not stored. It does not hide other roles from the same company and does not move or remove an existing pipeline card.restore_matchReverses the dismissal of a role, every listing with the same employer and title, so it can return to the account's match feed, job alerts and Autopilot. Restoring a listing that is not dismissed returns a no-op receipt. Restoring does not save the listing. A closed listing stays out of the feed.list_dismissed_matchesReturns the account's dismissed listings, newest first, with listing id, title, company, Dreamwork page url, dismissal time and whether the listing is still active. total counts all dismissed listings. limit defaults to 20 and accepts up to 50; nextOffset continues the list and null ends it.get_pipelineReturns saved and applied roles as board cards with column, application id and last-updated time. total and counts cover all matching records; complete identifies whether cards are truncated by limit. limit defaults to 50 cards and accepts up to 100; there is no next page, so when complete is false narrow the read with status. Column values describe board state and do not establish employer receipt or response.move_pipelineMoves one role's board card to the requested column using the account holder's reported state. No employer is contacted. APPLIED records an application rather than submitting one; INTERVIEWING creates a durable interview record. WITHDRAWN removes the card from the active board. Closing a role can remove its listing from the feed. A receipt offers undo only when reversible.mark_applied_offsiteRecords an application the account holder submitted outside Dreamwork. Exactly one of matchId, listingId or url names the role; a role not yet in the pipeline is added in Applied without generating materials, and an unlisted URL is imported in the background. appliedAt (YYYY-MM-DD or ISO 8601, not in the future) is the reported application date and defaults to now; repeating the call with a new appliedAt corrects it. attestation:true is required and represents the person's confirmation that submission occurred. Recorded roles are excluded from matches and Autopilot. Applications Dreamwork is still sending are refused. There is no undo. This call does not send an application.import_jobFetches a public job-posting URL and imports it as a private role in the account's pipeline. Extraction runs asynchronously and the card appears when it finishes. A posting already held by Dreamwork returns completed without another fetch.cancel_applyStops a queued or in-progress application when submission can still be prevented. Already submitted applications cannot be recalled; the receipt reports that boundary.generate_packQueues a tailored resume, cover letter and employer-question answers for one saved role. assets optionally selects a subset; omission requests all three. Each request spends one pack allowance, regardless of subset, and generation settles asynchronously. Existing materials can be overwritten by generation.- +59 more on the listing page
Sheets MCP tools 29
google_accountsManage the Google accounts Sheets MCP can use. list: show signed-in accounts and the default. add: sign in to a Google account (opens a browser sign-in; also use this when a sign-in has expired). remove: sign an account out and revoke access. set_default: choose the account used for new spreadsheets.find_spreadsheetFind a spreadsheet by name among the ones the user has opened or created with Sheets MCP before (the list is kept on their computer). Use it when the user names a sheet instead of pasting a link, e.g. "my budget sheet". It can't search the rest of their Google Drive: if nothing matches, ask for the link. Leave query empty to list the most recent.create_spreadsheetCreate a new Google Sheets spreadsheet.get_spreadsheet_infoGet a spreadsheet's title, tabs (sizes, frozen rows/cols), charts (ids, types, data ranges), named ranges, and the first few rows of each tab. Call this first to understand a sheet's layout.read_rangeRead cell contents from a range, or its formatting with mode "formats". Large ranges are truncated; use next_range to continue.read_rangesRead several ranges in one call, across any tabs. Faster than calling read_range repeatedly. Each range is truncated to its share of max_cells; use its next_range with read_range to continue.write_rangeWrite values and/or formulas starting at the top-left cell of the range. Input is parsed like typing into the UI (formulas, dates, percentages work). Previous contents are saved for undo_last. Returns any formula errors found after writing.fill_rangeFill cells from a source block, like dragging the fill handle or pasting onto a bigger selection: the source's formulas (relative references shift), values and formatting repeat across the destination. Use it after writing one row or column of formulas to extend them across a table, instead of sending every column. With continue_series, patterns continue instead (1, 2, 3 → 4, 5, 6; Jan → Feb; dates). The destination's previous contents are saved for undo_last. Returns any formula errors found after filling.append_rowsAppend rows after the last row of data in a table (detected from the given range or tab).clear_rangeClear values and formulas in a range (formatting is kept). Previous contents are saved for undo_last.find_replaceFind and replace text across a tab or the whole spreadsheet. Not undoable - consider read_range first.undo_lastUndo the most recent write_range, append_rows, or clear_range made through this server (restores values/formulas only, not formatting or structure). History is kept in memory until the server restarts.- +17 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Dreamwork
{
"mcpServers": {
"dreamwork-2": {
"command": "npx",
"args": [
"-y",
"@dreamworkhq/mcp"
],
"env": {
"DREAMWORK_API_KEY": "YOUR_DREAMWORK_API_KEY_HERE",
"DREAMWORK_API_URL": "YOUR_DREAMWORK_API_URL_HERE",
"DREAMWORK_UNREAD_NOTICES": "YOUR_DREAMWORK_UNREAD_NOTICES_HERE",
"DREAMWORK_TELEMETRY": "YOUR_DREAMWORK_TELEMETRY_HERE",
"DO_NOT_TRACK": "YOUR_DO_NOT_TRACK_HERE"
}
}
}
}
Sheets MCP
{
"mcpServers": {
"sheets-mcp": {
"command": "npx",
"args": [
"-y",
"@sheetsmcp/server"
]
}
}
}
Frequently asked questions
Dreamwork is categorized under Workplace & Productivity and uses a remote HTTP/SSE transport. Sheets MCP belongs to Workplace & Productivity and uses a local stdio subprocess. Pick Dreamwork for workplace & productivity work and Sheets MCP for workplace & productivity.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Dreamwork has no declared pricing — check the project's own site. Auth: api key required. Sheets MCP is listed as free. Auth: oauth 2.0. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add dreamwork-2 and sheets-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Dreamwork has a quality signal of 75/100 (Great) with 2 views, 0 installs and 12 GitHub stars. Sheets MCP has 68/100 (Great) with 5 views, 0 installs and 35 GitHub stars.