Skip to content
Closed
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 LeadBoxer 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 LeadBoxer MCP tools require a `cloudId` — the UUID that identifies your Atlassian cloud site. Call `leadboxermcp_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 `leadboxermcp_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: 'leadboxermcp',
identifier: 'user_123',
toolName: 'leadboxermcp_getaccessibleatlassianresources',
toolInput: {},
});
const cloudId = resources[0].id;

// Step 2 — use cloudId in subsequent calls
const issue = await actions.executeTool({
connectionName: 'leadboxermcp',
identifier: 'user_123',
toolName: 'leadboxermcp_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="leadboxermcp",
identifier="user_123",
tool_name="leadboxermcp_getaccessibleatlassianresources",
tool_input={},
)
cloud_id = resources[0]["id"]

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

The `leadboxermcp_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 @@
{/* TODO: stub cloned from atlassianmcp — replace Atlassian-specific navigation with LeadBoxer MCP-specific steps */}
import { Steps, Aside } from '@astrojs/starlight/components'

LeadBoxer MCP uses Dynamic Client Registration (DCR) with PKCE — no client ID or secret is needed. Scalekit automatically registers the OAuth client on first use and handles the full token lifecycle.

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

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

Copy the redirect URI — it looks like `https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback`.

{/* TODO: add screenshot of creating the LeadBoxer MCP connection in Scalekit dashboard */}

2. ### Authorize the connection

Use the redirect URI from Scalekit to initiate the OAuth 2.1 authorization flow. LeadBoxer MCP's DCR endpoint will register Scalekit as a client automatically during this step.

{/* TODO: add provider-specific steps for initiating the OAuth flow in LeadBoxer's authorization portal */}

<Aside type="note" title="No manual app registration needed">
Because LeadBoxer MCP supports Dynamic Client Registration, you do not need to create an OAuth app in the LeadBoxer developer portal. Scalekit handles registration on your behalf.
</Aside>

3. ### Verify the connection is active

Back in the [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** and confirm the LeadBoxer MCP connection shows a status of **Active**.

{/* TODO: add screenshot of active connection status in Scalekit dashboard */}
</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 @@ -61,6 +61,7 @@ export { default as SetupIcepanelmcpSection } from './_setup-icepanelmcp.mdx'
export { default as SetupIntercomSection } from './_setup-intercom.mdx'
export { default as SetupJiminnySection } from './_setup-jiminny.mdx'
export { default as SetupJiraSection } from './_setup-jira.mdx'
export { default as SetupLeadboxermcpSection } from './_setup-leadboxermcp.mdx'
export { default as SetupLeadiqSection } from './_setup-leadiq.mdx'
export { default as SetupLinearSection } from './_setup-linear.mdx'
export { default as SetupLinklymcpSection } from './_setup-linklymcp.mdx'
Expand Down Expand Up @@ -165,6 +166,7 @@ export { default as SectionAfterSetupHubspotCommonWorkflows } from './_section-a
export { default as SectionAfterSetupIcepanelmcpCommonWorkflows } from './_section-after-setup-icepanelmcp-common-workflows.mdx'
export { default as SectionAfterSetupIntercomCommonWorkflows } from './_section-after-setup-intercom-common-workflows.mdx'
export { default as SectionAfterSetupJiraCommonWorkflows } from './_section-after-setup-jira-common-workflows.mdx'
export { default as SectionAfterSetupLeadboxermcpCommonWorkflows } from './_section-after-setup-leadboxermcp-common-workflows.mdx'
export { default as SectionAfterSetupLeadiqCommonWorkflows } from './_section-after-setup-leadiq-common-workflows.mdx'
export { default as SectionAfterSetupLinearCommonWorkflows } from './_section-after-setup-linear-common-workflows.mdx'
export { default as SectionAfterSetupLinklymcpCommonWorkflows } from './_section-after-setup-linklymcp-common-workflows.mdx'
Expand Down
88 changes: 88 additions & 0 deletions src/content/docs/agentkit/connectors/leadboxermcp.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
---
title: 'LeadBoxer MCP connector'
tableOfContents: true
description: 'Use LeadBoxer MCP to identify anonymous website visitors and enrich them with firmographic data from your AI agent.'
sidebar:
label: 'LeadBoxer MCP'
overviewTitle: 'Quickstart'
connectorIcon: https://cdn.scalekit.com/sk-connect/assets/provider-icons/leadboxermcp.svg
connectorAuthType: OAuth 2.1/DCR
connectorCategories: [Analytics, Marketing, CRM & Sales]
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/leadboxermcp'
import { Steps, Tabs, TabItem } from '@astrojs/starlight/components'
import { AgentKitCredentials } from '@components/templates'
import { SetupLeadboxermcpSection } from '@components/templates'
import { QuickstartGenericOauthSection } from '@components/templates'
import { SectionAfterSetupLeadboxermcpCommonWorkflows } 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 LeadBoxer MCP credentials with Scalekit so it handles the token lifecycle. You do this once per environment.

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

<SetupLeadboxermcpSection />

</details>

4. ### Authorize and make your first call

<QuickstartGenericOauthSection connector="leadboxermcp" toolName="leadboxermcp_list_specs" providerName="LeadBoxer MCP" toolInputNode="{}" toolInputPython='{}' />

</Steps>

## What you can do

Connect this agent connector to let your agent:

- **Discover available APIs** — list all OpenAPI specs published by LeadBoxer to understand what data is accessible
- **Browse API endpoints** — list all paths and HTTP methods for a spec, organized for quick lookup
- **Inspect endpoint details** — retrieve full parameter definitions, security schemes, and server info for any endpoint
- **Search across endpoints** — perform deep searches through paths, operations, and parameters to find relevant APIs
- **Execute API requests** — call any LeadBoxer API endpoint directly using a HAR request object

## Common workflows

<SectionAfterSetupLeadboxermcpCommonWorkflows />

## 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 @@ -759,6 +759,11 @@ export const catalog: Record<string, ProviderMeta> = {
authType: 'OAuth 2.1/DCR',
categories: ['Transcription', 'Collaboration', 'AI'],
},
leadboxermcp: {
iconUrl: 'https://cdn.scalekit.com/sk-connect/assets/provider-icons/leadboxermcp.svg',
authType: 'OAuth 2.1/DCR',
categories: ['Analytics', 'Marketing', 'CRM & Sales'],
},
leadiq: {
iconUrl: 'https://cdn.scalekit.com/sk-connect/assets/provider-icons/leadiq.svg',
authType: 'API Key',
Expand Down
75 changes: 75 additions & 0 deletions src/data/agent-connectors/leadboxermcp.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import type { Tool } from '../../types/agent-connectors'

export const tools: Tool[] = [
{
name: 'leadboxermcp_list_specs',
description: `Lists all available OpenAPI specs. Use the title to select a spec.`,
params: [],
},
{
name: 'leadboxermcp_list_endpoints',
description: `Lists all API paths and their HTTP methods with summaries, organized by path. Results can be passed directly into 'get-endpoint'.`,
params: [
{
name: 'title',
type: 'string',
required: true,
description: `Title of the OpenAPI spec. Use tool 'list-specs' or 'search-endpoints' to see available specs.`,
},
],
},
{
name: 'leadboxermcp_get_endpoint',
description: `Gets detailed information about a specific API endpoint, including security schemes and servers.`,
params: [
{
name: 'path',
type: 'string',
required: true,
description: `The API endpoint path (e.g. /api/v1/users).`,
},
{
name: 'method',
type: 'string',
required: true,
description: `The HTTP method (e.g. GET, POST, PUT, DELETE).`,
},
{
name: 'title',
type: 'string',
required: true,
description: `Title of the OpenAPI spec.`,
},
],
},
{
name: 'leadboxermcp_search_endpoints',
description: `Performs a deep search through paths, operations, and parameters to discover relevant API endpoints.`,
params: [
{
name: 'pattern',
type: 'string',
required: true,
description: `Search pattern (case-insensitive).`,
},
],
},
{
name: 'leadboxermcp_execute_request',
description: `Executes an API request with a given HAR request object.`,
params: [
{
name: 'harRequest',
type: 'object',
required: true,
description: `HAR request object describing the API call to execute.`,
},
{
name: 'title',
type: 'string',
required: true,
description: `Title of the OpenAPI spec.`,
},
],
},
]