Skip to main content
Glama
HasData

TikTok MCP Server

TikTok MCP Server

Un servidor alojado de Model Context Protocol (MCP) que ofrece a Claude, Cursor, Windsurf y cualquier otro cliente MCP cuatro herramientas de solo lectura para TikTok. Puedes consultar un perfil público, recorrer los vídeos de una cuenta, leer los comentarios de un vídeo y buscar en TikTok vídeos o creadores; todo en JSON estructurado sin necesidad de cuenta de desarrollador de TikTok ni OAuth.

Lee los datos públicos que un visitante sin sesión puede ver. No inicia sesión, no publica y no actúa como una cuenta.

https://mcp.hasdata.com/api/mcp?apis=tiktok

Glama score tool contract MCP Tools License

Contenido

Related MCP server: tiktok-mcp

Qué necesitas

Un cliente MCP y una clave de API de HasData desde el panel de control, que se puede crear gratis. Se trata de un servidor remoto, así que la vía más sencilla es una URL y una cabecera x-api-key, sin contenedor que ejecutar y sin cuenta de desarrollador de TikTok en ningún paso. Un cliente que solo hable stdio llega a él a través de un lanzador ligero, publicado como @hasdata/tiktok-mcp en npm y hasdata-tiktok-mcp en PyPI, como se muestra abajo.

Inicio rápido

La URL del servidor es la misma para todos los clientes. Lo hemos probado a mano en Claude Code y Claude Desktop. Los demás bloques siguen el formato documentado por cada cliente para un servidor remoto.

Campo

Valor

URL

https://mcp.hasdata.com/api/mcp?apis=tiktok

Transporte

HTTP, transmisible

Cabecera de autenticación

x-api-key: TU_CLAVE_DE_API

Los clientes con soporte para OAuth pueden añadir la misma URL como conector e iniciar sesión sin poner una clave en un archivo de configuración.

claude mcp add --transport http tiktok "https://mcp.hasdata.com/api/mcp?apis=tiktok" \
  --header "x-api-key: HASDATA_API_KEY"

Ajustes, luego Conectores, luego Añadir conector personalizado, pega https://mcp.hasdata.com/api/mcp?apis=tiktok e inicia sesión.

Para la opción del archivo de configuración, Claude Desktop solo carga servidores locales (stdio), por lo que accede a un servidor remoto mediante un lanzador stdio. El paquete @hasdata/tiktok-mcp es ese lanzador y lee la clave del entorno. Añade esto a claude_desktop_config.json:

{
  "mcpServers": {
    "tiktok": {
      "command": "npx",
      "args": ["-y", "@hasdata/tiktok-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

¿Usas Python en lugar de Node? Cambia el lanzador por el paquete PyPI, que uvx ejecuta sin instalación manual:

{
  "mcpServers": {
    "tiktok": {
      "command": "uvx",
      "args": ["hasdata-tiktok-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

~/.cursor/mcp.json para cada proyecto, o .cursor/mcp.json para uno solo:

{
  "mcpServers": {
    "tiktok": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=tiktok",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

~/.codeium/windsurf/mcp_config.json. Windsurf llama al campo serverUrl, no url:

{
  "mcpServers": {
    "tiktok": {
      "serverUrl": "https://mcp.hasdata.com/api/mcp?apis=tiktok",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
{
  "mcpServers": {
    "tiktok": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=tiktok",
      "type": "streamableHttp",
      "headers": { "x-api-key": "HASDATA_API_KEY" },
      "disabled": false
    }
  }
}

.vscode/mcp.json en el espacio de trabajo:

{
  "servers": {
    "tiktok": {
      "type": "http",
      "url": "https://mcp.hasdata.com/api/mcp?apis=tiktok",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

~/.codex/config.toml:

[mcp_servers.tiktok]
url = "https://mcp.hasdata.com/api/mcp?apis=tiktok"

[mcp_servers.tiktok.headers]
"x-api-key" = "HASDATA_API_KEY"

~/.gemini/settings.json:

{
  "mcpServers": {
    "tiktok": {
      "httpUrl": "https://mcp.hasdata.com/api/mcp?apis=tiktok",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

Ejemplos de indicaciones

Prompts, no código. Pega uno en el cliente y el agente elegirá la herramienta adecuada por su cuenta. Cada uno indica las llamadas que implica, porque en MCP el modelo decide cuántas llamadas hacer y cada llamada correcta cuesta 10 créditos.

Toma el usuario @mrbeast. Obtén el perfil y luego recorre las dos primeras páginas de vídeos para darme la mediana de reproducciones entre esos vídeos.

Tres llamadas, 30 créditos. El perfil es una llamada, y cada página de vídeos es otra.

Busca en TikTok creadores relacionados con "cold brew coffee" y clasifica los diez primeros por número de seguidores, con su biografía.

Una llamada, 10 créditos. Una búsqueda de usuarios ya trae el recuento de seguidores y la biografía, así que no se necesita ninguna llamada posterior por perfil.

Aquí tienes la URL de un vídeo. Lee sus comentarios principales y dime la sensación general y las tres respuestas con más "me gusta".

Una llamada, 10 créditos. El id numérico de la URL es todo lo que necesita la herramienta de comentarios.

Toma ese mismo vídeo y luego expande las respuestas debajo del ARRIBA de más "me gusta".

Dos llamadas, 20 créditos. Primero los coments de primer nivel y, después, una segunda llamada con el id de ese comentario para sus respuestas.

Busca vídeos de "asmr" y luego obtén el perfil del autor de los tres con más reproducciones.

Cuatro llamadas, 40 créditos. Una búsqueda y luego un perfil por cada resultado. Cada autor de un resultado de búsqueda incluye un enlace directo a su endpoint de interés, así que el agente nunca tiene que adivinar un handle.

Paginación cuesta una llamada en cada ocasión. Una auditoría de creador que lee un perfil y luego recorre cinco páginas de vídeos es seis llamadas y 60 créditos. La prueba llega más jóvenes con preguntas concretas que con rastreos abiertos.

Herramientas

Cuatro herramientas, todas de solo lectura. Las muestras a continuación están recortadas de llamadas reales y los números varían según cómo se buen provea en TikTok. Léelo como aproximaciones. Cada nombre de herramienta enlaza con la referencia de su endpoint, que contiene la lista completa de campos.

Las muestras son el payload, no la respuesta completa. Un resultado tools/call devuelve un bloque de texto, y ese texto es un JSON que contiene url, status, text y json, con los datos recopilados bajo json. Desde una respuesta JSON-RPC cruda el camino es result.content[0].text, parseado para luego acceder a .json. Un cliente de chat te lo desenreda, mientras que el código que habla directamente con el endpoint no.

Los identificadores, los ids de vídeo y los ids de comentario encadenan entre sí. Un perfil tiene enlaces a sus publicaciones, cada publicación es un videoId para la herramienta de comentarios, y cada autor en los comentarios y en los resultados de búsqueda lleva un hasdataLink a su perfil y un hasdataPostsLink a sus vídeos. Un agente puede ir de una palabra clave a un creador, a un vídeo y a sus comentarios sin construir una URL.

Get TikTok profile

Obtén información de un perfil público a partir del nombre de usuario.

hasdata_tiktok_profile_getTikTokProfile

Parámetro

Tipo

Requerido

Descripción

handle

string

El nombre de usuario, con o sin el carácter inicial.

Devuelve username, nickname, biography, bioLink, verified, language, createTime, las URLs de los avatares y los contadores de followers, follows, likes, videos y friends como números enteros.

Un nombre de usuario que no existe todavía devuelve requestMetadata.status con valor ok; el objeto profile, simplemente. Comprueba que existe antes de acceder a username o cualquier otro campo, porque una agente que haga profile.username sobre un valor inexistente provocará un error.

{
  "username": "mrbeast",
  "nickname": "MrBeast",
  "verified": true,
  "biography": "Checkout My New Book!👇",
  "bioLink": "http://themostdangerousgames.com",
  "createTime": "2018-10-20T19:26:16.000Z",
  "followers": 138387571,
  "follows": 354,
  "likes": 1427086888,
  "videos": 466,
  "friends": 285
}

Get TikTok posts

hasdata_tiktok_posts_getTikTokPosts

Una página de los vídeos de una cuenta, del más reciente al más antiguo, mediante el handle.

Parámetro

Tipo

Requerido

Notas

handle

string

El nombre de usuario, con o sin el carácter inicial.

nextPageToken

string

El pagination.nextPageToken de la respuesta anterior. Omíleo para la primera página.

Una llamada devuelve alrededor de treinta vídeos más pagination, que incluye hasMore y el nextPageToken que debes volver a usar para recorrer la historia de la cuenta página a página. Cada vídeo incluye id, description, url, duration, las URLs de la miniatura y del vídeo reproducible, music, y los contadores likes, comments, shares, plays, collects y reposts como enteros.

hashtags y mentions solo aparecen si el vídeo los usa. En una página demuestra de 27 vídeos, 4 tenían un array hashtags y 10 contenían mentions. Comprueba el campo antes de acceder, en lugar de asumir que ambos estarán en todas los vídeos.

{
  "id": "7677375185028271391",
  "description": "would you take the car or nah?",
  "url": "https://www.tiktok.com/@mrbeast/video/7677375185028271391",
  "createTime": "2026-08-23T23:36:59.000Z",
  "duration": 41,
  "likes": 129500,
  "comments": 6670,
  "shares": 2033,
  "plays": 1100000,
  "collects": 4986,
  "music": { "title": "original sound", "authorName": "MrBeast", "original": true }
}

Get TikTok comments

Los comentarios de un vídeo público, o las respuestas de un comentario.

hasdata_tiktok_comments_getTikTokComments

Parámetro

Tipo

Requerido

Notas

videoId

string

El id numérico, la parte posterior a /video/ en una URL de TikTok. Mantenlo como un string, es un número de 64 bits que perdería sus últimos dígitos si pasara a un Number de JavaScript.

commentId

string

Pásalo para obtener las respuestas a ese comentario en lugar del nivel de vice. Un texto, por lo mismo que videoId.

nextPageToken

string

La misma nextPageToken de la respuesta anterior. Año.

Cada comentario lleva text, likes, createTime, replyCount y un autor. Cada objeto author tiene un hasdataLink a su perfil y un hasdataPostsLink a sus vídeos. pagination.total indica el número total de comentarios de un vídeo, para que sepas la profundidad antes de paginar. Un comentario con replyCount distinto de cero tiene respuestas, a las que llegas llamando de nuevo con su id como commentId.

{
  "id": "7677377150003053325",
  "text": "How could someone turn down a car",
  "createTime": "2026-08-23T23:45:06.000Z",
  "likes": 3802,
  "replyCount": 22,
  "author": {
    "username": "hohce.verggr",
    "nickname": "Sasori",
    "hasdataLink": "https://api.hasdata.com/scrape/tiktok/profile?handle=hohce.verggr",
    "hasdataPostsLink": "https://api.hasdata.com/scrape/tiktok/posts?handle=hohce.verggr"
  }
}

Search TikTok

Una búsqueda por palabras clave en vídeos o usuarios.

hasdata_tiktok_search_getTikTokSearch

Parámetro

Tipo

Requerido

Notas

keyword

string

La frase de la búsqueda

type

string

video por defecto, user para buscar creadores.

nextPageToken

string

el token de la respuesta anterior. A veces.

Con type: video obtienes los mismos datos de vídeo que en la herramienta de publicaciones, incluyendo el autor de cada uno. Con type: user obtienes perfiles de creadores avec username, nickname, signature (la bio), avatarUrl, followers, y los mismos hasdataLink y hasdataPostsLink para seguir hacia el perfil o sus vídeos. En las cuentatas está presente una marca verified.

{
  "username": "la.mooncoldbrew",
  "nickname": "lamoon cold brew coffee",
  "signature": "อยากได้สูตรชงเมนูไหน Comment ไว้เลยน้า",
  "followers": 48000,
  "hasdataLink": "https://api.hasdata.com/scrape/tiktok/profile?handle=la.mooncoldbrew",
  "hasdataPostsLink": "https://api.hasdata.com/scrape/tiktok/posts?handle=la.mooncoldbrew"
}

Errores y rutas de fallo

Tu cliente casi nunca ve un código de error HTTP en una llamada a una herramienta. La capa MCP responde con 200 y coloca el fallo dentro del resultado, con el isError establecido en true y el motivo como texto. El agente lee un mensaje donde cabría esperar una línea de estado.

Una clave incorrecta se presenta como la salida de la herramienta, no como una conexión fallida. tools/list acepta cualquier clave no vacía y devuelve las cuatro herramientas, así que el cliente completa el handshake y se marca en verde. La primera llamada a una herramienta vuelve entonces con isError: true y el texto HasData API error: 401 Unauthorized. Fíjate en esa cadena, porque nada en el flujo anterior informa del problema.

Una clave ausente es el único error HTTP real. La autorización se ejecuta antes que cualquier herramienta y la propia conexión falla con 401. Los encabezados CORS están presentes, de modo que un cliente de navegador lee el estado y no un fallo de red opaco.

Un argumento que rompe el esquema de una herramienta se rechaza antes de que se haga scraping. El servidor responde con isError: true y el texto MCP error -32602: Input validation error, indicando el campo que infringe la validación. No se obtiene nada y no se cobra nada.

Una llamada que tiene éxito y encuentra algo es el caso que confunde a la gente. Un usuario que no existe devuelve un resultado normal con requestMetadata.status en ok y la clave de datos simplemente ausente. Nada en el cuerpo dice que el resultado estaba vacío. Comprueba el campo que necesitas, no si ha devuelto un error.

Un identificador que la plataforma rechaza devuelve un 400 con requestMetadata.status establecido en error.

Los resultados con datos incluyen también un requestMetadata.id que conviene citar al hablar con el soporte.

Precios, plan gratuito y límites

Cada herramienta de TikTok cuesta 10 créditos por llamada correcta. El tamaño de la respuesta no cambia el precio. Una página completa de vídeos cuesta lo mismo que un perfil con un único campo.

La prueba gratuita son 1,000 créditos durante 30 días sin tarjeta, es decir, 100 llamadas a TikTok. Después de eso, una cuenta activa sigue recibiendo 100 créditos diarios cuando su saldo baja de 100, así que un agente de bajo volumen se ejecuta en el plan gratuito de forma indefinida.

Los planes de pago empiezan en $49 al mes por 200,000 créditos, lo que equivalería a 20,000 llamadas. El precio unitario baja con el volumen, desde $2.45 por cada 1,000 llamadas en el plan inicial hasta $0.99 en Business, $0.83 en Growth y $0.75 en los planes de alto volumen.

hace dos planes de alto volumen

La concurrencia también forma determinada por tu plan. La prueba gratuita permite 1 petición a la vez, Startup 15, Business 30, Growth 50 y los planes de alto volumen de 200 a 1,500. En cualquier proceso no supervisado, gestiona el desbordamiento de forma defensiva, porque un agente que se lanza en paralelo no alcanzará el techo antes que tú.

Una petición que no devuelve un 200 no se factura. Una llamada con éxito que no encuentra nada sigue siendo una llamada.

Selección de herramientas

El parámetro query api determina qué herramientas ve tu agente. Cuando menos ha dies herramientas, menos contexto se gasta en sus definiciones y menos probabilidades hay de que el modelo elija una.

?apis=tiktok                     the four tools in this repo
?apis=tiktok,instagram           a social bundle
?apis=tiktok,google_serp         add Google search

El parámetro dice que tipos de nombres como tiktok y subjects individual like tiktok_search. Las wrong names get ignored. Si todos los nombre fallan, la petición detecta un 400 y el cuerpo enumera both what no se ha reconocido as all valid values. Si retiras el parámetro, el mismo endpoint expone las 57 herramientas de HasData.

Comparativa

El propio programa de desarrollo de TikTok no cubre la lectura general de contenido público. La Research API se limita a una autorización y está abierta a investigadores académicos y sin ánimo de lucro aprobados en un grupo limitado de regiones. La Display API solo devuelve el contenido de la cuenta que inicia sesión mediante OAuth. Ninguna de las dos vale para un agente que necesite leer un perfil público indistincto, itsvídeos o los comentarios de un vídeo.

APIs oficiales de TikTok

Este servidor

Acceso

Research API por solicitud, o Display API para tu propia cuenta

Una clave y una URL

Alcance

Investigadores aprobados, o tu propia cuenta autenticada

Cualquier perfil, vídeo o búsqueda pública

Autenticación

Revisión de la solicitud u OAuth

Cabecera x-api-key

Comentarios de vídeos ajenos

Restringido

Sí, con hilos de respuestas

Configuración

Cuenta de desarrollador y aprobación

Ninguna

Escrituras y datos privados

Publicar y tus propios datos por autenticación con OAuth

Solo lectura, solo datos públicos

The majority of remaining TikTok MCP servers wrap a singly unofficial endpoint. Este gut includes the four reads an agent actually strings to string: profile to posts and to comments, plus search; in this way an entire research against a single server.

What this server does not do: No post publ, no messages direct, no content for followers or private and no analytics of accounts that aren't yours. Reads the same thing that a non-authenticated visitor can see.

FAQ

¿Hay un servidor MCP oficial de TikTok?

TikTok no publica . The only options are from third parties. This server is maintained by HasData and reads public pages, so does not require any TikTok developer account.

¿Qué es un TikTok MCP server?

A remote server that exposes TikTok data as AI client calls. El cliente envía una llamada de herramienta through the Model Context Protocol, the remote server retrieves the specified data and returns structured JSON, and the model works with results without ever seeing a page of HTML. This one exposes 4 paid endpoints and runs remotely. El cliente connects to a URL and no local process starts.

¿Necesito una API key de TikTok o una developer account?

No. The only credential is your HasData key. No hay que presentarse solicitud de aplicación ni OEM consent screen, because the tools read public pages TikTok, no developer API of TikTok.

¿Do I need to host them in my own or run anything?

No. This is a remote MCP server over streamable HTTP. No need to install anything, no container to keep "caliente", no process to restart.

¿Is data live and cached or not?

Live. Every call fetches at the time of the request and has its own requestMetadata ID. Play and like counters follow them page, and therefore move when the page moves.

¿Puedo leer una cuenta private?

No. Results fallback the case acontece a non-authenticated visitor. Videos from a private account are not public, so they are not included in any response.

¿Can I read replies to comments and not just the top-level comments?

Yes. Call the comments tool with the id of a message lover as commentId and it returns the replies to that message. The number of replyCount of a comment tells you if there be any.

¿Se puede usar junto con other HasData APIs?

Yes. The apis param takes a list; ?apis=tiktok,instagram gives your them the four TikTok guides plus Instagram. If you remove the `error parameter passes all available get all.

Compliance and personal data

HasData only accesses unhidden data that is public. The terms of a platform can restrict automated access, and you are responsible for its compliance. When data includes personal data, ensure have a lawful basis under GDPR, CCPA or other equivalent rules in your jurisdiction.

Página product and request generator

TikTok Scraper API

Documentation of the server

MCP server docs

All other tools on a single server

HasData/hasdata-mcp

Customer guides

MCP clients and integrations

Inventories all we are captivate

TikTok Scraper API and 54 more

Plans and credit costs.

Plans and credit costs

Keys and usage

HasData dashboard dashboard

Development

Este repositorio is configuration and documentation for a remote server, no build step, no containerization.

Test test/ asserts contract of the tool the part safe of all commits. You check that ?apis=tiktok returns exactly four tools; every tool still declares its mandatory parameter; no name changed; and that the actual key is accepted. That last check calls to real tool and costs 10 credits, the price for a "canary" that can fail for correct reason.

# macOS and Linux
HASDATA_API_KEY=your_key_here npm test

# Windows PowerShell
$env:HASDATA_API_KEY="your_key_here"; npm test

The same harness also runs in CI on every push and once a week as planned, because the list of tool can change without anyone messing repository. fail means that the list of tool moved, the key stopped working, or the endpoint was unreachable, and the assertion message reveals which.

Contributing

Bellas & Spell fix to tools and sample outputs are the most precious contribution, because that is what easiest to get outdated. Include the call you emitted and received response. Pull requests from fork run the suite without API keys, and live assertions are ignored instead of turning red in pulse.

License

MIT. See LICENSE.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Related MCP Servers

  • F
    license
    B
    quality
    C
    maintenance
    MCP server for TikTok that enables searching videos, users, hashtags, and fetching trending content, user profiles, and video details via official API or public scraping.
    8
  • F
    license
    Not graded
    quality
    C
    maintenance
    A remote MCP server that provides tools to query live Meta (Facebook+Instagram) and TikTok organic social data, such as follower counts, insights, recent posts, and aggregated overviews.
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides unified access to social media data across nine networks (Instagram, TikTok, YouTube, etc.) through a set of MCP tools for profiles, posts, search, and comments, backed by the SocialBridge API.

View all related MCP servers

Related MCP Connectors

  • All HasData scraping tools in one MCP server: Google, TikTok, Instagram, maps, e-commerce and more.

  • One MCP for 160+ live web-data APIs — clean JSON from sites that block scrapers.

  • Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HasData/tiktok-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server