> For the complete documentation index, see [llms.txt](https://help.sharkdom.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.sharkdom.com/feature-suite/dweep-scouting-mcp.md).

# Dweep Scouting MCP

Scouting partners has never been easier.

{% hint style="info" %}
Tip: Increase the visibility of your partner program by 400% by publishing your partner program form.
{% endhint %}

## Connecting your organisation to the Dweep MCP

Three things have to be true before partner scouting works: the server knows your *organisation*, it knows *which person* is asking, and that person has a *live LinkedIn session*. This guide covers all three, what you supply for each, and what breaks when one is missing.

Dweep finds B2B partner companies and the people to contact at them. It searches through a real LinkedIn account that someone at your organisation signs into once. Everything below exists to establish and maintain that chain.

Budget about ten minutes. Only step 3 needs a browser, and only step 1 needs someone with access to your organisation's key.

### The identity chain

Three tiers resolve in order on every call. Each one has a distinct failure message, so the error you see tells you exactly which tier is missing — worth learning, because it turns most support questions into a five-second diagnosis.

<figure><img src="https://3954960519-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadTM8GarVeiEakkopgTw%2Fuploads%2FYE26FFW955fvpxrVMSl0%2Fimage.png?alt=media&amp;token=b20d9628-f837-44e2-b1de-818bcdced4db" alt=""><figcaption></figcaption></figure>

TIER 1 — WHO IS THE COMPANYOrganisation keyAuthorization: Bearerdwk\_live\_…

TIER 2 WHO IS THE PERSONUser handleidentify\_user(user\_id="ayush-b")

TIER 3, WHOSE LINKEDINLinkedIn bindingbrowser sign-in,once per person

IF MISSING, THE SERVER REPLIESidentity\_requiredconnector has no keyuser\_not\_identifiedorg known, person notno\_linkedin\_bindingnobody signed in yetAll three present → ready: true → scouting worksCompany research (financials, ratings, unit economics) works from tier 1 alone.

### What you actually supply

Almost everything is configured on our side already. There are exactly **two** values that come from you, and one of them is per-person rather than per-organisation.

<figure><img src="https://3954960519-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadTM8GarVeiEakkopgTw%2Fuploads%2FSWarxQ8FRCGjpKUFPHzZ%2Fimage.png?alt=media&amp;token=42b3c2d2-7a5e-49a0-8ade-45c52a1d4806" alt=""><figcaption></figcaption></figure>

### Step by step

### 1. Put the organisation key on the connector

Add a custom header to the Dweep MCP connector. Use the key issued to your organisation at onboarding:

```
Authorization: Bearer dwk_live_<your organisation key>
```

It must be the `Authorization` header specifically. The server also accepts `x-dweep-service-key`, but MCP clients restrict which header names they will send, and `Authorization` is the one every client permits. A key beginning `dwk_live_` is recognised as an organisation key rather than a user token, so there is no ambiguity.

{% hint style="info" %}
**Treat this like a password**\
The key grants access to your organisation's scouting and LinkedIn surface. Store it in your secret manager, not in a shared document. If it leaks, ask us to rotate it a replacement can be issued without disturbing existing bindings.
{% endhint %}

#### 2. Claim a handle

The organisation key says which company is calling. It cannot say which of your colleagues is calling, and that matters: LinkedIn accounts are bound per person, not per company.

Pick something short and stable, your name with a dash works. It does not have to exist beforehand; the call creates it.

```
identify_user(user_id="ayush-b")
```

Not an email address, and not a handle you know belongs to someone else — you would be claiming their binding.

#### 3. Connect a LinkedIn account

Ask for a link, open it, and complete the sign-in fully — including any verification step LinkedIn asks for.

```
check_setup()                → tells you what is missing
get_linkedin_connect_url()   → returns a one-time browser link
```

{% hint style="info" %}
**Finish within 15 minutes**

The link carries a single-use token that expires after 15 minutes. If you start the sign-in and come back to it later, LinkedIn will still let you in and the connection will silently fail to complete. Request a fresh link rather than reusing an old one.
{% endhint %}

One LinkedIn account binds to exactly one person. If a colleague has already connected that account, your attempt is refused use a different LinkedIn account, or have them release theirs first.

#### 4. Verify before you rely on it

```
check_setup()   → {"ready": true}
```

Anything other than `ready: true` names the tier that is missing and the next action. The page you land on after signing in is not the confirmation, `check_setup` is.

### What happens when you connect

Worth understanding once, because two of the failure modes in the troubleshooting table only make sense against this sequence.

<figure><img src="https://3954960519-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadTM8GarVeiEakkopgTw%2Fuploads%2FGRZrFV4O4xqvmKmneCuC%2Fimage.png?alt=media&amp;token=bcee9221-f839-4626-b5d8-bece34373fd0" alt=""><figcaption></figcaption></figure>

*The single-use token is what ties your return to the request that started it. It is created at the beginning of the sequence, not when you click which is why a slow sign-in fails even though LinkedIn itself succeeded.*

### When something is wrong

Every refusal names its reason. Match it here.

<figure><img src="https://3954960519-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadTM8GarVeiEakkopgTw%2Fuploads%2FPss5HjwPFcdz2j74xfBP%2Fimage.png?alt=media&amp;token=5a5f8a38-ed96-43c7-b98b-0d8f44811920" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**The one failure that looks like success**

If you complete a LinkedIn sign-in and the confirmation page appears but scouting still reports no account, the sign-in worked and the connection did not almost always the 15-minute window. Request a fresh link and complete it promptly. Confirm with `check_setup()` rather than trusting the page.
{% endhint %}
