Google Docs ACTION
Format Paragraph
Apply paragraph formatting (heading style, alignment, line spacing, indentation) in a Google Doc. Locate the paragraph with Find Text, or pass an explicit Start Index and End Index. Google Docs applies paragraph styles to whole paragraphs, so every paragraph the range touches is restyled, not just the matched text. See the documentation
- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Google Docs account once, then configure and run Format Paragraph from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "google_docs-format-paragraph",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
google_docs: { authProvisionId: "apn_xxxxxxx" },
documentId: "Document ID",
find: "Find Text",
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "google_docs-format-paragraph",
"configured_props": {
"google_docs": { "authProvisionId": "apn_xxxxxxx" },
"documentId": "Document ID",
"find": "Find Text"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "google_docs",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "google_docs-format-paragraph",
arguments: {
documentId: "Document ID",
find: "Find Text",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
documentId Document ID | string | The ID of the Google Doc. This is the long string in the document's URL: https://docs.google.com/document/d/{DOCUMENT_ID}/edit. Use Find Document to resolve a document's name to its ID. Required |
find Find Text | string | The text to style. The action locates it in the document and styles each match selected by Occurrence. Leave blank only if you are supplying Start Index and End Index instead. Optional |
occurrence Occurrence | string | Which matches of Find Text to style: first (default) or all. Optional |
matchCase Match Case | boolean | Case sensitive search ( true) or not (false). Defaults to false Optional |
startIndex Start Index | integer | Character index to style from, inclusive. Use with End Index instead of Find Text. Indices come from Get Document and shift after every edit, so prefer Find Text. Optional |
endIndex End Index | integer | Character index to style up to, exclusive. Must be greater than Start Index. Optional |
tabId Tab ID | string | For a multi-tab document, restrict the operation to this tab (e.g. t.0). Get tab IDs from List Tabs. Omit to search every tab for Find Text; an explicit Start Index / End Index without a Tab ID applies to the first tab only. Optional |
namedStyleType Paragraph Style | string | Named style to apply, e.g. HEADING_1 for a top-level heading or NORMAL_TEXT to clear one. Optional |
alignment Alignment | string | Paragraph alignment. START is left-aligned in a left-to-right document. Optional |
lineSpacing Line Spacing | integer | Line spacing as a percentage of normal (100 = single, 150 = 1.5x, 200 = double). Range 1-1000. Optional |
spaceAbove Space Above | integer | Space above the paragraph, in points (0-500). Optional |
spaceBelow Space Below | integer | Space below the paragraph, in points (0-500). Optional |
indentStart Indent Start | integer | Indentation from the start (left, in a left-to-right document) side, in points (0-500). Optional |
indentEnd Indent End | integer | Indentation from the end (right, in a left-to-right document) side, in points (0-500). Optional |
keepLinesTogether Keep Lines Together | boolean | Set true to keep the paragraph's lines on one page where possible, false to allow it to break across pages. Leave unset to keep it unchanged. Optional |
keepWithNext Keep With Next | boolean | Set true to keep at least part of the paragraph on the same page as the paragraph that follows it. Leave unset to keep it unchanged. Optional |
indentFirstLine First Line Indent | integer | Indentation of the paragraph's first line, in points (0-500). Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- google_docs-format-paragraph
- Version
- 0.0.3
- App
- Google Docs
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗