OpenAI (ChatGPT) ACTION
Chat
- Action
- Writes data
- API key
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's OpenAI (ChatGPT) account once, then configure and run Chat 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: "openai-chat",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
openai: { authProvisionId: "apn_xxxxxxx" },
modelId: "Model",
userMessage: "User Message",
},
})
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": "openai-chat",
"configured_props": {
"openai": { "authProvisionId": "apn_xxxxxxx" },
"modelId": "Model",
"userMessage": "User Message"
}
}'// 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": "openai",
},
},
},
)
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: "openai-chat",
arguments: {
modelId: "Model",
userMessage: "User Message",
},
})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 |
|---|---|---|
modelId Model | string | The ID of the model to use for chat completions Required Dynamic |
userMessage User Message | string | The user messages provide instructions to the assistant. They can be generated by the end users of an application, or set by a developer as an instruction. Required |
maxTokens Max Tokens | integer | The maximum number of tokens to generate in the completion. Optional |
temperature Temperature | string | Optional. What sampling temperature to use. Higher values means the model will take more risks. Try 0.9 for more creative applications, and 0 (argmax sampling) for ones with a well-defined answer. Optional |
topP Top P | string | An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both. Optional |
n N | integer | How many completions to generate for each prompt Optional |
stop Stop | string[] | Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence. Optional |
presencePenalty Presence Penalty | string | Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. Optional |
frequencyPenalty Frequency Penalty | string | Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. Optional |
user User | string | A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. Learn more here. Optional |
systemInstructions System Instructions | string | The system message helps set the behavior of the assistant. For example: "You are a helpful assistant." See these docs for tips on writing good instructions. Optional |
messages Prior Message History | string[] | Advanced. Because the models have no memory of past chat requests, all relevant information must be supplied via the conversation. You can provide an array of messages from prior conversations here. If this param is set, the action ignores the values passed to System Instructions and Assistant Response, appends the new User Message to the end of this array, and sends it to the API. Optional |
images Images | string[] | Provide one or more images to OpenAI's vision model. Each entry should be either a file URL or a path to a file in the /tmp directory (for example, /tmp/myFile.jpg), or raw base64-encoded image data. Compatible with the gpt4-vision-preview model Optional |
audio Audio | string | The audio file to upload. Provide either a file URL or a path to a file in the /tmp directory (for example, /tmp/myFile.mp3). For use with the gpt-4o-audio-preview model. Currently supports wav and mp3 files. Optional |
responseFormat Response Format | string |
Optional |
toolTypes Tool Types | string[] | The types of tools to enable on the assistant 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
- openai-chat
- Version
- 0.3.6
- App
- OpenAI (ChatGPT)
- Authentication
- API key
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗