-
-
Notifications
You must be signed in to change notification settings - Fork 6
Integrations
Tomas Pflanzer edited this page Feb 27, 2026
·
1 revision
Sandcastle ships with 56 built-in connectors across 9 categories. Each connector is a self-contained .mjs file with retry logic, error handling, and shared utilities via connector-utils.mjs.
| Tool | Description |
|---|---|
browser |
Headless browser automation (Puppeteer) - click, type, screenshot, extract |
code-interpreter |
Execute Python/JS code in sandbox |
filesystem |
Read, write, list files in sandbox |
firecrawl |
Web scraping and crawling |
human-input |
Pause and request human input |
mcp-bridge |
Bridge to any MCP server |
python-runtime |
Python script execution |
shell |
Shell command execution |
tavily |
Web search API |
webhook |
Send/receive webhooks |
| Tool | Description |
|---|---|
airtable |
Airtable CRUD operations |
google-sheets |
Google Sheets read/write |
mongodb |
MongoDB queries and mutations |
notion |
Notion pages and databases |
pinecone |
Vector database operations |
postgresql |
PostgreSQL queries |
redis |
Redis key-value operations |
snowflake |
Snowflake data warehouse queries |
supabase |
Supabase database and auth |
| Tool | Description |
|---|---|
discord |
Discord messaging and bot integration |
gmail |
Send and read emails via Gmail API |
intercom |
Customer messaging platform |
resend |
Transactional email via Resend |
sendgrid |
Email delivery via SendGrid |
slack |
Slack messaging, channels, threads |
teams |
Microsoft Teams messaging |
twilio |
SMS and voice calls |
whatsapp |
WhatsApp Business messaging |
| Tool | Description |
|---|---|
anthropic |
Direct Claude API access |
elevenlabs |
Text-to-speech generation |
figma |
Figma design file operations |
gdrive |
Google Drive file management |
openai |
Direct OpenAI API access |
aws-s3 |
S3 object storage |
vercel |
Vercel deployment management |
zapier |
Zapier webhook triggers |
| Tool | Description |
|---|---|
github |
GitHub repos, issues, PRs, actions |
jira |
Jira issue tracking |
linear |
Linear project management |
calendly |
Scheduling and availability |
servicenow |
IT service management |
| Tool | Description |
|---|---|
sap |
SAP ERP integration |
helios |
Helios iNuvio ERP (Czech market) |
abra |
ABRA Gen ERP (Czech market) |
quickbooks |
QuickBooks accounting |
shopify |
Shopify e-commerce |
| Tool | Description |
|---|---|
cloudflare-workers |
Deploy and manage CF Workers |
datadog |
Monitoring and observability |
pagerduty |
Incident management |
docusign |
Document signing |
| Tool | Description |
|---|---|
hubspot |
HubSpot CRM operations |
salesforce |
Salesforce CRM queries and mutations |
zendesk |
Zendesk support tickets |
| Tool | Description |
|---|---|
stripe |
Stripe payments, subscriptions, invoices |
plaid |
Banking data via Plaid |
Tools are available to AI agents during step execution. The agent decides which tools to use based on the prompt:
steps:
- id: research
prompt: |
Research {input.company} using web search.
Then find their GitHub repos and check recent activity.
Save your findings to a Google Sheet.
tools:
- tavily
- github
- google-sheetsEach tool can have credentials configured via the dashboard or CLI:
sandcastle tools configure slack # Interactive credential setup
sandcastle tools list # Show all tools and connection statusCredentials are encrypted at rest using Fernet (AES-128-CBC + HMAC-SHA256) when CREDENTIAL_ENCRYPTION_KEY is set.
Create a .mjs file in the connectors/ directory following the pattern:
import { fetchWithRetry, assertOk } from './connector-utils.mjs';
export const metadata = {
name: 'my-tool',
description: 'Description of what this tool does',
category: 'general',
credentials: ['MY_TOOL_API_KEY'],
};
export async function execute(action, params, credentials) {
const response = await fetchWithRetry(`https://api.example.com/${action}`, {
headers: { Authorization: `Bearer ${credentials.MY_TOOL_API_KEY}` },
body: JSON.stringify(params),
});
assertOk(response);
return response.json();
}Sandcastle v0.17.0 | BSL-1.1 License | Created by Tomas Pflanzer @gizmax