> ## Documentation Index
> Fetch the complete documentation index at: https://knowledge.deeto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Server — Examples

> Real-world usage patterns for the Deeto MCP Server — common queries, filters, content creation, and pagination.

Real-world examples showing common usage patterns for the Deeto MCP Server.

<Note>
  `vendorId` is **never required**. It is automatically injected from your API key on every call.
</Note>

***

## Get workspace overview

Start with `get-stats` to understand your workspace size and rewards activity:

```json theme={null}
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "get-stats",
    "arguments": {}
  },
  "id": 1
}
```

**Response:**

```json theme={null}
{
  "data": {
    "tools": {
      "get-people": { "total": 1232 },
      "get-companies": { "total": 526 },
      "get-contents": { "total": 3322 }
    },
    "rewards": {
      "totalRedemptions": 124,
      "totalRedeemedAmount": 9300,
      "totalRedeemableAmount": 4150
    }
  }
}
```

<Tip>
  Use the `rewards` section when the user asks how many rewards have been given, total redeemed, or outstanding rewards.
</Tip>

***

## Query confirmed references

Get confirmed references with basic info and status:

```json theme={null}
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "get-people",
    "arguments": {
      "userPrivileges": "reference",
      "page": 1,
      "pageSize": 25,
      "fields": ["basic", "status"],
      "orderBy": "createdAt",
      "orderDirection": "DESC",
      "context": {
        "type": "filters",
        "filters": {
          "referenceStatus": ["referrer-confirmed", "confirmed"]
        }
      }
    }
  },
  "id": 2
}
```

***

## Find references available for calls

Use the `callAvailabilities` filter to find references who have opted in to take reference calls:

```json theme={null}
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "get-people",
    "arguments": {
      "userPrivileges": "reference",
      "context": {
        "type": "filters",
        "filters": {
          "callAvailabilities": ["100", "6", "3", "1"]
        }
      }
    }
  },
  "id": 3
}
```

`callAvailabilities` values: `"100"` = as needed, `"6"` = up to 6/quarter, `"3"` = up to 3/quarter, `"1"` = up to 1/quarter, `"0"` = not available, `"suspended"` = deactivated. For "unavailable" queries use `["0", "suspended"]`.

<Warning>
  For "who is available for calls?" always use `callAvailabilities` — do **not** return total references for this query.
</Warning>

***

## Search people by name

Free-text search across name, email, or content. 3+ words triggers AI semantic search; 1–2 words filters by name/email/content:

```json theme={null}
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "get-people",
    "arguments": {
      "search": "Jane Doe",
      "fields": ["basic"]
    }
  },
  "id": 4
}
```

***

## Search for prospects

Query all prospects in your workspace:

```json theme={null}
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "get-people",
    "arguments": {
      "userPrivileges": "prospect",
      "page": 1,
      "pageSize": 50,
      "fields": ["basic", "status"]
    }
  },
  "id": 5
}
```

***

## Search companies

Find companies matching a search term:

```json theme={null}
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "get-companies",
    "arguments": {
      "search": "Acme",
      "fields": ["basic", "extended"]
    }
  },
  "id": 6
}
```

***

## Get content by multiple types

Retrieve all quotes and extracted text:

```json theme={null}
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "get-contents",
    "arguments": {
      "context": {
        "type": "filters",
        "filters": {
          "types": ["Quote", "extractedText", "Transcript"]
        }
      }
    }
  },
  "id": 7
}
```

<Tip>
  When searching for quotes, include both `Quote` and `extractedText` types for comprehensive results.
</Tip>

***

## Get full quote text (un-truncated)

By default `get-contents` returns a 100-character preview. When the user wants to read or paste the full quote, set `includeFullContent: true`:

```json theme={null}
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "get-contents",
    "arguments": {
      "includeFullContent": true,
      "context": {
        "type": "filters",
        "filters": {
          "types": ["Quote", "extractedText"]
        }
      }
    }
  },
  "id": 8
}
```

***

## Create a company and reference

**Step 1: Create the company**

```json theme={null}
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "create-company",
    "arguments": {
      "companyName": "Acme Corp",
      "website": "https://acme.com"
    }
  },
  "id": 9
}
```

**Step 2: Create the reference contact**

```json theme={null}
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "create-person",
    "arguments": {
      "email": "jane@acme.com",
      "firstName": "Jane",
      "lastName": "Doe",
      "companyName": "Acme Corp",
      "title": "VP of Customer Success",
      "linkedInProfile": "https://linkedin.com/in/janedoe"
    }
  },
  "id": 10
}
```

***

## Content creation workflow

**Step 1: Get content instructions**

```json theme={null}
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "get-content-instructions",
    "arguments": { "contentType": "CaseStudy" }
  },
  "id": 11
}
```

**Step 2: Gather source data** — Use `get-contents` and `get-people` to collect the reference data and quotes.

**Step 3: Save the draft**

```json theme={null}
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "save-draft-content",
    "arguments": {
      "context": { "conversationId": "conv-uuid-here" },
      "messageId": "msg-uuid-here",
      "type": "CaseStudy",
      "name": "Acme Success Story",
      "title": "How Acme Increased Revenue by 40%",
      "publishedContent": [
        { "type": "title", "text": "How Acme Increased Revenue by 40%" },
        { "type": "paragraph", "text": "By implementing our platform, Acme Corp achieved a <strong>40% increase</strong> in annual revenue." },
        { "type": "quoteBlock", "text": "The platform completely transformed our sales process." },
        { "type": "author", "text": "Jane Doe, VP of Customer Success at Acme Corp" }
      ]
    }
  },
  "id": 12
}
```

<Note>
  Text in `publishedContent` blocks uses **inline HTML** for formatting (`<strong>`, `<em>`, `<br>`), not Markdown.
</Note>

***

## Paginate through all results

```json theme={null}
// Page 1
{ "params": { "name": "get-people", "arguments": { "page": 1, "pageSize": 100 } } }

// Check response: pagination.hasNext === true → fetch next page
{ "params": { "name": "get-people", "arguments": { "page": 2, "pageSize": 100 } } }

// Continue until pagination.isLastPage === true
```

***

## Using with curl

```bash theme={null}
curl -X POST https://api.deeto.ai/v2/mcp \
  -H "Authorization: Bearer dtk_live_your_key_here" \
  -H "Content-Type: application/json" \
  --compressed \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get-stats","arguments":{}},"id":1}'
```

<Tip>
  Include `--compressed` in your curl commands — the server uses gzip compression.
</Tip>
