# tiktok-organic-mcp [Health: Active]

**Category:** 📊 Monitoring  
**Repository:** https://github.com/lanternrow/tiktok-organic-mcp  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/tiktok-organic-mcp

## Description
TikTok organic analytics — video performance, engagement metrics, and profile insights.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "tiktok-organic-mcp": {
    "command": "npx",
    "args": ["-y","tiktok-organic-mcp"]
  }
}
```

## Documentation & README

# tiktok-organic-mcp

[![npm version](https://img.shields.io/npm/v/tiktok-organic-mcp.svg)](https://www.npmjs.com/package/tiktok-organic-mcp)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

MCP server for **TikTok organic analytics** — video performance, engagement metrics, and profile insights via the TikTok Developer API.

Built for [Claude Code](https://claude.ai/claude-code) and any MCP-compatible AI tool. Gives your AI assistant direct access to your TikTok account data — videos, views, likes, comments, shares, and follower stats.

Part of **[The SEO Engine](https://lanternrow.com/seo-engine/)** toolkit by [Rex Jones](https://rexjones.me) — AI-powered SEO and social media tooling for agencies and businesses.

## Why this exists

- **No open-source TikTok organic MCP existed.** Ads MCPs exist. Organic analytics? Nobody built one.
- **Paid alternatives cost money.** The commercial options require monthly subscriptions. This is free and open source.
- **Your AI should see your TikTok data.** Ask "how are my TikTok videos performing?" and get a real answer.

## Quick start

### Option 1: npx (no install)

**Single account:**

```json
{
  "mcpServers": {
    "tiktok-organic": {
      "command": "npx",
      "args": ["-y", "tiktok-organic-mcp"],
      "env": {
        "TIKTOK_ACCESS_TOKEN": "your_access_token"
      }
    }
  }
}
```

**Multiple accounts:**

```json
{
  "mcpServers": {
    "tiktok-organic": {
      "command": "npx",
      "args": ["-y", "tiktok-organic-mcp"],
      "env": {
        "TIKTOK_ACCOUNTS": "[{\"name\":\"mybrand\",\"access_token\":\"act.xxx\",\"client_key\":\"abc123\",\"refresh_token\":\"rft.xxx\"},{\"name\":\"otherbrand\",\"access_token\":\"act.yyy\",\"client_key\":\"def456\",\"refresh_token\":\"rft.yyy\"}]"
      }
    }
  }
}
```

### Option 2: Clone and build

```bash
git clone https://github.com/lanternrow/tiktok-organic-mcp.git
cd tiktok-organic-mcp
npm install
npm run build
```

Then add to your Claude Code MCP settings:

```json
{
  "mcpServers": {
    "tiktok-organic": {
      "command": "node",
      "args": ["/path/to/tiktok-organic-mcp/dist/index.js"],
      "env": {
        "TIKTOK_ACCESS_TOKEN": "your_access_token"
      }
    }
  }
}
```

## Getting your TikTok Access Token

### Step 1: Create a TikTok Developer App

1. Go to the [TikTok Developer Portal](https://developers.tiktok.com/) and log in
2. Click **Manage apps** → **Connect an app**
3. Fill in your app details and submit for review

### Step 2: Add Login Kit and request scopes

1. In your app dashboard, add the **Login Kit** product
2. Request these scopes:
   - `user.info.basic` — profile name, avatar
   - `user.info.profile` — bio, verification status
   - `user.info.stats` — follower/following counts, total likes
   - `video.list` — access to video listing and metrics

### Step 3: Complete the OAuth flow

1. Direct users to TikTok's authorization URL:
   ```
   https://www.tiktok.com/v2/auth/authorize/
     ?client_key={your_client_key}
     &scope=user.info.basic,user.info.profile,user.info.stats,video.list
     &response_type=code
     &redirect_uri={your_redirect_uri}
   ```
2. Exchange the authorization code for tokens:
   ```
   POST https://open.tiktokapis.com/v2/oauth/token/
   Content-Type: application/x-www-form-urlencoded

   client_key={client_key}
   &client_secret={client_secret}
   &code={auth_code}
   &grant_type=authorization_code
   &redirect_uri={redirect_uri}
   ```
3. Save the `access_token` and `refresh_token` from the response

> **Tip:** Access tokens expire after 24 hours. Use the `refresh_token` tool or set `TIKTOK_REFRESH_TOKEN` to enable automatic renewal.

## Multi-account support

Monitor multiple TikTok accounts from a single MCP server. Set the `TIKTOK_ACCOUNTS` environment variable as a JSON array:

```json
[
  {
    "name": "mybrand",
    "access_token": "act.xxx",
    "client_key": "abc123",
    "refresh_token": "rft.xxx"
  },
  {
    "name": "otherbrand",
    "access_token": "act.yyy",
    "client_key": "def456",
    "refresh_token": "rft.yyy"
  }
]
```

Each account object requires:
- `name` — a unique label you pick (used in tool calls)
- `access_token` — the OAuth access token

Optional:
- `client_key` — needed for token refresh
- `refresh_token` — needed for token refresh

**Using accounts in tools:** Every tool accepts an optional `account` parameter. If omitted, the first account in the array is used as default.

```
get_user_info(account: "mybrand")
get_videos(account: "otherbrand", max_count: 10)
```

**Backward compatible:** If you only have one account, the legacy single-env-var format (`TIKTOK_ACCESS_TOKEN`) still works. It creates a default account named "default".

## Tools

### Account tools

| Tool | Description |
|------|-------------|
| `list_accounts` | List all configured TikTok accounts and the default |

### Read tools

| Tool | Description |
|------|-------------|
| `get_user_info` | Profile metadata: username, bio, follower/following counts, total likes, video count, verification status |
| `get_videos` | Paginated list of public videos with engagement metrics (views, likes, comments, shares) |
| `get_video_details` | Detailed metrics for specific video IDs (batch up to 20) |

### Utility tools

| Tool | Description |
|------|-------------|
| `refresh_token` | Exchange refresh token for a new access token (requires `client_key` and `refresh_token` in account config) |

All read and utility tools accept an optional `account` parameter to target a specific account.

## Architecture

```
src/
  index.ts          # MCP server entry point, tool registration
  accounts.ts       # Multi-account resolution and configuration
  client.ts         # TikTok API HTTP client (native fetch, no dependencies)
  types.ts          # TypeScript interfaces for API responses
  tools/
    user.ts         # get_user_info
    videos.ts       # get_videos, get_video_details
    utils.ts        # refresh_token
```

- **Zero external HTTP dependencies** — uses Node 18+ native `fetch`
- **Multi-account support** — monitor multiple TikTok accounts from one server
- **Backward compatible** — single-token env var still works
- **Cursor-based pagination** — video listing supports pagination via cursor
- **Zod validation** — all tool inputs validated with descriptive error messages
- **Batch video queries** — get details for up to 20 videos in one request

## Environment variables

### Multi-account (recommended)

| Variable | Required | Description |
|----------|----------|-------------|
| `TIKTOK_ACCOUNTS` | Yes | JSON array of account objects (see Multi-account support section) |

### Single account (legacy)

| Variable | Required | Description |
|----------|----------|-------------|
| `TIKTOK_ACCESS_TOKEN` | Yes | OAuth access token from Login Kit flow |
| `TIKTOK_CLIENT_KEY` | For refresh | App Client Key (needed for token refresh) |
| `TIKTOK_REFRESH_TOKEN` | For refresh | Refresh token (needed for token refresh) |

## Development

```bash
npm run dev    # Watch mode — recompiles on save
npm run build  # Production build
npm start      # Run the server
```

## Contributing

Issues and PRs welcome. If TikTok changes their API, please open an issue.

## License

MIT — see [LICENSE](https://github.com/lanternrow/tiktok-organic-mcp/blob/HEAD/LICENSE).

---

Built as part of **The SEO Engine** by [Rex Jones](https://rexjones.me).

