> ## 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"
    },
    "contentTypeId": {
      "type": "string",
      "description": "Filter by content type ID"
    },
    "status": {
      "type": "string",
      "enum": ["draft", "modified", "published", "unpublished", "deleted"],
      "description": "Filter by status (defaults to all non-deleted content)"
    },
    "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 |
| `contentTypeId` | string | - | Filter by content type |
| `status` | string | all except deleted | 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 | Number of items in this response |

## Example

### Request

```json theme={null}
{
  "query": "design system case study",
  "contentTypeId": "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", {
  contentTypeId: "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",
  contentTypeId: "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"
});
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.