MCP Server

DataSocial

io.github.hashfunction-dev/datasocial-mcp
Data & Analytics Social Media Public & reachable MCP 2025-11-25

What this MCP does

Runs read-only SQL queries against TikTok creator, video, sound, and historical performance data.

describe_table
Describe a table
One table's columns with types and meanings, its sort key and coverage. Read it before writing SQL on a table.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['table'], 'properties': {'table': {'type': 'string', 'description': 'The table, e.g. "creators" or "tiktok.creators"'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['table', 'description'], 'properties': {'table': {'type': 'string'}, 'description': {'type': 'string', 'description': 'Size, grain, sort key, coverage and every column with its type and meaning'}}, 'additionalProperties': False}
examples
Examples and SQL tips
Worked examples (a question and SQL that runs here) and the SQL tips: growth maths, history-table patterns, big sound_history days, follows lookups. Pass a table to get only its examples.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'table': {'type': 'string', 'description': 'Only examples on this table, e.g. "sound_history"; omit for all'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['examples', 'sql_tips'], 'properties': {'examples': {'type': 'array', 'items': {'type': 'object', 'required': ['table', 'question', 'sql'], 'properties': {'sql': {'type': 'string'}, 'table': {'type': 'string'}, 'question': {'type': 'string'}}, 'additionalProperties': False}}, 'sql_tips': {'type': 'string'}}, 'additionalProperties': False}
list_tables
List tables
The tables in the DataSocial TikTok warehouse: name, row count, what one row is, and what it holds.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tables'], 'properties': {'tables': {'type': 'array', 'items': {'type': 'object', 'required': ['table', 'rows', 'one_row_is', 'about'], 'properties': {'rows': {'type': 'string'}, 'about': {'type': ['string', 'null']}, 'table': {'type': 'string'}, 'one_row_is': {'type': ['string', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
run_sql
Run SQL
Run one read-only ClickHouse SELECT on tiktok.* and get the rows back (at most 100 per request; 10 s per query). Name the columns you need and add a LIMIT.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sql'], 'properties': {'sql': {'type': 'string', 'maxLength': 100000, 'description': "One ClickHouse SELECT, e.g. SELECT username, followers FROM tiktok.creators WHERE country = 'US' ORDER BY followers DESC LIMIT 10"}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['columns', 'rows', 'capped', 'rows_read', 'elapsed_ms'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'array', 'items': {}}, 'description': 'One array per row, values in the order of columns'}, 'capped': {'type': 'boolean', 'description': 'true when the result was cut at the 100-row limit'}, 'columns': {'type': 'array', 'items': {'type': 'string'}}, 'rows_read': {'type': 'number'}, 'elapsed_ms': {'type': 'number'}}, 'additionalProperties': False}
Added
run_sql
Oct. 2, 2026, 2:40 a.m.
Added
examples
Oct. 2, 2026, 2:40 a.m.
Added
describe_table
Oct. 2, 2026, 2:40 a.m.
Added
list_tables
Oct. 2, 2026, 2:40 a.m.