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

# Introduction

# MCP Server

The 60db MCP (Model Context Protocol) Server enables AI assistants like Claude to directly interact with the full 60db platform — voice AI, persistent memory, and access-control checks.

**Source code:** [github.com/60db-ai/mcp](https://github.com/60db-ai/mcp) · **npm:** [`60db-mcp-server`](https://www.npmjs.com/package/60db-mcp-server) · **License:** MIT

## What is the MCP Server?

The MCP Server provides a standardized interface for AI assistants to:

* **Generate speech** from text using any voice
* **Transcribe audio** files with speaker diarization
* **Create custom voices** from audio samples
* **Manage workspaces** and team collaboration
* **Store and recall memories** — persistent memory and RAG across sessions
* **Upload documents** — PDF, DOCX, XLSX, PPTX, EML, scanned images with built-in OCR
* **Assemble LLM-ready context** — purpose-built for retrieval-augmented generation
* **Check permissions** — query Cerbos policy before attempting gated actions
* **Track usage** and analytics
* **View monthly spend** across every billable operation

## Quick Start

### 1. Install the Server

```bash theme={null}
# From npm
npm install -g 60db-mcp-server

# Or clone from source
git clone https://github.com/60db-ai/mcp.git
cd mcp
npm install
npm run build
```

### 2. Configure Claude Desktop

Add to your Claude Desktop config:

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`

```json theme={null}
{
  "mcpServers": {
    "60db": {
      "command": "node",
      "args": ["/path/to/mcp-server/dist/index.js"],
      "env": {
        "SIXTYDB_API_KEY": "sk_your_api_key_here",
        "SIXTYDB_API_BASE_URL": "https://api.60db.ai"
      }
    }
  }
}
```

### 3. Use with Claude

Restart Claude Desktop and start using 60db voice AI:

```
You: Can you convert "Hello, world!" to speech using a female English voice?

Claude: I'll use the 60db TTS tool to generate speech for you.
```

## Available Tools

| Category         | Tools                                                                                                                                                |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Voices**       | List voices, get voice details, create custom voices                                                                                                 |
| **TTS**          | Synthesize speech, view generation history                                                                                                           |
| **STT**          | Transcribe audio, view transcription history                                                                                                         |
| **Workspaces**   | Manage team workspaces and members                                                                                                                   |
| **Memory & RAG** | Ingest memories, upload documents (91+ formats with OCR), hybrid semantic search, context assembly, manage collections, track spend (10 tools total) |
| **Authz**        | Fetch effective permissions map, probe single `(resource, action)` checks — useful before attempting gated actions                                   |
| **Analytics**    | Track usage statistics                                                                                                                               |
| **Billing**      | View plans, subscriptions, and invoices                                                                                                              |

## Features

### Text-to-Speech

Generate natural speech in 40+ languages:

```typescript theme={null}
// Synthesize speech
{
  "text": "Hello, world!",
  "voice_id": "voice_abc123",
  "speed": 1.0,
  "output_format": "mp3"
}
```

### Speech-to-Text

Transcribe audio with speaker identification:

```typescript theme={null}
// Transcribe audio
{
  "audio_url": "https://example.com/meeting.mp3",
  "language": "en-US",
  "diarization": true,
  "timestamps": true
}
```

### Voice Cloning

Create custom voices from audio samples:

```typescript theme={null}
// Create custom voice
{
  "name": "Brand Voice",
  "sample_url": "https://example.com/sample.mp3",
  "language": "en-US"
}
```

### Memory & RAG

Give your AI assistant a persistent, searchable long-term memory:

```typescript theme={null}
// Store a user preference
{
  "tool": "sixtydb_memory_ingest",
  "arguments": {
    "text": "User prefers dark mode and metric units",
    "type": "user"
  }
}

// Upload a document (PDF, DOCX, scanned image, etc.)
{
  "tool": "sixtydb_memory_upload_document",
  "arguments": {
    "file_path": "/Users/me/Documents/handbook.pdf",
    "collection": "company_handbook",
    "type": "knowledge"
  }
}

// Search with hybrid semantic + keyword recall
{
  "tool": "sixtydb_memory_search",
  "arguments": {
    "query": "What is the refund policy?",
    "alpha": 0.8,
    "mode": "fast"
  }
}

// Assemble LLM-ready context for RAG
{
  "tool": "sixtydb_memory_context",
  "arguments": {
    "query": "Tell me about my customer's recent orders"
  }
}
```

All memory operations are [pay-as-you-go](/api-reference/memory/pricing) — the tool response surfaces `charged`, `balance`, and `tx` details in the billing footer on every call.

### Authorization checks

Before attempting a gated action, query the Cerbos permission map so the agent can fail fast on disallowed operations:

```typescript theme={null}
// Fetch the full permission map (once per session)
{
  "tool": "sixtydb_get_permissions",
  "arguments": {}
}

// Probe a specific action
{
  "tool": "sixtydb_check_permission",
  "arguments": {
    "resource": "memory",
    "action": "create"
  }
}
```

This lets the agent hide or disable features that the user's role can't use, instead of watching for `403 POLICY_DENY` responses mid-flow.

## Architecture

```
┌─────────────────────────────────────────────────────────────┐
│                     Claude (AI Assistant)                    │
└─────────────────────────┬───────────────────────────────────┘
                          │
                          │ MCP Protocol (stdio)
                          │
┌─────────────────────────▼───────────────────────────────────┐
│                    60db MCP Server                           │
├─────────────────────────────────────────────────────────────┤
│  Voice:   sixtydb_tts_synthesize, sixtydb_stt_transcribe   │
│           sixtydb_list_voices, sixtydb_create_voice        │
│  Memory:  sixtydb_memory_ingest, sixtydb_memory_search     │
│           sixtydb_memory_upload_document                    │
│           sixtydb_memory_context, sixtydb_memory_get_usage │
│  Authz:   sixtydb_get_permissions, sixtydb_check_permission│
│  Admin:   sixtydb_list_workspaces, sixtydb_get_usage_stats │
│           sixtydb_list_invoices                             │
│  ... 30+ tools total                                          │
└─────────────────────────┬───────────────────────────────────┘
                          │
                          │ HTTPS (JWT or API key)
                          │
┌─────────────────────────▼───────────────────────────────────┐
│                    60db API                                  │
│                  (api.60db.ai)                               │
│                                                               │
│   Every request passes through:                               │
│     Cerbos policy check  →  Memory billing  →  Controller    │
└─────────────────────────────────────────────────────────────┘
```

## Next Steps

* [Installation](/mcp-server/installation) - Install and configure the server
* [Configuration](/mcp-server/configuration) - Set up authentication
* [Quick Start](/mcp-server/quickstart) - Run your first request
* [Claude Desktop](/mcp-server/claude-desktop) - Integration guide

## Requirements

* **Node.js**: 18 or higher
* **API Key**: 60db API key from dashboard
* **MCP Client**: Claude Desktop or custom MCP client

## Support

* **Documentation**: [https://docs.60db.ai](https://docs.60db.ai)
* **GitHub**: [https://github.com/60db-ai/mcp](https://github.com/60db-ai/mcp)
* **Issues**: [https://github.com/60db-ai/mcp/issues](https://github.com/60db-ai/mcp/issues)
