Google Docs ACTION
Format Text
Apply character formatting (bold, italic, underline, strikethrough, font, size, color, link) to text in a Google Doc. Locate the text with Find Text, or pass an explicit Start Index and End Index. Use Find Document to resolve a document's name to its ID. 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 Text 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-text",
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-text",
"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-text",
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 |
bold Bold | boolean | Set true to bold the text, false to remove bold. Leave unset to keep it unchanged. Optional |
italic Italic | boolean | Set true to italicize the text, false to remove italics. Leave unset to keep it unchanged. Optional |
underline Underline | boolean | Set true to underline the text, false to remove the underline. Leave unset to keep it unchanged. Optional |
strikethrough Strikethrough | boolean | Set true to strike through the text, false to remove it. Leave unset to keep it unchanged. Optional |
smallCaps Small Caps | boolean | Set true to render the text in small capitals, false to return it to normal casing. Leave unset to keep it unchanged. Optional |
baselineOffset Baseline Offset | string | Vertical offset from the normal baseline. SUPERSCRIPT and SUBSCRIPT are also rendered in a smaller font, computed from the current size. Optional |
fontSize Font Size | integer | Font size in points (1-400). Optional |
fontFamily Font Family | string | Font family name as it appears in the Google Docs font menu, e.g. Roboto or Times New Roman. The API resets the range's weight to 400 whenever the family changes, so set Font Weight (or Bold) as well to keep heavy text heavy. Optional |
fontWeight Font Weight | integer | Rendered weight of the font, a multiple of 100 from 100 to 900 ( 400 is normal, 700 is bold). Only valid alongside Font Family, and worth setting whenever you change the font of text that should stay heavy. Optional |
foregroundColor Text Color | string | Text color as a hex code, e.g. #FF0000. Optional |
backgroundColor Highlight Color | string | Highlight (background) color as a hex code, e.g. #FFFF00. Optional |
link Link URL | string | Turn the text into a hyperlink pointing at this URL. 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-text
- Version
- 0.0.3
- App
- Google Docs
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗