# Sapling.ai — Pipedream Connect

> Language models for enterprise applications.

- API slug: `sapling_ai` (use in MCP headers and tool keys)
- Auth: API key (Pipedream-managed)
- Categories: Artificial Intelligence (AI)
- Website: https://sapling.ai/
- This page (HTML): https://pipedream.com/apps/sapling-ai
- Tools: 5 actions · 0 triggers

## Connect via MCP (recommended)

- Endpoint: `https://remote.mcp.pipedream.net/v3`
- Headers: `Authorization: Bearer <token>` · `x-pd-project-id` · `x-pd-environment` · `x-pd-external-user-id` · `x-pd-app-slug: sapling_ai`

```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": "sapling_ai",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// e.g. run Accept Completion:
const result = await mcp.callTool({
  name: "sapling_ai-accept-completion",
  arguments: {
    completionId: "Completion ID",
    sessionId: "Session ID",
  },
})
```

Docs: [MCP guide](https://pipedream.com/docs/connect/mcp/developers.md)

## API proxy

For a Sapling.ai endpoint with no pre-built tool, the proxy forwards your request with the connected user's credentials attached.

```bash
# The path segment is the target URL, URL-safe base64 encoded:
# https://api.sapling.ai/api/v1/team

curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuc2FwbGluZy5haS9hcGkvdjEvdGVhbQ?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
  -H "Authorization: Bearer {access_token}" \
  -H "x-pd-environment: production"
```

Docs: [API proxy guide](https://pipedream.com/docs/connect/api-proxy.md)

## SDK

```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: "sapling_ai-accept-completion",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    sapling_ai: { authProvisionId: "apn_xxxxxxx" },
    completionId: "Completion ID",
    sessionId: "Session ID",
  },
})
```

Docs: [Managed auth guide](https://pipedream.com/docs/connect/managed-auth/quickstart.md) · [Tools guide](https://pipedream.com/docs/connect/components.md)

## Actions (5)

### `sapling_ai-accept-completion` — Accept Completion (Write)

Have Sapling adapt its system over time. Each suggested completion has a completion UUID. You can pass this information back to Sapling to indicate the completion suggestion was helpful. See the documentation here.

Full schema: https://pipedream.com/apps/sapling-ai/actions/accept-completion.md

### `sapling_ai-accept-edit` — Accept Edit (Write)

Have Sapling adapt its system over time. Each suggested edit has an edit UUID. You can pass this information back to Sapling to indicate the edit suggestion was helpful. See the documentation here.

Full schema: https://pipedream.com/apps/sapling-ai/actions/accept-edit.md

### `sapling_ai-reject-edit` — Reject Edit (Write)

Have Sapling not recommend the same edit anymore. Each suggested edit has an edit UUID. You can pass this information back to Sapling to indicate the edit suggestion was not helpful. See the documentation here.

Full schema: https://pipedream.com/apps/sapling-ai/actions/reject-edit.md

### `sapling_ai-request-completion` — Request Completion (Write)

Provides predictions of the next few characters or words given the current context in a particular editable. The predictions are based on the previous text. See the documentation here.

Full schema: https://pipedream.com/apps/sapling-ai/actions/request-completion.md

### `sapling_ai-request-edits` — Request Edits (Write)

Provides grammar, spelling, and stylistic edits for text. It is customizable through a dictionary and custom mappings; for custom language models, please contact sapling.ai. Sapling has prebuilt models for applications such as healthcare/medicine. See the documentation here.

Full schema: https://pipedream.com/apps/sapling-ai/actions/request-edits.md

---

- All apps: https://pipedream.com/apps — index: https://pipedream.com/llms.txt
- Pipedream docs for agents: https://pipedream.com/docs/llms.txt
