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

# Search Content

> Search for content items using filters or semantic search

Search for content using standard filters or semantic search.

## Input Schema

```json theme={null}
{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID (optional, uses session default)"
    },
    "query": {
      "type": "string",
      "description": "Natural language query for semantic search"
    },
    "typeId": {
      "type": "string",
      "description": "Filter by content type ID"
    },
    "status": {
      "type": "string",
      "enum": ["draft", "modified", "published", "unpublished", "deleted"],
      "description": "Filter by status (defaults to published content only)"
    },
    "tags": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Filter by tags (names or IDs)"
    },
    "page": {
      "type": "number",
      "default": 1
    },
    "limit": {
      "type": "number",
      "default": 20,
      "maximum": 100
    }
  }
}
```

## Parameters

| Parameter   | Type      | Default         | Description                            |
| ----------- | --------- | --------------- | -------------------------------------- |
| `projectId` | string    | session default | Project to search in                   |
| `query`     | string    | -               | Natural language semantic search query |
| `typeId`    | string    | -               | Filter by content type                 |
| `status`    | string    | published       | Filter by status                       |
| `tags`      | string\[] | -               | Filter by tags                         |
| `page`      | number    | 1               | Page number                            |
| `limit`     | number    | 20              | Items per page (max 100)               |

## Response

| Field                 | Type      | Description                          |
| --------------------- | --------- | ------------------------------------ |
| `items`               | array     | Array of content objects             |
| `items[].id`          | string    | Unique content identifier            |
| `items[].name`        | string    | Display name/title                   |
| `items[].description` | string    | Content description                  |
| `items[].status`      | string    | Publication status                   |
| `items[].typeId`      | string    | Content type identifier              |
| `items[].typeVersion` | number    | Content type schema version          |
| `items[].tags`        | string\[] | Categorization tags                  |
| `items[].excerpt`     | string    | Relevant text excerpt (with `query`) |
| `items[].similarity`  | number    | Similarity score 0-1 (with `query`)  |
| `items[].metadata`    | object    | Additional metadata                  |
| `total`               | number    | Total matching items                 |

## Example

### Request

```json theme={null}
{
  "query": "design system case study",
  "typeId": "ct_story_001"
}
```

### Response

```json theme={null}
{
  "items": [
    {
      "id": "cont_story_acme_001",
      "name": "How Acme Corp Unified Multiple Products",
      "description": "A comprehensive case study of digital transformation.",
      "status": "published",
      "typeId": "ct_story_001",
      "typeVersion": 1,
      "tags": ["case-study", "design-system"],
      "excerpt": "...inconsistent user experiences across platforms...",
      "similarity": 0.89,
      "metadata": {
        "author": "content-team@acme.com",
        "publishedAt": "2024-06-15T10:00:00Z",
        "locale": "en-US"
      }
    }
  ],
  "total": 1
}
```

## Usage

### Semantic Search

Search using natural language:

```javascript theme={null}
const result = await mcp.call("search_content", {
  query: "tutorials about getting started"
});
```

### Filter by Content Type

Find all content of a specific type:

```javascript theme={null}
const result = await mcp.call("search_content", {
  typeId: "ct_story_001"
});
```

### Filter by Tags

Find content with specific tags:

```javascript theme={null}
const result = await mcp.call("search_content", {
  tags: ["featured", "tutorial"]
});
```

### Combined Search

Combine semantic search with filters:

```javascript theme={null}
const result = await mcp.call("search_content", {
  query: "product launch announcement",
  typeId: "ct_story_001",
  status: "published",
  tags: ["marketing"]
});
```

### Find Draft Content

Search for unpublished content:

```javascript theme={null}
const result = await mcp.call("search_content", {
  status: "draft"
});
```
