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

# peeps MCP server tools reference and parameter guide

> Complete reference for all tools exposed by the peeps MCP server: search_people, get_person, search_organizations, get_organization, and list_contacts.

The peeps MCP server exposes five tools that your AI assistant can invoke to search, retrieve, and paginate over people and organization data in your workspace. Each tool accepts structured parameters and returns typed JSON — your assistant can chain them together, filter results, and reason over the data in a single conversation turn.

***

## search\_people

Search for people in your workspace by name, job title, email address, or the organization they belong to. Use this tool when you need to find one or more contacts matching a text query.

### Parameters

<ParamField query="query" type="string" required>
  The search string. Match against a person's name, job title, email address, or organization name. Example: `"engineers at Acme"` or `"jane@example.com"`.
</ParamField>

<ParamField query="limit" type="number">
  Maximum number of results to return. Defaults to `10`. Maximum value is `100`.
</ParamField>

<ParamField query="organization_id" type="string">
  Filter results to people who belong to a specific organization. Use the organization's `id` field from a prior `search_organizations` or `get_organization` call.
</ParamField>

### Returns

An array of person summary objects.

<ResponseField name="results" type="Person[]">
  <Expandable title="Person fields">
    <ResponseField name="id" type="string">
      Unique identifier for the person. Use this with `get_person` to retrieve the full profile.
    </ResponseField>

    <ResponseField name="name" type="string">
      Full name of the person.
    </ResponseField>

    <ResponseField name="email" type="string">
      Primary email address.
    </ResponseField>

    <ResponseField name="title" type="string">
      Job title.
    </ResponseField>

    <ResponseField name="organization_name" type="string">
      Name of the organization the person is associated with.
    </ResponseField>
  </Expandable>
</ResponseField>

### Example prompt

```text theme={null}
Find all engineers at Acme Corp.
```

***

## get\_person

Retrieve the complete profile for a specific person by their unique ID. Use this tool after a `search_people` call when you need fields that are not included in search results, such as phone number, LinkedIn URL, or timestamps.

### Parameters

<ParamField query="person_id" type="string" required>
  The unique ID of the person to retrieve. Obtain this from a `search_people` or `list_contacts` result.
</ParamField>

### Returns

A single full person object.

<ResponseField name="person" type="Person">
  <Expandable title="Person fields">
    <ResponseField name="id" type="string">
      Unique identifier for the person.
    </ResponseField>

    <ResponseField name="name" type="string">
      Full name.
    </ResponseField>

    <ResponseField name="email" type="string">
      Primary email address.
    </ResponseField>

    <ResponseField name="title" type="string">
      Job title.
    </ResponseField>

    <ResponseField name="phone" type="string">
      Phone number.
    </ResponseField>

    <ResponseField name="organization_id" type="string">
      ID of the person's organization.
    </ResponseField>

    <ResponseField name="organization_name" type="string">
      Name of the person's organization.
    </ResponseField>

    <ResponseField name="linkedin_url" type="string">
      LinkedIn profile URL.
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO 8601 timestamp of when the contact was added to your workspace.
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      ISO 8601 timestamp of the most recent update to this record.
    </ResponseField>
  </Expandable>
</ResponseField>

### Example prompt

```text theme={null}
Get full details for person ID abc123.
```

***

## search\_organizations

Search for organizations in your workspace by name or domain. Use this tool to find companies before looking up their members or passing an `organization_id` to `search_people`.

### Parameters

<ParamField query="query" type="string" required>
  The search string. Matched against organization name and domain. Example: `"acme.com"` or `"healthcare"`.
</ParamField>

<ParamField query="limit" type="number">
  Maximum number of results to return. Defaults to `10`. Maximum value is `100`.
</ParamField>

### Returns

An array of organization summary objects.

<ResponseField name="results" type="Organization[]">
  <Expandable title="Organization fields">
    <ResponseField name="id" type="string">
      Unique identifier for the organization. Use this with `get_organization` or as the `organization_id` filter in `search_people`.
    </ResponseField>

    <ResponseField name="name" type="string">
      Organization name.
    </ResponseField>

    <ResponseField name="domain" type="string">
      Primary web domain (e.g. `acme.com`).
    </ResponseField>

    <ResponseField name="industry" type="string">
      Industry classification.
    </ResponseField>

    <ResponseField name="size" type="string">
      Organization size or headcount range.
    </ResponseField>
  </Expandable>
</ResponseField>

### Example prompt

```text theme={null}
Find organizations in the healthcare industry.
```

***

## get\_organization

Retrieve full details for a specific organization by its ID. Optionally include its member list in the same response by setting `include_members` to `true`.

### Parameters

<ParamField query="organization_id" type="string" required>
  The unique ID of the organization to retrieve. Obtain this from a `search_organizations` result.
</ParamField>

<ParamField query="include_members" type="boolean">
  When set to `true`, the response includes a `members` array containing every person associated with the organization. Defaults to `false`.
</ParamField>

### Returns

A single organization object. When `include_members` is `true`, the `members` array is populated.

<ResponseField name="organization" type="Organization">
  <Expandable title="Organization fields">
    <ResponseField name="id" type="string">
      Unique identifier for the organization.
    </ResponseField>

    <ResponseField name="name" type="string">
      Organization name.
    </ResponseField>

    <ResponseField name="domain" type="string">
      Primary web domain.
    </ResponseField>

    <ResponseField name="industry" type="string">
      Industry classification.
    </ResponseField>

    <ResponseField name="size" type="string">
      Organization size or headcount range.
    </ResponseField>

    <ResponseField name="members" type="Person[]">
      Array of person objects belonging to this organization. Only present when `include_members` is `true`. Each object contains the same fields as a `search_people` result.
    </ResponseField>
  </Expandable>
</ResponseField>

### Example prompt

```text theme={null}
Get Acme Corp's details and list all their people.
```

***

## list\_contacts

List all contacts in your workspace with support for pagination and sorting. Use this tool when you want to browse or export your full contact list rather than search for a specific person.

### Parameters

<ParamField query="limit" type="number">
  Number of contacts to return per page. Defaults to `50`. Maximum value is `200`.
</ParamField>

<ParamField query="offset" type="number">
  Number of contacts to skip before returning results. Use together with `limit` to paginate through large lists. Defaults to `0`.
</ParamField>

<ParamField query="sort" type="string">
  Field to sort results by. Accepted values:

  * `name` — alphabetical by full name
  * `created_at` — most recently added first
  * `updated_at` — most recently modified first
</ParamField>

### Returns

A paginated response object.

<ResponseField name="contacts" type="Person[]">
  Array of person objects for the current page. Each object contains the same fields returned by `search_people`.
</ResponseField>

<ResponseField name="total" type="number">
  Total number of contacts in your workspace, regardless of pagination. Use this with `limit` and `offset` to calculate how many pages exist.
</ResponseField>

### Example prompt

```text theme={null}
List my 20 most recently added contacts.
```

<Tip>
  To page through all contacts, start with `offset: 0` and increment by your `limit` value on each subsequent call until the number of returned contacts is less than `limit`, or until `offset` exceeds `total`.
</Tip>
