Skip to content
Draft
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{/* TODO: stub cloned from _section-after-setup-atlassianmcp-common-workflows.mdx for Crustdata MCP. Review and update connector-specific references (URLs, scopes, app-registration steps) before merging. */}
export const sectionTitle = 'Common workflows'

import { Tabs, TabItem, Aside } from '@astrojs/starlight/components'

### Get your cloud ID

Most Crustdata MCP tools require a `cloudId` — the UUID that identifies your Atlassian cloud site. Call `crustdatamcp_getaccessibleatlassianresources` once to retrieve it, then pass the `id` field value in every subsequent tool call.

<Aside type="note" title="Call this tool first">
Run `crustdatamcp_getaccessibleatlassianresources` before calling any Jira or Confluence tool. The response lists every Atlassian site the user has access to. Use the `id` field as `cloudId`.
</Aside>

<Tabs syncKey="tech-stack">
<TabItem label="Node.js">
```typescript
// Step 1 — get the cloud ID
const resources = await actions.executeTool({
connectionName: 'crustdatamcp',
identifier: 'user_123',
toolName: 'crustdatamcp_getaccessibleatlassianresources',
toolInput: {},
});
const cloudId = resources[0].id;

// Step 2 — use cloudId in subsequent calls
const issue = await actions.executeTool({
connectionName: 'crustdatamcp',
identifier: 'user_123',
toolName: 'crustdatamcp_getjiraissue',
toolInput: {
cloudId,
issueIdOrKey: 'KAN-1',
},
});
console.log(issue);
```
</TabItem>
<TabItem label="Python">
```python
# Step 1 — get the cloud ID
resources = actions.execute_tool(
connection_name="crustdatamcp",
identifier="user_123",
tool_name="crustdatamcp_getaccessibleatlassianresources",
tool_input={},
)
cloud_id = resources[0]["id"]

# Step 2 — use cloud_id in subsequent calls
issue = actions.execute_tool(
connection_name="crustdatamcp",
identifier="user_123",
tool_name="crustdatamcp_getjiraissue",
tool_input={
"cloudId": cloud_id,
"issueIdOrKey": "KAN-1",
},
)
print(issue)
```
</TabItem>
</Tabs>

The `crustdatamcp_getaccessibleatlassianresources` response looks like this:

```json
[
{
"id": "a4c9b3e2-1234-5678-abcd-ef0123456789",
"name": "My Company",
"url": "https://mycompany.atlassian.net",
"scopes": ["read:jira-work", "write:jira-work", "read:confluence-content.all"]
}
]
```

Use `id` as the `cloudId` parameter. If the user belongs to multiple Atlassian sites, the list contains one entry per site — pick the one matching the target `url`.
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { Steps, Aside } from '@astrojs/starlight/components'

{/* TODO: stub cloned from _setup-atlassianmcp.mdx for Crustdata MCP. Review and update connector-specific references (URLs, scopes, app-registration steps) before merging. */}

Crustdata MCP uses OAuth 2.1 with Dynamic Client Registration (DCR) and PKCE. Scalekit handles client registration and token management automatically — no client ID or secret is needed in advance.

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

In the [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** and click **Create Connection**. Find **Crustdata MCP** and click **Create**.

{/* TODO: add screenshot — alt: "Create Connection screen with Crustdata MCP selected", src: @/assets/docs/agent-connectors/crustdatamcp/create-connection.png */}

2. ### Authorize the connection

After creating the connection, click **Authorize**. Scalekit registers an OAuth client with Crustdata via DCR and redirects you to Crustdata's authorization page. Sign in with your Crustdata account and grant the requested permissions.

{/* TODO: add screenshot — alt: "Crustdata OAuth authorization screen", src: @/assets/docs/agent-connectors/crustdatamcp/authorize-connection.png */}
{/* TODO: add provider-specific steps — e.g. where to locate OAuth consent settings in the Crustdata dashboard */}

<Aside type="note" title="Crustdata account required">
You must have an active Crustdata account to authorize the connection. If you do not have one, sign up at [crustdata.com](https://crustdata.com) before proceeding.
</Aside>

3. ### Verify the connection is active

Back in the Scalekit dashboard under **AgentKit** > **Connections**, confirm the Crustdata MCP connection shows a status of **Active**. Your AI agent can now call Crustdata tools through Scalekit.

{/* TODO: add screenshot — alt: "Crustdata MCP connection status showing Active", src: @/assets/docs/agent-connectors/crustdatamcp/connection-active.png */}
</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 @@ -21,6 +21,7 @@ export { default as SetupClickupSection } from './_setup-clickup.mdx'
export { default as SetupCloseSection } from './_setup-close.mdx'
export { default as SetupCommonroommcpSection } from './_setup-commonroommcp.mdx'
export { default as SetupConfluenceSection } from './_setup-confluence.mdx'
export { default as SetupCrustdatamcpSection } from './_setup-crustdatamcp.mdx'
export { default as SetupCustomeriomcpSection } from './_setup-customeriomcp.mdx'
export { default as SetupDatabricksSection } from './_setup-databricks.mdx'
export { default as SetupDatadogSection } from './_setup-datadog.mdx'
Expand Down Expand Up @@ -131,6 +132,7 @@ export { default as SectionAfterSetupClickupCommonWorkflows } from './_section-a
export { default as SectionAfterSetupCloseCommonWorkflows } from './_section-after-setup-close-common-workflows.mdx'
export { default as SectionAfterSetupCommonroommcpCommonWorkflows } from './_section-after-setup-commonroommcp-common-workflows.mdx'
export { default as SectionAfterSetupConfluenceCommonWorkflows } from './_section-after-setup-confluence-common-workflows.mdx'
export { default as SectionAfterSetupCrustdatamcpCommonWorkflows } from './_section-after-setup-crustdatamcp-common-workflows.mdx'
export { default as SectionAfterSetupCustomeriomcpCommonWorkflows } from './_section-after-setup-customeriomcp-common-workflows.mdx'
export { default as SectionAfterSetupDatabricksCommonWorkflows } from './_section-after-setup-databricks-common-workflows.mdx'
export { default as SectionAfterSetupDatadogCommonWorkflows } from './_section-after-setup-datadog-common-workflows.mdx'
Expand Down
89 changes: 89 additions & 0 deletions src/content/docs/agentkit/connectors/crustdatamcp.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
title: 'Crustdata MCP connector'
tableOfContents: true
description: 'Use Crustdata MCP to source candidates, prospect accounts, and enrich people and company data from your AI agent.'
sidebar:
label: 'Crustdata MCP'
overviewTitle: 'Quickstart'
connectorIcon: https://cdn.scalekit.com/sk-connect/assets/provider-icons/crustdata.svg
connectorAuthType: OAuth 2.1/DCR
connectorCategories: [CRM & Sales, 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/crustdatamcp'
import { Steps, Tabs, TabItem } from '@astrojs/starlight/components'
import { AgentKitCredentials } from '@components/templates'
import { SetupCrustdatamcpSection } from '@components/templates'
import { QuickstartGenericOauthSection } from '@components/templates'
import { SectionAfterSetupCrustdatamcpCommonWorkflows } 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 Crustdata MCP credentials with Scalekit so it handles the token lifecycle. You do this once per environment.

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

<SetupCrustdatamcpSection />

</details>

4. ### Authorize and make your first call

<QuickstartGenericOauthSection connector="crustdatamcp" toolName="crustdatamcp_crustdata_credits_check" providerName="Crustdata MCP" />

</Steps>

## What you can do

Connect this agent connector to let your agent:

- **Company crustdata autocomplete** — Get autocomplete suggestions for CompanyDB field values
- **Filter crustdata autocomplete** — Get autocomplete suggestions for search filter values
- **Person crustdata autocomplete** — Get autocomplete suggestions for people database fields
- **Search crustdata batch job, crustdata company** — Async batch job search from the database for up to 10 companies at once
- **Enrich crustdata batch people, crustdata company, crustdata people** — Async batch contact enrichment for 1-1000 LinkedIn URLs
- **Identify crustdata company** — Identify and match companies by name, domain, LinkedIn URL, Crunchbase URL, or Crustdata company_id

## Common workflows

<SectionAfterSetupCrustdatamcpCommonWorkflows />

## 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} />
5 changes: 5 additions & 0 deletions src/data/agent-connectors/catalog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1249,4 +1249,9 @@ export const catalog: Record<string, ProviderMeta> = {
authType: 'OAuth 2.0',
categories: ['Communication'],
},
crustdatamcp: {
iconUrl: 'https://cdn.scalekit.com/sk-connect/assets/provider-icons/crustdata.svg',
authType: 'OAuth 2.1/DCR',
categories: ['CRM & Sales', 'Search'],
},
}
Loading