Skip to main content
Glama
dbett4

regulated-reporting-mcp

by dbett4

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
WORKIVA_REGIONNoThe Workiva API region: 'us' (default), 'eu', or 'apac'.us
WORKIVA_ENV_FILENoPath to a .env file containing Workiva credentials (WORKIVA_CLIENT_ID, WORKIVA_CLIENT_SECRET, etc.).
WORKIVA_MCP_MOCKNoSet to '1' to run against the in-memory FakeWorkiva mock (no credentials needed).0
WORKIVA_CLIENT_IDNoOAuth2 client ID for a real Workiva workspace.
WORKIVA_CLIENT_SECRETNoOAuth2 client secret for a real Workiva workspace.
WORKIVA_MCP_RECEIPT_DIRNoDirectory where write receipts are stored. Defaults to ~/.workiva_mcp/receipts/.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
workiva_list_organizationsB

List organizations.

workiva_get_organizationC

Get organization details.

Args: org_id: Organization ID

workiva_list_organization_usersB

List users in an organization.

Args: org_id: Organization ID

workiva_list_organization_rolesB

List roles in an organization.

Args: org_id: Organization ID

workiva_list_organization_solutionsA

List solutions enabled for an organization.

Args: org_id: Organization ID

workiva_organizationA

DEPRECATED — use workiva_list_organizations / workiva_get_organization / workiva_list_organization_users / workiva_list_organization_roles / workiva_list_organization_solutions.

Kept as a backward-compatibility shim; dispatches to the single-verb tools above.

workiva_list_workspacesC

List workspaces.

workiva_get_workspaceC

Get workspace details.

Args: workspace_id: Workspace ID

workiva_list_workspace_groupsC

List groups in a workspace.

Args: workspace_id: Workspace ID

workiva_list_workspace_membershipsA

List memberships in a workspace or workspace group.

Args: workspace_id: Workspace ID group_id: Group ID (optional — limits to a group's memberships)

workiva_workspaceA

DEPRECATED — use workiva_list_workspaces / workiva_get_workspace / workiva_list_workspace_groups / workiva_list_workspace_memberships.

Kept as a backward-compatibility shim; dispatches to the single-verb tools above.

workiva_read_cellsA

Read cell values from a spreadsheet table. Returns data in TSV format.

Args: table_id: The table UUID (get from workiva_spreadsheet_sheets) start_row: First row to read (0-based, default 0) end_row: Last row to read (-1 = up to MAX_CELL_ROWS rows) start_col: First column to read (0-based, default 0) end_col: Last column to read (-1 = all columns)

workiva_write_cellsA

Write values to cells via the v2026 values API.

PUT /spreadsheets/{spreadsheet_id}/sheets/{sheet_id}/values/{A1Range}. Formulas pass through as text starting with "=". Cells are grouped by row and written as one PUT per row with empty strings filling any column gaps.

Args: spreadsheet_id: The spreadsheet UUID sheet_id: The sheet UUID (from workiva_spreadsheet_sheets) cells: [{row, col, value}] with 0-based row/col

workiva_write_verifiedA

Write values/formulas, read back each row range, and report mismatches.

Formula cells are written, but Values API read-back may return calculated results rather than raw formula text. Those cells are reported separately as unverified so callers know when table-cell rawValue inspection is still needed.

Args: spreadsheet_id: The spreadsheet UUID sheet_id: The sheet UUID (from workiva_spreadsheet_sheets) cells: [{row, col, value}] with 0-based row/col retry_misses: Deprecated compatibility flag. Retries are intentionally disabled; mismatches are returned for an explicit, separately approved repair.

workiva_format_cellsA

Format cells via POST /content/tables/{tableId}/cells/edit (v2026).

table_id here is the sheet's OPAQUE content-table TOKEN (sheet.table.table — a long base64-ish string), NOT a 32-hex UUID. The legacy UUID path 404s on v2026. Colors are RGB objects {red, green, blue} with integer channels 0–255.

⚠️ v2026 PERSISTENCE (live-verified 2026-05-31 with before/after readback): NOT every op that returns 202 actually applies. On this cells/edit endpoint:

  • setCellsProperties (fillColor) — ✅ PERSISTS. Use this for cell fill.

  • setCellsBorders — borders (use NO_BORDER to clear; dedupe per edge).

  • formatCells (font/bold/color) — ⚠️ returns 202 but does NOT persist on v2026. For font/bold/size use the SEPARATE platform path: POST /spreadsheets/{ss}/sheets/{sid}/update with applyFormats.textFormat (fontFamily/fontSize/bold) — NOT exposed by this tool; call via api_request.

  • valueFormat / dataValidation / conditionalFormat — NO proven REST route on v2026 (UI-only); cells/edit returns 400 MalformedValue for DV/CF. A 202 from this tool is acceptance, NOT proof of apply — read the cell properties back to confirm.

Args: table_id: The opaque content-table token (from describe_workbook / get_sheet → table.table) operations: Array of format operations. Recommended types: - setCellsProperties (PERSISTS): {"type":"setCellsProperties","setCellsProperties":{"ranges":[...],"fillColor":{"red":230,"green":240,"blue":255}}} - setCellsBorders: {"type":"setCellsBorders","setCellsBorders":{"ranges":[...],"bottom":{"color":{"red":0,"green":0,"blue":0},"style":"single","weight":1}}} - formatCells (⚠️ 202 but no-persist on v2026 — see note): {"type":"formatCells","formatCells":{"ranges":[...],"color":{...},"fontFamily":"Arial","bold":true}}

workiva_edit_table_structureA

Edit table structure — resize, autofit, hide/unhide, merge, insert/delete rows/columns.

Args: table_id: The table UUID operation: One of: resizeColumns, resizeRows, autofitColumns, autofitRows, hideColumns, hideRows, unhideColumns, unhideRows, mergeCells, unmergeCells, insertColumns, insertRows, deleteColumns, deleteRows params: Operation-specific parameters including "revision". Examples: resizeColumns: {"revision": "...", "columns": [0, 1], "width": 120} hideColumns: {"revision": "...", "columns": [2, 3]} mergeCells: {"ranges": [{"startRowIndex": 0, "endRowIndex": 1, "startColumnIndex": 0, "endColumnIndex": 4}]} insertRows: {"revision": "...", "index": 5, "count": 2}

mergeCells/unmergeCells take a `ranges` LIST of half-open index objects
{startRowIndex, endRowIndex, startColumnIndex, endColumnIndex} (end-EXCLUSIVE:
the example above merges A1:D1). A singular `range` is auto-wrapped into `ranges`.
These ops are ASYNC — the endpoint returns 202 with `operationLocation` in the
body; poll that URL until status == "completed" to confirm the merge applied.
workiva_list_chainsC

List Wdata chains.

Args: max_results: Max results to return

workiva_get_chainC

Get chain details.

Args: chain_id: The chain UUID

workiva_list_chain_runsC

List runs of a chain.

Args: chain_id: The chain UUID

workiva_list_chain_run_nodesA

List nodes within a chain run.

Args: chain_id: The chain UUID run_id: The chain run ID

workiva_chainsA

DEPRECATED — use workiva_list_chains / workiva_get_chain / workiva_list_chain_runs / workiva_list_chain_run_nodes.

Kept as a backward-compatibility shim; dispatches to the single-verb tools above.

workiva_run_chainB

Trigger a chain run.

Args: chain_id: The chain UUID environment_id: Environment ID (optional) runtime_inputs: Runtime input parameters as key-value pairs (optional)

workiva_chain_runA

DEPRECATED — use workiva_run_chain.

Kept as a backward-compatibility shim; dispatches to the single-verb tool above.

workiva_get_table_propertiesC

Get table properties.

Args: table_id: The table UUID

workiva_update_table_propertiesC

Update table properties via JSON Patch.

Args: table_id: The table UUID patches: JSON Patch array

workiva_get_table_columnsB

Get column properties for a table.

Args: table_id: The table UUID

workiva_get_table_rowsB

Get row properties for a table.

Args: table_id: The table UUID

workiva_table_propertiesA

DEPRECATED — use workiva_get_table_properties / workiva_update_table_properties / workiva_get_table_columns / workiva_get_table_rows.

Kept as a backward-compatibility shim; dispatches to the single-verb tools above.

workiva_get_style_guideB

Get style guide details.

Args: style_guide_id: The style guide UUID

workiva_export_style_guideA

Export a style guide.

Args: style_guide_id: The style guide UUID

workiva_import_style_guideC

Import a style guide.

Args: style_guide_id: The style guide UUID

workiva_style_guideA

DEPRECATED — use workiva_get_style_guide / workiva_export_style_guide / workiva_import_style_guide.

Kept as a backward-compatibility shim; dispatches to the single-verb tools above.

workiva_list_documentsA

List documents in the workspace.

Args: filter: OData filter (e.g., "name contains 'ACFR'") max_results: Maximum results to return

workiva_get_documentA

Get document details.

Args: document_id: The document UUID expand: Comma-separated subresources (e.g., "sections")

workiva_export_documentB

Export a document.

Args: document_id: The document UUID format: Export format — pdf, docx, or xhtml options: Format-specific options (optional)

workiva_list_document_sectionsA

List sections within a document.

Args: document_id: The document UUID

workiva_get_document_sectionB

Get a single document section.

Args: document_id: The document UUID section_id: The section UUID

workiva_create_document_sectionA

Create a new section within a document.

Args: document_id: The document UUID name: Section name (optional) index: Position index (-1 = append)

workiva_delete_document_sectionB

Delete a document section.

Args: document_id: The document UUID section_id: The section UUID

workiva_copy_document_sectionA

Copy a document section within or to another document.

Args: document_id: Source document UUID section_id: Section UUID to copy target_document_id: Destination document UUID (empty = same document)

workiva_bulk_edit_document_sectionsB

Bulk-edit sections within a document.

Args: document_id: The document UUID edits: Bulk edit operations

workiva_document_sectionsA

DEPRECATED — use workiva_list_document_sections / workiva_get_document_section / workiva_create_document_section / workiva_delete_document_section / workiva_copy_document_section / workiva_bulk_edit_document_sections.

Kept as a backward-compatibility shim; dispatches to the single-verb tools above.

workiva_read_rich_text_paragraphsC

Read paragraphs from a rich text resource.

Args: rich_text_id: The richText UUID

workiva_batch_edit_rich_textC

Batch edit rich text paragraphs.

Args: rich_text_id: The richText UUID revision: Current revision data: Edit operations

workiva_duplicate_rich_textB

Duplicate a rich text resource.

Args: rich_text_id: The richText UUID

workiva_rich_textB

DEPRECATED — use workiva_read_rich_text_paragraphs / workiva_batch_edit_rich_text / workiva_duplicate_rich_text.

Kept as a backward-compatibility shim; dispatches to the single-verb tools above.

workiva_list_filesB

List files in the Workiva workspace.

Args: filter: OData filter (e.g., "name contains 'budget'", "kind eq 'Spreadsheet'") order_by: Sort order (e.g., "modified.dateTime desc", "name asc") max_results: Maximum files to return (default 50)

workiva_get_fileA

Get details for a specific file by ID.

Args: file_id: The file UUID

workiva_create_fileB

Create a new file or folder in Workiva.

Args: name: File name kind: File type — Spreadsheet, Document, Presentation, or Folder container: Parent folder ID (optional)

workiva_delete_fileB

Return the explicit REST unsupported message for Workiva file deletion.

workiva_import_fileB

Import a local file (xlsx/docx) into Workiva.

Args: name: Display name in Workiva file_name: Original filename (e.g., "report.xlsx") kind: Spreadsheet or Document file_path: Local path to the file to upload

workiva_export_fileA

Export a file from Workiva. Returns a download URL.

Args: file_id: The file UUID format: Export format (xlsx, pdf, csv, docx, xhtml)

workiva_update_fileA

Update a file using JSON Patch operations (rename, move, etc.).

Args: file_id: The file UUID patches: JSON Patch array, e.g. [{"op": "replace", "path": "/name", "value": "New Name"}]

workiva_file_permissionsA

Get or modify file permissions.

Args: file_id: The file UUID operation: "get" to list permissions, "modify" to change them to_assign: Permissions to assign, e.g. [{"permission": "Edit", "principal": "user-id"}] to_revoke: Permissions to revoke, e.g. [{"permission": "Edit", "principal": "user-id"}]

workiva_create_anchorC

Create a source anchor on spreadsheet cells.

Args: table_id: The table UUID (from workiva_spreadsheet_sheets) revision: Current table revision string start_row: Start row (0-based) stop_row: Stop row (0-based, same as start for single cell) start_column: Stop column (0-based, same as start for single cell) stop_column: Stop column (0-based, same as start for single cell)

workiva_create_destination_linkA

Insert a destination link in a document or table cell.

Args: target_type: "richText" for document paragraphs, "table" for doc-table cells target_id: The richText UUID or doc-table UUID revision: Current revision of the target source_anchor: The source anchor ID for richText targets (from workiva_create_anchor) paragraph_index: Paragraph index for richText targets (0-based) offset: Character offset within the paragraph for richText targets row: Row index (deprecated for table targets; unused in range-link flow) column: Column index (deprecated for table targets; unused in range-link flow) source_range_link: (table branch only) ID of the source range link created via a createSource call on the spreadsheet table. Required when target_type=="table" (the full workflow is createSource → createDestination). source_table: (table branch only) ID of the spreadsheet source table. Required when target_type=="table".

NOTE — table branch: The legacy insertCellDestinationLink / /content/tables/{id}/links/edit path is dead (proven 404 in production, 2026-06). The table branch now uses the proven range-link createDestination flow: POST /content/tables/{target_id}/rangeLinks/edit body: {"type":"createDestination","createDestination":{"sourceRangeLink": ..., "sourceTable": ...}} This requires a pre-created source range-link ID (from createSource on the spreadsheet table) and the source table ID.

workiva_list_range_linksB

List range links on a table.

Args: content_id: The content/spreadsheet UUID table_id: The table UUID

workiva_get_range_linkB

Get a single range link.

Args: content_id: The content/spreadsheet UUID table_id: The table UUID range_link_id: The range link ID

workiva_get_range_link_destinationsB

List destinations for a range link.

Args: content_id: The content/spreadsheet UUID table_id: The table UUID range_link_id: The range link ID

workiva_edit_range_linkC

Edit a range link via PATCH.

Args: content_id: The content/spreadsheet UUID table_id: The table UUID range_link_id: The range link ID data: Edit data

workiva_range_linksA

DEPRECATED — use workiva_list_range_links / workiva_get_range_link / workiva_edit_range_link / workiva_get_range_link_destinations.

Kept as a backward-compatibility shim; dispatches to the single-verb tools above.

workiva_full_link_flowA

End-to-end linking: create anchor on spreadsheet, insert destination in document/table, optionally publish.

Args: spreadsheet_id: The spreadsheet UUID (for publish step) table_id: Source table UUID (where the anchor goes) table_revision: Current revision of the source table source_row: Row of the cell to anchor (0-based) source_column: Column of the cell to anchor (0-based) target_type: "richText" for document or "table" for table cell destination target_id: Target richText UUID or table UUID target_revision: Current revision of the target paragraph_index: For richText targets — paragraph index offset: For richText targets — character offset target_row: For table targets — destination row target_column: For table targets — destination column publish: Whether to publish links after creation (default True)

workiva_list_spreadsheetsA

List spreadsheets in the workspace.

Args: filter: OData filter (e.g., "name contains 'ACFR'") max_results: Maximum results to return

workiva_get_spreadsheetB

Get spreadsheet details.

Args: spreadsheet_id: The spreadsheet UUID expand: Comma-separated subresources to include (e.g., "sheets,milestones")

workiva_list_sheetsA

List sheets within a spreadsheet.

Args: spreadsheet_id: The spreadsheet UUID

workiva_get_sheetB

Get details for a single sheet.

Args: spreadsheet_id: The spreadsheet UUID sheet_id: The sheet UUID

workiva_create_sheetA

Create a new sheet in a spreadsheet.

Args: spreadsheet_id: The spreadsheet UUID name: Sheet name (optional — Workiva assigns one if omitted) index: Position index (-1 = append)

workiva_delete_sheetA

Delete a sheet from a spreadsheet.

Args: spreadsheet_id: The spreadsheet UUID sheet_id: The sheet UUID to delete

workiva_copy_sheetA

Copy a sheet within the same spreadsheet or into a target spreadsheet.

Args: spreadsheet_id: The source spreadsheet UUID sheet_id: The sheet UUID to copy target_spreadsheet_id: Destination spreadsheet UUID (empty = copy within source)

workiva_spreadsheet_sheetsA

DEPRECATED — use workiva_list_sheets / workiva_get_sheet / workiva_create_sheet / workiva_delete_sheet / workiva_copy_sheet.

Kept as a backward-compatibility shim; dispatches to the single-verb tools above.

workiva_export_spreadsheetB

Export a spreadsheet.

Args: spreadsheet_id: The spreadsheet UUID format: Export format — xlsx, pdf, or csv

workiva_publish_linksB

Publish links in a spreadsheet, document, or presentation.

Args: file_id: The file UUID file_type: spreadsheet, document, or presentation publish_type: ownLinks (links owned by this file), allLinks, or selectedLinks

workiva_reapply_filtersC

Reapply filters on a file.

Args: file_id: The file UUID file_type: spreadsheet, document, presentation, or table

workiva_get_presentationA

Get presentation details.

Args: presentation_id: The presentation UUID

workiva_list_presentation_layoutsC

List layouts in a presentation.

Args: presentation_id: The presentation UUID

workiva_list_presentation_slidesA

List slides in a presentation.

Args: presentation_id: The presentation UUID

workiva_get_presentation_slideC

Get a single presentation slide.

Args: presentation_id: The presentation UUID slide_id: The slide ID

workiva_update_presentation_slideB

Update a presentation slide via JSON Patch.

Args: presentation_id: The presentation UUID slide_id: The slide ID patches: JSON Patch array

workiva_presentation_slidesB

DEPRECATED — use workiva_list_presentation_layouts / workiva_list_presentation_slides / workiva_get_presentation_slide / workiva_update_presentation_slide.

Kept as a backward-compatibility shim; dispatches to the single-verb tools above.

workiva_list_tasksA

List tasks in the workspace.

Args: filter: OData filter (e.g., "status eq 'Open'") max_results: Max results to return

workiva_get_taskA

Get details for a single task.

Args: task_id: The task UUID

workiva_create_taskA

Create a new task.

Args: name: Task title (sent as title per the 2026-01-01 API; name is rejected) assignee: User ID to assign (wrapped as {id, type:"USER"}) approver: User ID for the approval step (wrapped as a participant) due_date: Due date ISO string file: File ID to associate description: Task description

Note: the v2026 Tasks API requires title (NOT name) and OBJECT assignees [{"id":..,"type":"USER"}] — confirmed against the live API 2026-05-31 with a readback-verified create probe. This tool maps the flat args to that shape so callers keep working.

workiva_update_taskB

Update a task via JSON Patch.

Args: task_id: The task UUID patches: JSON Patch array

workiva_delete_taskC

Delete a task.

Args: task_id: The task UUID

workiva_tasksA

DEPRECATED — use workiva_list_tasks / workiva_get_task / workiva_create_task / workiva_update_task / workiva_delete_task.

Kept as a backward-compatibility shim; dispatches to the single-verb tools above.

workiva_submit_taskC

Submit a task.

Args: task_id: The task UUID

workiva_approve_taskB

Approve a task.

Args: task_id: The task UUID

workiva_reject_taskC

Reject a task.

Args: task_id: The task UUID

workiva_reassign_taskC

Reassign a task.

Args: task_id: The task UUID

workiva_task_actionsA

DEPRECATED — use workiva_submit_task / workiva_approve_task / workiva_reject_task / workiva_reassign_task.

Kept as a backward-compatibility shim; dispatches to the single-verb tools above.

workiva_wdata_list_tablesA

List Wdata tables.

Args: max_results: Max results to return

workiva_wdata_get_tableC

Get a single Wdata table.

Args: table_id: The Wdata table ID

workiva_wdata_create_tableC

Create a Wdata table.

Args: name: Table name table_type: Table type schema: Table schema definition

workiva_wdata_delete_tableC

Delete a Wdata table.

Args: table_id: The Wdata table ID

workiva_wdata_update_tableB

Update a Wdata table via JSON Patch.

Args: table_id: The Wdata table ID patches: JSON Patch array

workiva_wdata_tablesA

DEPRECATED — use workiva_wdata_list_tables / workiva_wdata_get_table / workiva_wdata_create_table / workiva_wdata_delete_table / workiva_wdata_update_table.

Kept as a backward-compatibility shim; dispatches to the single-verb tools above.

workiva_wdata_list_queriesC

List Wdata queries.

Args: max_results: Max results to return

workiva_wdata_get_queryB

Get a single Wdata query.

Args: query_id: The query ID

workiva_wdata_create_queryB

Create a Wdata query.

Args: name: Query name sql: SQL statement

workiva_wdata_delete_queryC

Delete a Wdata query.

Args: query_id: The query ID

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dbett4/regulated-reporting-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server