# Run Application — Writer

> Run a saved no-code application (agent) with the inputs it expects and return the generated content. Discover the agent's id with List Applications, then call Get Application to see the input field ids (names) it requires before running…

- Key: `writer-run-application`
- Type: Action (Write)
- Version: 0.0.2
- App: Writer (`writer`) — https://pipedream.com/apps/writer.md
- This page (HTML): https://pipedream.com/apps/writer/actions/run-application
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/writer/actions/run-application/run-application.mjs

## Description

Run a saved no-code application (agent) with the inputs it expects and return the generated content. Discover the agent's `id` with **List Applications**, then call **Get Application** to see the input field `id`s (names) it requires before running. Provide `inputs` as a JSON array of `{ id, value }` objects, where each `id` is an **input field name** from the application's schema (not the application id) and `value` is an array of strings (one entry per value for that field). Example: call with `applicationId="3f9c..."` and `inputs=[{ "id": "topic", "value": ["Velociraptor exhibit"] }, { "id": "tone", "value": ["exciting"] }]` (here `"topic"` and `"tone"` are input field names) -> returns the agent's generated content. [See the documentation](https://dev.writer.com/api-reference/application-api/applications)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `applicationId` | `string` | Yes | The UUID of a no-code application (agent). Discover ids with List Applications; inspect an agent's required input schema with Get Application before running it. |
| `inputs` | `string` | Yes | JSON array of the agent's inputs. Each entry is { "id": <input field name>, "value": [<string>, ...] }, where id is an input field name from the application's schema (not the application id). Use Get Application to discover the valid input field ids. Example: [{ "id": "topic", "value": ["raptors"] }]. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
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 accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_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": "writer",
      },
    },
  },
)

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: "writer-run-application",
  arguments: {
    applicationId: "Application ID",
    inputs: "Inputs",
  },
})
```

**TypeScript**

```ts
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: "writer-run-application",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    writer: { authProvisionId: "apn_xxxxxxx" },
    applicationId: "Application ID",
    inputs: "Inputs",
  },
})

console.log(result)
```

**cURL**

```bash
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": "writer-run-application",
    "configured_props": {
      "writer": { "authProvisionId": "apn_xxxxxxx" },
      "applicationId": "Application ID",
      "inputs": "Inputs"
    }
  }'
```

---

- App: https://pipedream.com/apps/writer.md · All apps: https://pipedream.com/apps
