syncly-dataset-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SYNCLY_DB_PATH | Yes | Absolute path to the DuckDB database file | |
| SYNCLY_CONFIG_PATH | Yes | Absolute path to the datasets.yaml configuration file |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_data_queriesA | List all available data queries (datasets) with row counts and date ranges. Always call this first to discover query_id values for subsequent tools. |
| describe_data_queryA | Describe a data query: schema, row count, date range, and sample rows. Args: query_id: Dataset ID from list_data_queries |
| get_metric_summaryA | Compute metric summaries for a dataset. Scalar metrics: post_count, engagement_sum, avg_engagement, like_sum, comment_sum, share_sum Distribution metrics: sentiment_distribution, platform_distribution, brand_distribution, category_distribution When metrics is omitted, returns the default set: post_count, engagement_sum, avg_engagement, sentiment_distribution, platform_distribution. Args: query_id: Dataset ID from list_data_queries metrics: List of metric names to compute (default: all 5 standard metrics) filters: Optional filters dict. Keys: platform, brand, sentiment, category, date_from (ISO date), date_to (ISO date) |
| search_postsA | Search posts by keyword and/or filters. Returns posts with text snippets. Searches across text column and all searchable columns (ILIKE, case-insensitive). Either text_query or filters (or both) must be provided. Args: query_id: Dataset ID from list_data_queries text_query: Keyword or phrase to search (e.g. "배송 지연") filters: Dict with optional keys: platform, brand, sentiment, category, date_from (ISO date string), date_to (ISO date string) limit: Max results, up to 100 |
| get_posts_by_idsA | Retrieve full post details for a list of post IDs (max 50). Returns found posts and a list of any IDs not found. Args: query_id: Dataset ID from list_data_queries post_ids: List of post ID strings to retrieve (max 50) |
| get_ranked_postsA | Return posts ranked by a metric or recency (max 100, descending). Args: query_id: Dataset ID from list_data_queries rank_by: Metric to rank by. One of: engagement_count, like_count, comment_count, share_count, created_at filters: Dict with optional keys: platform, brand, sentiment, category, date_from, date_to limit: Max results, up to 100 |
| search_vocA | Search Voice of Customer posts by keyword and/or sentiment. Searches both main text and summary columns (if available). When only sentiment is provided (no query), returns top posts by engagement. Args: query_id: Dataset ID from list_data_queries query: Keyword to search in post text and summaries sentiment: Filter sentiment: "positive", "negative", or "neutral" filters: Additional filters: platform, brand, category, date_from, date_to limit: Max results, up to 100 |
| safe_queryA | Execute a SELECT-only SQL query against a dataset table. Safety: DROP/DELETE/UPDATE/INSERT/CREATE/ALTER/INSTALL/LOAD and other dangerous keywords are blocked. LIMIT is auto-applied if missing (max 500 rows). Args: query_id: Dataset ID (for validation context) sql: A SELECT SQL query, e.g. "SELECT id, sentiment FROM social_posts LIMIT 10" limit: Max rows to return (capped at 500) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool serves a distinct purpose: listing queries, describing datasets, computing metrics, retrieving posts by ID, ranking posts, executing SQL, searching by keyword, and searching for Voice of Customer. There is no overlap in functionality.
Most tools follow a consistent verb_noun pattern (e.g., list_data_queries, get_posts_by_ids, search_posts). However, 'safe_query' deviates from the pattern (adjective_noun), and the use of 'search_voc' instead of 'search_voice_of_customer' is slightly inconsistent.
8 tools is an ideal number for a dataset analytics MCP server. Each tool covers a necessary operation: discovering datasets, describing schema, computing metrics, retrieving posts, ranking, custom SQL, and two search methods. No tool feels redundant or missing.
The tool set covers the main analytics use cases: listing, describing, retrieving, searching, and computing metrics. Custom SQL via safe_query fills gaps for advanced aggregations. However, there is no tool for creating or modifying datasets, which is acceptable for a read-only analytics server.