Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 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
2 changes: 1 addition & 1 deletion public/data/agent-tools-index.json

Large diffs are not rendered by default.

16 changes: 15 additions & 1 deletion scripts/sync-agent-connectors.js
Original file line number Diff line number Diff line change
Expand Up @@ -197,9 +197,23 @@ function escapeCurlyBraces(text) {
* Make free-form tool text safe to embed in MDX prose (capability bullets, etc.).
* - `{name}` → HTML entities (MDX would otherwise evaluate as a JS expression)
* - `<role_name>` → inline code (MDX would otherwise parse as a JSX tag)
*
* Content already inside a backtick code span (e.g. `request_item=<sys_id>`) is left
* untouched: MDX treats code span contents as literal text, so it's already safe, and
* wrapping the `<...>` portion again would split the span and leave a bare, unescaped
* `<sys_id>` outside any backticks — which is exactly what MDX then fails to parse as
* an unclosed JSX tag.
*/
function escapeMdxProse(text) {
return escapeCurlyBraces(String(text || '')).replace(/<[^>\n]+>/g, (match) => '`' + match + '`')
const escaped = escapeCurlyBraces(String(text || ''))
// Split on existing code spans (`...`) so the `<...>` escape only runs on the prose
// outside of them; segments at odd indices are the code spans themselves.
return escaped
.split(/(`[^`\n]*`)/)
.map((segment, i) =>
i % 2 === 1 ? segment : segment.replace(/<[^>\n]+>/g, (match) => '`' + match + '`'),
)
.join('')
}

function pushTextNode(nodes, value) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { Steps, Aside } from '@astrojs/starlight/components'

Register a Twitter Bearer Token with Scalekit to make app-only requests — reading public tweets, users, and search results without acting on behalf of a specific user. You'll need a **Bearer Token** from an app in the <a href="https://developer.twitter.com/en/portal/dashboard" target="_blank" rel="noopener">X Developer Console</a>.

<Steps>
1. ### Choose or create an app in the X Developer Console

- Go to the <a href="https://developer.twitter.com/en/portal/dashboard" target="_blank" rel="noopener">X Developer Console</a> and sign in.

- Under **Access** > **Apps**, either select an existing app or click **+ Create App**.

2. ### Generate a Bearer Token

- Open your app and go to the **Keys & Tokens** tab.

- Under **App-Only Authentication**, click **Generate** next to **Bearer Token** (or **Regenerate** if one already exists).

- Copy the token immediately — X shows it in full only once.

<Aside type="caution" title="Regenerating invalidates the old token">
Regenerating the Bearer Token immediately revokes the previous one. Any app-only requests still using the old token will start failing.
</Aside>

3. ### Add the token in Scalekit

- In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**. Search for **Twitter Bearer** and click **Create**.
- Paste the Bearer Token you copied in step 2.
- Click **Save**.
</Steps>
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import { Steps, Aside } from '@astrojs/starlight/components'

Register your Twitter app credentials with Scalekit so it can manage the OAuth 2.0 authentication flow and token lifecycle on your behalf. You'll need a **Client ID** and **Client Secret** from an app in the <a href="https://developer.twitter.com/en/portal/dashboard" target="_blank" rel="noopener">X Developer Console</a>.

<Steps>
1. ### Create a Twitter OAuth connection in Scalekit

- In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**. Search for **Twitter OAuth** and click **Create**.

- In the **Configure Twitter OAuth Connection** panel, copy the **Redirect URI**. It looks like `https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback`. You'll paste this into your X app in the next step.

2. ### Choose or create an app in the X Developer Console

- Go to the <a href="https://developer.twitter.com/en/portal/dashboard" target="_blank" rel="noopener">X Developer Console</a> and sign in.

- Under **Access** > **Apps**, either select an existing app or click **+ Create App**.

3. ### Configure user authentication settings

- Open your app, go to **Settings**, and find **User authentication settings**.

- Set the following values:

| Setting | Value |
|---|---|
| **App permissions** | **Read and Write** — needed to post and manage content on behalf of users |
| **Type of App** | **Web App, Automated App or Bot** |
| **Callback URI / Redirect URL** | Paste the Redirect URI from Scalekit |
| **Website URL** | Your application's public homepage |

- Click **Save**.

4. ### Copy OAuth 2.0 credentials

- In your app, go to the **Keys & Tokens** tab.

- Under **OAuth 2.0 Keys**, copy the **Client ID**. Click **Regenerate** next to **Client Secret** if you haven't generated one yet, then copy it.

<Aside type="caution" title="Client secret is shown once">
The Client Secret is masked after the initial creation. If you lose it, regenerate it in the X Developer Console — this invalidates all existing user tokens.
</Aside>

5. ### Add credentials in Scalekit

- In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** and open the Twitter OAuth connection you created.

- Enter your credentials:
- **Client ID** — from the OAuth 2.0 Keys section
- **Client Secret** — copied in the previous step
- **Scopes** — select the permissions your app needs:
- `tweet.read` — read tweets and timelines
- `tweet.write` — create, delete, and manage tweets
- `users.read` — read user profile data
- `follows.read` — read follower/following lists
- `follows.write` — follow and unfollow users
- `like.read` — read liked tweets
- `like.write` — like and unlike tweets
- `bookmark.read` — read bookmarked tweets
- `bookmark.write` — add and remove bookmarks
- `list.read` — read list membership and tweets
- `list.write` — create, update, and delete lists
- `dm.read` — read direct messages
- `dm.write` — send direct messages
- `mute.read` — read muted users
- `mute.write` — mute and unmute users
- `block.read` — read blocked users
- `block.write` — block and unblock users
- `offline.access` — obtain refresh tokens for long-lived access

- Click **Save**.
</Steps>
2 changes: 2 additions & 0 deletions src/components/templates/agent-connectors/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,8 @@ export { default as SetupTangomcpSection } from './_setup-tangomcp.mdx'
export { default as SetupTrelloSection } from './_setup-trello.mdx'
export { default as SetupTwilioSection } from './_setup-twilio.mdx'
export { default as SetupTwitterSection } from './_setup-twitter.mdx'
export { default as SetupTwitterbearerSection } from './_setup-twitterbearer.mdx'
export { default as SetupTwitteroauthSection } from './_setup-twitteroauth.mdx'
export { default as SetupUpstreammcpSection } from './_setup-upstreammcp.mdx'
export { default as SetupV0mcpSection } from './_setup-v0mcp.mdx'
export { default as SetupVapimcpSection } from './_setup-vapimcp.mdx'
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/agentkit/connectors/googledrive.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Connect this agent connector to let your agent:
- **Proposal resolve access** — Approve or deny a pending access proposal on a Google Drive file, optionally granting a specific role and notifying the requester by email
- **List changes, access proposals, shared drives** — List changes (files created, modified, moved, deleted, or shared) since a given page token, for efficiently keeping an external system in sync with Google Drive without re-scanning everything
- **Get start page token, shared drive, reply** — Get the starting page token to use with List Changes when beginning a new sync of a Google Drive (or a specific shared drive)
- **Content download file** — Download the actual binary content of a file stored in Google Drive (PDF, image, video, zip, etc.) via alt=media
- **Delete shared drive, reply, revision** — Permanently delete a Google Drive shared drive

## Common workflows

Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/agentkit/connectors/snowflake.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ Connect this agent connector to let your agent:
- **Schema undrop, drop, alter** — Restore a recently dropped schema from Time Travel using the Schema REST API (POST /api/v2/databases/&#123;database&#125;/schemas/&#123;name&#125;:undrop)
- **Database undrop, drop, clone** — Restore a recently dropped Snowflake database from Time Travel using the Database REST API (POST /api/v2/databases/&#123;name&#125;:undrop)
- **Warehouse suspend, resume, rename** — Suspend a running Snowflake warehouse, releasing its compute resources (POST /api/v2/warehouses/&#123;name&#125;:suspend)
- **User revoke role from, grant role to, drop** — Run `REVOKE ROLE <role_name> FROM USER <user_name>` via the SQL statements API
- **Role revoke privilege from, grant privilege to, drop** — Run `REVOKE [GRANT OPTION FOR] <privileges> ON <object_type> <object_name> FROM ROLE <role_name> [RESTRICT | CASCADE]` via the SQL statements API
- **User revoke role from, grant role to, drop** — Run REVOKE ROLE `<role_name>` FROM USER `<user_name>` via the SQL statements API
- **Role revoke privilege from, grant privilege to, drop** — Run REVOKE [GRANT OPTION FOR] `<privileges>` ON `<object_type>` `<object_name>` FROM ROLE `<role_name>` [RESTRICT | CASCADE] via the SQL statements API

## Common workflows

Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/agentkit/connectors/snowflakekeyauth.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ Connect this agent connector to let your agent:
- **Schema undrop, drop, alter** — Restore a recently dropped schema from Time Travel using the Schema REST API (POST /api/v2/databases/&#123;database&#125;/schemas/&#123;name&#125;:undrop)
- **Database undrop, drop, clone** — Restore a recently dropped Snowflake database from Time Travel using the Database REST API (POST /api/v2/databases/&#123;name&#125;:undrop)
- **Warehouse suspend, resume, rename** — Suspend a running Snowflake warehouse, releasing its compute resources (POST /api/v2/warehouses/&#123;name&#125;:suspend)
- **User revoke role from, grant role to, drop** — Run `REVOKE ROLE <role_name> FROM USER <user_name>` via the SQL statements API
- **Role revoke privilege from, grant privilege to, drop** — Run `REVOKE [GRANT OPTION FOR] <privileges> ON <object_type> <object_name> FROM ROLE <role_name> [RESTRICT | CASCADE]` via the SQL statements API
- **User revoke role from, grant role to, drop** — Run REVOKE ROLE `<role_name>` FROM USER `<user_name>` via the SQL statements API
- **Role revoke privilege from, grant privilege to, drop** — Run REVOKE [GRANT OPTION FOR] `<privileges>` ON `<object_type>` `<object_name>` FROM ROLE `<role_name>` [RESTRICT | CASCADE] via the SQL statements API

## Common workflows

Expand Down
14 changes: 7 additions & 7 deletions src/content/docs/agentkit/connectors/supabase.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -62,20 +62,20 @@ import { QuickstartGenericOauthSection } from '@components/templates'

4. ### Authorize and make your first call

<QuickstartGenericOauthSection connector="supabase" toolName="supabase_list_organizations" providerName="Supabase" />
<QuickstartGenericOauthSection connector="supabase" toolName="supabase_get_profile" providerName="Supabase" />

</Steps>

## What you can do

Connect this agent connector to let your agent:

- **Access accept invite external jit, authorize jit** — Accept a pending invitation for just-in-time (JIT) database access on a Supabase project, activating the roles that were granted with Invite External JIT Access
- **Config verify dns, deactivate vanity subdomain, activate vanity subdomain** — [Beta] Attempt to verify the DNS configuration for a Supabase project's custom hostname
- **Migration upsert, patch, apply** — Upsert an entry into a Supabase project's database migration history without actually applying the SQL
- **Version upgrade postgres** — [Beta, DESTRUCTIVE] Initiate an in-place upgrade of a Supabase project's Postgres major version
- **Update sso provider, ssl enforcement config, project signing key** — Update an existing SAML SSO provider on a Supabase project, identified by its UUID
- **Undo records** — Initiate an undo (rollback) of a Supabase project's database to a previously created restore point
- **Update storage config, realtime config, legacy api keys** — Update a Supabase project's Storage service configuration: the maximum upload file size in bytes, and feature flags for image transformation, the S3 protocol, and cache purging
- **Realtime shutdown** — Forcibly shut down all active Realtime connections for a Supabase project
- **Read setup, remove, only query** — [Beta] Set up a new read replica for a Supabase project in the given region
- **Metrics scrape project** — Scrape a project's infrastructure metrics in Prometheus exposition format (plain text, not JSON)
- **Disk modify database** — Modify a Supabase project's database disk: change its type (gp3 or io2), size in GB, IOPS, or (gp3 only) throughput in MiB/s
- **List project addons, jit access, sso provider** — List the billing addons currently applied to a Supabase project, including the active compute instance size, plus every addon option that can be provisioned along with its pricing metadata

## Tool list

Expand Down
11 changes: 6 additions & 5 deletions src/content/docs/agentkit/connectors/supadata.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -63,19 +63,20 @@ import { SectionAfterSetupSupadataCommonWorkflows } from '@components/templates'

4. ### Make your first call

<QuickstartGenericApikeySection connector="supadata" toolName="supadata_metadata_get" providerName="Supadata" toolInputNode="{ url: 'https://example.com/url' }" toolInputPython='{"url":"https://example.com/url"}' />
<QuickstartGenericApikeySection connector="supadata" toolName="supadata_account_get" providerName="Supadata" />

</Steps>

## What you can do

Connect this agent connector to let your agent:

- **Get metadata, youtube playlist, youtube channel** — Retrieve unified metadata for a video or media URL including title, description, author info, engagement stats, media details, and creation date
- **Batch youtube video, youtube transcript** — Start an asynchronous batch job that fetches metadata for multiple YouTube videos in one call
- **Videos youtube playlist, youtube channel** — Retrieve the video IDs contained in a YouTube playlist, in playlist order
- **Get youtube batch, web crawl, transcript job** — Check the status of a YouTube batch job (transcripts or video metadata) and retrieve its results once complete
- **Start web crawl** — Start an asynchronous crawl job that extracts content from all pages on a website, following internal links up to the given page limit
- **Extract records** — Use AI to analyze a video or media URL and extract structured data from it, guided by a natural-language prompt and/or a JSON schema
- **Scrape web** — Scrape a web page and return its content as clean Markdown
- **Search youtube** — Search YouTube for videos, channels, or playlists
- **Map web** — Discover and return all URLs found on a website
- **Translate youtube transcript** — Retrieve and translate a YouTube video transcript into a target language

## Common workflows

Expand Down
12 changes: 6 additions & 6 deletions src/content/docs/agentkit/connectors/tableau.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,12 @@ import { SectionBeforeToolListTableauResourceIds } from '@components/templates'

Connect this agent connector to let your agent:

- **List workbooks, workbook connections, views** — Retrieve a filtered, sorted list of workbooks on a specified Tableau site
- **Search workbook** — Search for workbooks on a Tableau site by name
- **Get workbook, view, user** — Retrieve detailed information about a specific Tableau workbook by its ID, including metadata, project, owner, tags, and optional usage statistics
- **Delete workbook, project, datasource** — Delete a workbook from a Tableau site
- **Site user remove from, user add to** — Remove a user from a Tableau site
- **Query view** — Run a structured query against a published Tableau data source using the VizQL Data Service API
- **Update workbook, user, schedule** — Update a Tableau workbook's name, description, owner, project (move it), tab visibility, or certification status
- **List workbook permissions, sites, schedules** — Retrieve the capability grants (permissions) defined for a specific Tableau workbook, showing which users and groups can view, edit, or manage it
- **Add workbook permissions, project permissions** — Grant a user or group specific capabilities (permissions) on a Tableau workbook, such as Read, Write, or ExportData
- **Delete workbook permission, schedule, workbook** — Revoke a single capability grant for a user or group on a Tableau workbook
- **Get view pdf, view image, view data** — Render a Tableau view as a PDF document
- **Create schedule, project, group** — Create a new server schedule for running extract refreshes, subscriptions, or flow tasks on a recurring basis

## Common workflows

Expand Down
7 changes: 6 additions & 1 deletion src/content/docs/agentkit/connectors/trello.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,12 @@ import { SectionAfterSetupTrelloCommonWorkflows } from '@components/templates'

Connect this agent connector to let your agent:

- **Get board members, board lists, board labels** — Get all members of a Trello board, optionally filtered by role
- **Update list, label, checklist item** — Rename, reposition, or archive/unarchive a Trello list
- **Search records** — Global keyword search across Trello boards, cards, members, and organizations that the authenticated user can access
- **Card remove member from, remove label from, add member to** — Remove a member from a Trello card
- **List my boards** — List the boards the authenticated user belongs to
- **Get webhook, current member, checklist** — Get a Trello webhook's current details and status by ID
- **Delete webhook, label, comment** — Permanently delete a Trello webhook by its ID, stopping any further callbacks

## Common workflows

Expand Down
12 changes: 6 additions & 6 deletions src/content/docs/agentkit/connectors/twilio.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -65,12 +65,12 @@ import { SetupTwilioSection } from '@components/templates'

Connect this agent connector to let your agent:

- **List verify services, usage records, recordings** — List all Twilio Verify services on the account
- **Get verify service, verification, recording** — Retrieve details of a specific Twilio Verify service by its SID
- **Delete verify service, recording, message** — Delete a Twilio Verify service by its SID
- **Create verify service** — Create a new Twilio Verify service for sending verification codes via SMS, call, email, or WhatsApp
- **Today usage records** — Retrieve today's usage records for a Twilio account, optionally filtered by category
- **Free available numbers toll** — Search for available toll-free phone numbers that can be purchased in a given country
- **Update verify service, verification, phone number** — Update settings of an existing Twilio Verify service, such as its code length or friendly name
- **Create verification, subaccount, queue** — Start a phone or email verification by sending a one-time code via Twilio Verify
- **Check verification** — Check a one-time verification code entered by a user against a Twilio Verify service
- **List queues, applications, accounts** — List call queues on the account, used with TwiML's `<Enqueue>` and `<Dequeue>` verbs
- **Delete phone number, conference participant, verify service** — Release (delete) an incoming phone number from your Twilio account
- **Number lookup phone** — Look up information about a phone number, such as formatting, carrier, line type, and caller name, using Twilio Lookup

## Tool list

Expand Down
Loading