> ## 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 — Tools Reference

> Complete reference for all Deeto MCP Server tools — parameters, filters, response shapes, and usage tips.

All tools are called via the `tools/call` JSON-RPC method:

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

<Note>
  `vendorId` is automatically set from your API key. You do **not** need to include it in tool arguments.
</Note>

***

## Query tools

### get-stats

Fast, lightweight tool returning unfiltered totals for your workspace plus rewards activity.

**Minimum privilege:** Content Viewer | **Parameters:** None required.

**Response:**

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

Use the rewards section when users ask about redemptions, total redeemed, rewards given, or outstanding rewards.

***

### get-people

Query references and prospects with filtering, sorting, and pagination.

**Minimum privilege:** Content Viewer

| Parameter      | Type   | Required | Description                                                                                                  |
| -------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------ |
| search         | String | No       | Free-text search. 3+ words triggers AI semantic search; 1–2 words filters by name/email/content.             |
| userPrivileges | String | No       | `reference` or `prospect`                                                                                    |
| page           | Number | No       | Page number (default: 1)                                                                                     |
| pageSize       | Number | No       | Items per page (default: 100)                                                                                |
| orderBy        | String | No       | `createdAt`, `updatedAt`, `authenticatedUser.firstName`, `authenticatedUser.lastName`, `account.companyName` |
| orderDirection | String | No       | `ASC` or `DESC` (default: DESC)                                                                              |
| fields         | Array  | No       | `basic`, `status`, `tags`, `contributions`, `availability`                                                   |
| context        | Object | No       | Advanced filtering (see below)                                                                               |

**Context filters — by criteria:**

```json theme={null}
{
  "context": {
    "type": "filters",
    "filters": {
      "referenceStatus": ["referrer-confirmed", "confirmed", "pending"],
      "callAvailabilities": ["100", "6", "3", "1"],
      "additionalFields": [
        { "customizedFormFieldId": "uuid", "value": ["value"] }
      ]
    }
  }
}
```

`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 "available for calls": `["100", "6", "3", "1"]`. For "unavailable": `["0", "suspended"]`.

**Context filters — by ID:**

```json theme={null}
{
  "context": {
    "type": "views",
    "views": { "peopleIds": ["uuid1", "uuid2"] }
  }
}
```

The response metadata includes `availableAdditionalFields` with `customizedFormFieldId`, `fieldName`, and allowed `values` for your workspace.

***

### get-companies

Query companies and accounts with search, filtering, and pagination.

**Minimum privilege:** Content Viewer

| Parameter | Type   | Required | Description                          |
| --------- | ------ | -------- | ------------------------------------ |
| search    | String | No       | Search by company name               |
| page      | Number | No       | Page number (default: 1)             |
| pageSize  | Number | No       | Items per page                       |
| fields    | Array  | No       | `basic`, `extended`, `tags`          |
| context   | Object | No       | Filter by companyIds or companyNames |

***

### get-contents

Query content assets including quotes, reviews, video testimonials, case studies, and more.

**Minimum privilege:** Content Viewer

By default, returns both `approved` and `internal only` assets. `Internal only` assets (e.g. Gong transcripts) are safe for AI generation context but are not for external sharing. Pass `vendorPublishPolicies` explicitly to restrict to specific statuses.

| Parameter          | Type    | Required | Description                                                                                                     |
| ------------------ | ------- | -------- | --------------------------------------------------------------------------------------------------------------- |
| search             | String  | No       | Full-text search                                                                                                |
| includeFullContent | Boolean | No       | When true, returns full un-truncated publishedContent. Use when the user wants to read or paste the full quote. |
| type               | String  | No       | `Quote`, `Review`, `VideoTestimonial`, `url`, `pdf`, `CaseStudy`, `QuestionsAndAnswers`, `extractedText`        |
| page               | Number  | No       | Page number                                                                                                     |
| pageSize           | Number  | No       | Items per page                                                                                                  |
| orderBy            | String  | No       | `createdAt`, `vendorPublishPolicy`, `name`, `lastEditedAt`                                                      |
| context            | Object  | No       | Filter by types (array), tags, companyIds                                                                       |

To filter by multiple content types, use `context.filters.types` (array) instead of the `type` parameter (single value only).

**Q\&A content:** `QuestionsAndAnswers` assets include a `qa:` field with full question/answer pairs formatted as `qa: Q: <question> | A: <answer>; ...`. Answers are truncated to 300 chars each.

***

### get-prospects-dashboard

Retrieve the prospect pipeline view with optional meeting data.

**Minimum privilege:** Rep

| Parameter           | Type   | Required | Description                       |
| ------------------- | ------ | -------- | --------------------------------- |
| page                | Number | No       | Page number (default: 1)          |
| pageSize            | Number | No       | Items per page                    |
| fields              | Array  | No       | `basic`, `meetings`, `full`       |
| opportunityOwnerIds | Array  | No       | Filter by opportunity owner UUIDs |
| prospectTemplateIds | Array  | No       | Filter by prospect template UUIDs |

***

### get-content-instructions

Get the schema, validation rules, and examples for creating content of a specific type.

**Minimum privilege:** Rep

| Parameter   | Type   | Required | Description                    |
| ----------- | ------ | -------- | ------------------------------ |
| contentType | String | Yes      | `CaseStudy` or `WinLossReport` |

<Warning>
  Always call `get-content-instructions` before using `save-draft-content` to understand the expected structure.
</Warning>

***

## Create tools

### create-company

Create a new company in your workspace.

**Minimum privilege:** Admin

| Parameter       | Type   | Required | Description                 |
| --------------- | ------ | -------- | --------------------------- |
| companyName     | String | Yes      | Must be unique in workspace |
| website         | URL    | No       | Company website             |
| companySize     | String | No       | Size category               |
| linkedInProfile | String | No       | LinkedIn company page URL   |

**Response:**

```json theme={null}
{
  "success": true,
  "data": {
    "accountId": "uuid",
    "companyName": "Acme Corp"
  }
}
```

***

### create-person

Create a new reference contact.

**Minimum privilege:** Admin

| Parameter       | Type   | Required | Description        |
| --------------- | ------ | -------- | ------------------ |
| email           | String | Yes      | Must be unique     |
| firstName       | String | Yes      | First name         |
| lastName        | String | Yes      | Last name          |
| companyName     | String | Yes      | Associated company |
| title           | String | No       | Job title          |
| linkedInProfile | String | No       | LinkedIn URL       |

**Response:**

```json theme={null}
{
  "success": true,
  "data": {
    "accountContactId": "uuid",
    "email": "..."
  }
}
```

***

### save-draft-content

Save a content draft (case study or win/loss report).

**Minimum privilege:** Admin

The `publishedContent` array is **required** and must contain the actual content blocks. This tool does not generate content — build the content first, then pass it here to save.

| Parameter        | Type   | Required | Description                                               |
| ---------------- | ------ | -------- | --------------------------------------------------------- |
| context          | Object | Yes      | `{ "conversationId": "uuid" }`                            |
| messageId        | UUID   | Yes      | ID of the assistant message creating this draft           |
| type             | String | Yes      | `CaseStudy` or `WinLossReport`                            |
| name             | String | Yes      | Draft name (min 3 chars, unique per type in conversation) |
| title            | String | No       | Display title (defaults to name)                          |
| publishedContent | Array  | Yes      | Array of content blocks                                   |
| tags             | Array  | No       | Tags for categorization                                   |
| metadata         | Object | No       | Additional metadata                                       |

**Content block types:**

| Block type | Description                           | Key fields                     |
| ---------- | ------------------------------------- | ------------------------------ |
| title      | Content title heading                 | text                           |
| paragraph  | Text paragraph (supports inline HTML) | text                           |
| container  | Reference to source content           | sourceContentObjectId, content |
| quoteBlock | Quote from a reference                | text                           |
| author     | Author attribution                    | text, participant info         |

***

## AI Agent tool

### start-agent

Trigger an AI agent workflow that can reason over your Deeto workspace data and complete multi-step tasks autonomously.

**Minimum privilege:** Admin

<Note>
  This tool is available in the backend but is in active development. Behavior and parameters may evolve. Contact your Customer Success Manager before building workflows that depend on it.
</Note>

| Parameter | Type   | Required | Description                                                                       |
| --------- | ------ | -------- | --------------------------------------------------------------------------------- |
| prompt    | String | Yes      | Natural language instruction for the agent to execute                             |
| context   | Object | No       | Optional context such as specific record IDs or filters to scope the agent's work |

The agent can use other MCP tools internally (get-people, get-contents, etc.) to gather data before producing a result. It returns a structured response containing the agent's output and any tool calls it made.

***

## Pagination

All list tools support consistent pagination:

```json theme={null}
// Request
{ "page": 1, "pageSize": 50 }

// Response
{
  "pagination": {
    "totalCount": 1000,
    "returned": 50,
    "hasNext": true,
    "isLastPage": false
  }
}
```

| Limit             | Value |
| ----------------- | ----- |
| Default page size | 100   |
| Max response size | 90 KB |

Responses exceeding the size limit are automatically truncated with `hasNext: true`.

***

Support: Contact your Deeto Customer Success Manager or email [support@deeto.ai](mailto:support@deeto.ai).
