Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
316 changes: 158 additions & 158 deletions public/d2/docs/authenticate/manage-users-orgs/hosted-widgets-0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
67 changes: 67 additions & 0 deletions src/components/templates/agent-connectors/_setup-airopsmcp.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
import { Steps, Aside, Tabs, TabItem } from '@astrojs/starlight/components'

Register your Scalekit environment with the AirOps connector so Scalekit can proxy API requests and inject your API key automatically. There is no redirect URI or OAuth flow — authentication uses your AirOps API key.

<Steps>
1. ### Get your AirOps API key

- Sign in to [AirOps](https://app.airops.com) and click **Settings** in the bottom-left sidebar.
- Select **Workspace** from the settings menu.
- Under **API Key**, click the copy icon to copy your key. To rotate the key, click **Regenerate**.

![AirOps workspace settings page showing the Workspace ID and API Key section with a masked key and Regenerate button](@/assets/docs/agent-connectors/airopsmcp/create-api-key.png)

<Aside type="caution" title="Keep your API key secret">
Never expose your AirOps API key in client-side code or public repositories. Regenerating the key immediately revokes the previous one.
</Aside>

2. ### Create a connection in Scalekit

- In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**. Find **AirOps** and click **Create**.
- Note the **Connection name** — use this as `connection_name` in your code (e.g., `airopsmcp`).
- Click **Save**.

3. ### Add a connected account

Connected accounts link a user identifier in your system to an AirOps API key.

**Via dashboard (for testing)**
- Open the connection and click the **Connected Accounts** tab → **Add account**.
- Fill in:
- **Your User's ID** — a unique identifier for this user in your system (e.g., `user_123`)
- **API Key** — the AirOps API key you copied in step 1
- Click **Save**.

**Via API (for production)**

<Tabs syncKey="tech-stack">
<TabItem label="Node.js">
```typescript
// Never hard-code API keys — read from secure storage or user input
const airopsApiKey = getUserAiropsKey(); // retrieve from your secure store

await scalekit.actions.upsertConnectedAccount({
connectionName: 'airopsmcp',
identifier: 'user_123',
credentials: { api_key: airopsApiKey },
});
```
</TabItem>
<TabItem label="Python">
```python
# Never hard-code API keys — read from secure storage or user input
airops_api_key = get_user_airops_key() # retrieve from your secure store

scalekit_client.actions.upsert_connected_account(
connection_name="airopsmcp",
identifier="user_123",
credentials={"api_key": airops_api_key}
)
```
</TabItem>
</Tabs>

<Aside type="tip" title="Production usage">
In production, call `upsert_connected_account` when a user connects their AirOps account — for example, on a settings page in your app.
</Aside>
</Steps>
73 changes: 73 additions & 0 deletions src/components/templates/agent-connectors/_setup-gainsight.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import { Steps, Aside, Tabs, TabItem } from '@astrojs/starlight/components'

Register your Scalekit environment with the Gainsight connector so Scalekit can proxy API requests using your Gainsight access key. There is no redirect URI or OAuth flow.

<Steps>
1. ### Generate a Gainsight access key

- Sign in to Gainsight and go to **Administration** → **Connectors 2.0** → **Connections**.
- Click **+ Create Connection**.
- Select **Gainsight API** as the connector type, enter a connection name, and choose **Access Key** as the authentication type.
- Click **Generate Access Key**.

![Gainsight Create Connection modal showing the Gainsight API connector type selected, a connection name field, Access Key authentication type selected, and the Generate Access Key button](@/assets/docs/agent-connectors/gainsight/create-api-key.png)

<Aside type="caution" title="One access key per organization">
Gainsight allows only one active access key per organization. Generating a new key revokes the previous one. Copy the key immediately — it is shown only once.
</Aside>

2. ### Create a connection in Scalekit

- In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**. Find **Gainsight** and click **Create**.
- Note the **Connection name** — use this as `connection_name` in your code (e.g., `gainsight`).
- Click **Save**.

3. ### Add a connected account

**Via dashboard (for testing)**
- Open the connection and click the **Connected Accounts** tab → **Add account**.
- Fill in:
- **Your User's ID** — a unique identifier for this user in your system (e.g., `user_123`)
- **Tenant Domain** — your Gainsight hostname without `https://` (e.g., `mycompany.gainsightcloud.com`)
- **Access Key** — the key you generated in step 1
- Click **Save**.

**Via API (for production)**

<Tabs syncKey="tech-stack">
<TabItem label="Node.js">
```typescript
// Never hard-code API keys — read from secure storage or user input
const gainsightKey = getUserGainsightKey(); // retrieve from your secure store

await scalekit.actions.upsertConnectedAccount({
connectionName: 'gainsight',
identifier: 'user_123',
credentials: {
domain: 'mycompany.gainsightcloud.com',
api_key: gainsightKey,
},
});
```
</TabItem>
<TabItem label="Python">
```python
# Never hard-code API keys — read from secure storage or user input
gainsight_key = get_user_gainsight_key() # retrieve from your secure store

scalekit_client.actions.upsert_connected_account(
connection_name="gainsight",
identifier="user_123",
credentials={
"domain": "mycompany.gainsightcloud.com",
"api_key": gainsight_key,
}
)
```
</TabItem>
</Tabs>

<Aside type="tip" title="Production usage">
In production, call `upsert_connected_account` when a user connects their Gainsight account — for example, on an admin settings page in your app.
</Aside>
</Steps>
71 changes: 71 additions & 0 deletions src/components/templates/agent-connectors/_setup-salesloft.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import { Steps, Aside, Tabs, TabItem } from '@astrojs/starlight/components'

Register your Scalekit environment with the Salesloft connector so Scalekit handles the OAuth 2.0 flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically.

<Steps>
1. ### Create a Salesloft OAuth application

- Sign in to [Salesloft](https://accounts.salesloft.com) and go to **Settings** → **Your Applications** → **OAuth Applications**.
- Click **+ New Application**.
- Fill in the application name (e.g., `My Sales Agent`) and description.
- In the **Redirect URI** field, paste the redirect URI from Scalekit (see step 2 — you can return to add it after).
- Under **Scopes**, select the permissions your agent needs:

| Scope | Enables |
| --- | --- |
| `read` | Read access to contacts, cadences, and activities |
| `write` | Create and update records |

- Click **Save**. On the application detail page, copy your **Client ID** and **Client Secret**.

![Salesloft OAuth application detail page showing the Client ID and Client Secret fields with Copy buttons](@/assets/docs/agent-connectors/salesloft/create-oauth-app.png)

<Aside type="caution" title="Save your client secret">
The client secret is shown only once. Copy it before leaving the page.
</Aside>

2. ### Create a connection in Scalekit

- In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**. Find **Salesloft** and click **Create**.
- Click **Use your own credentials** and copy the **Redirect URI**:
`https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback`
- Return to your Salesloft OAuth app and add this redirect URI.
- Back in Scalekit, enter your **Client ID**, **Client Secret**, and the **Permissions** (scopes) you selected.
- Note the **Connection name** (e.g., `salesloft`) — use this as `connection_name` in your code.
- Click **Save**.

3. ### Add a connected account

**Via dashboard (for testing)**
- Open the connection and click the **Connected Accounts** tab → **Add account**.
- Enter a **User ID** and click **Save**. You will be redirected to Salesloft to authorize access.

**Via API (for production)**

<Tabs syncKey="tech-stack">
<TabItem label="Node.js">
```typescript
const { link } = await scalekit.actions.getAuthorizationLink({
connectionName: 'salesloft',
identifier: 'user_123',
});
// Redirect your user to `link` to authorize access
console.log('Authorize at:', link);
```
</TabItem>
<TabItem label="Python">
```python
response = scalekit_client.actions.get_authorization_link(
connection_name="salesloft",
identifier="user_123"
)
# Redirect your user to response.link to authorize access
print("Authorize at:", response.link)
```
</TabItem>
</Tabs>

<Aside type="tip" title="Token refresh">
Salesloft access tokens expire periodically. Scalekit automatically refreshes them — no re-authorization needed for active sessions.
</Aside>
</Steps>
3 changes: 3 additions & 0 deletions src/components/templates/agent-connectors/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export { default as AgentKitCredentials } from './_agentkit-credentials.mdx'
export { default as SetupAdobemarketingagentmcpSection } from './_setup-adobemarketingagentmcp.mdx'
export { default as SetupAdzvisermcpSection } from './_setup-adzvisermcp.mdx'
export { default as SetupAiropsmcpSection } from './_setup-airopsmcp.mdx'
export { default as SetupAirtableSection } from './_setup-airtable.mdx'
export { default as SetupApifymcpSection } from './_setup-apifymcp.mdx'
export { default as SetupApolloSection } from './_setup-apollo.mdx'
Expand All @@ -27,6 +28,7 @@ export { default as SetupExaSection } from './_setup-exa.mdx'
export { default as SetupFellowaimcpSection } from './_setup-fellowaimcp.mdx'
export { default as SetupFigmaSection } from './_setup-figma.mdx'
export { default as SetupFirecrawlmcpSection } from './_setup-firecrawlmcp.mdx'
export { default as SetupGainsightSection } from './_setup-gainsight.mdx'
export { default as SetupGithubSection } from './_setup-github.mdx'
export { default as SetupGitlabSection } from './_setup-gitlab.mdx'
export { default as SetupGmailSection } from './_setup-gmail.mdx'
Expand Down Expand Up @@ -64,6 +66,7 @@ export { default as SetupPhantombusterSection } from './_setup-phantombuster.mdx
export { default as SetupPipedriveSection } from './_setup-pipedrive.mdx'
export { default as SetupQuickbooksSection } from './_setup-quickbooks.mdx'
export { default as SetupSalesforceSection } from './_setup-salesforce.mdx'
export { default as SetupSalesloftSection } from './_setup-salesloft.mdx'
export { default as SetupServicenowSection } from './_setup-servicenow.mdx'
export { default as SetupSharepointSection } from './_setup-sharepoint.mdx'
export { default as SetupSlackSection } from './_setup-slack.mdx'
Expand Down
84 changes: 84 additions & 0 deletions src/content/docs/agentkit/connectors/airopsmcp.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
title: 'Airops MCP connector'
tableOfContents: true
description: 'Connect to AirOps MCP. Manage brand kits, run AI-powered analytics, track AEO citations, and automate content workflows from your AI agents.'
sidebar:
label: 'Airops MCP'
overviewTitle: 'Quickstart'
connectorIcon: https://cdn.scalekit.com/sk-connect/assets/provider-icons/airops.svg
connectorAuthType: API Key
connectorCategories: [AI, Marketing, Analytics]
Comment thread
Pranesh-Raghu marked this conversation as resolved.
head:
- tag: style
content: |
.sl-markdown-content h2 {
font-size: var(--sl-text-xl);
}
.sl-markdown-content h3 {
font-size: var(--sl-text-lg);
}
---

import ToolList from '@/components/ToolList.astro'
import { tools } from '@/data/agent-connectors/airopsmcp'
import { Steps, Tabs, TabItem } from '@astrojs/starlight/components'
import { AgentKitCredentials } from '@components/templates'
import { SetupAiropsmcpSection } from '@components/templates'
import { QuickstartGenericApikeySection } from '@components/templates'

<Steps>

1. ### Install the SDK

<Tabs syncKey="tech-stack">
<TabItem label="Node.js">
```bash frame="terminal"
npm install @scalekit-sdk/node
```
</TabItem>
<TabItem label="Python">
```bash frame="terminal"
pip install scalekit
```
</TabItem>
</Tabs>

Full SDK reference: [Node.js](/agentkit/sdks/node/) | [Python](/agentkit/sdks/python/)

2. ### Set your credentials

<AgentKitCredentials />

3. ### Set up the connector

Register your Airops MCP credentials with Scalekit so it can authenticate requests on your behalf. You do this once per environment.

<details>
<summary>Dashboard setup steps</summary>

<SetupAiropsmcpSection />

</details>

4. ### Make your first call

<QuickstartGenericApikeySection connector="airopsmcp" toolName="airopsmcp_list_aeo_page_content_updates" providerName="Airops MCP" />

</Steps>

## What you can do

Connect this agent connector to let your agent:

- **Grid write** — Create or update rows in a grid table
- **Update brand kit, track aeo page content** — Update a Brand Kit's base fields
- **Edits suggest brand kit** — Suggest edits to a Brand Kit's fields without applying them
- **Search knowledge base** — Search a Knowledge Base for relevant content using semantic similarity
- **Run grid rows** — Trigger execution of one or more grid rows
- **Read grid** — Read rows from a grid table

## Tool list

Use the exact tool names from the **Tool list** below when you call `execute_tool`. If you're not sure which name to use, list the tools available for the current user first.

<ToolList tools={tools} />
68 changes: 68 additions & 0 deletions src/content/docs/agentkit/connectors/biorendermcp.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
title: 'Bio Render MCP connector'
tableOfContents: true
description: 'Connect to BioRender MCP. Search BioRender''s scientific icon and figure template libraries to build publication-ready biological illustrations.'
sidebar:
label: 'Bio Render MCP'
overviewTitle: 'Quickstart'
connectorIcon: https://cdn.scalekit.com/sk-connect/assets/provider-icons/biorendermcp.svg
connectorAuthType: OAuth 2.1/DCR
connectorCategories: [AI, Design, Search]
head:
- tag: style
content: |
.sl-markdown-content h2 {
font-size: var(--sl-text-xl);
}
.sl-markdown-content h3 {
font-size: var(--sl-text-lg);
}
---

import ToolList from '@/components/ToolList.astro'
import { tools } from '@/data/agent-connectors/biorendermcp'
import { Steps, Tabs, TabItem } from '@astrojs/starlight/components'
import { AgentKitCredentials } from '@components/templates'
import { QuickstartGenericOauthSection } from '@components/templates'

<Steps>

1. ### Install the SDK

<Tabs syncKey="tech-stack">
<TabItem label="Node.js">
```bash frame="terminal"
npm install @scalekit-sdk/node
```
</TabItem>
<TabItem label="Python">
```bash frame="terminal"
pip install scalekit
```
</TabItem>
</Tabs>

Full SDK reference: [Node.js](/agentkit/sdks/node/) | [Python](/agentkit/sdks/python/)

2. ### Set your credentials

<AgentKitCredentials />

3. ### Authorize and make your first call

<QuickstartGenericOauthSection connector="biorendermcp" toolName="biorendermcp_search-icons" providerName="Bio Render MCP" toolInputNode="{ query: 'YOUR_QUERY' }" toolInputPython='{"query":"YOUR_QUERY"}' />

</Steps>

## What you can do

Connect this agent connector to let your agent:

- **Search-templates records** — Search BioRender's scientific figure template library
- **Search-icons records** — Search BioRender's scientific icon library by keyword

## Tool list

Use the exact tool names from the **Tool list** below when you call `execute_tool`. If you're not sure which name to use, list the tools available for the current user first.

<ToolList tools={tools} />
Loading