Notion ACTION
Create File Upload
Create a file upload. See the documentation
- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Notion account once, then configure and run Create File Upload 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: "notion-create-file-upload",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
notion: { authProvisionId: "apn_xxxxxxx" },
mode: "Mode",
filename: "Filename",
},
})
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": "notion-create-file-upload",
"configured_props": {
"notion": { "authProvisionId": "apn_xxxxxxx" },
"mode": "Mode",
"filename": "Filename"
}
}'// 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": "notion",
},
},
},
)
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: "notion-create-file-upload",
arguments: {
mode: "Mode",
filename: "Filename",
},
})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 |
|---|---|---|
mode Mode | string | How the file is being sent. Use Multi Part for files larger than 20MB. Use External URL for files that are temporarily hosted publicly elsewhere. Optional |
filename Filename | string | Name of the file to be created. Required when mode is multi_part or external_url. Otherwise optional, and used to override the filename. Must include an extension. Optional |
contentType Content Type | string | MIME type of the file to be created. Recommended when sending the file in multiple parts. Must match the content type of the file that's sent, and the extension of the filename parameter if any. Optional |
numberOfParts Number of Parts | integer | When mode is Multi Part, the number of parts you are uploading. Must be between 1 and 1,000. This must match the number of parts as well as the final part_number you send. Optional |
externalUrl External URL | string | When mode is External URL, provide the HTTPS URL of a publicly accessible file to import into your workspace. 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
- notion-create-file-upload
- Version
- 0.0.11
- App
- Notion
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗