social-research-mcp
Provides capabilities to scrape Facebook page posts by URL or search for social media research and data analysis.
Enables scraping of Instagram posts via URL, hashtag, or search, allowing for profile analysis and content theme identification.
Uses OpenAI API for generating embeddings to enable semantic search and AI-powered timeline analysis of scraped social media data.
Facilitates scraping of Reddit posts by subreddit, search terms, or specific URLs to track discussions and sentiment.
Supports scraping TikTok videos by profile, hashtag, or search for monitoring trends and engagement on the platform.
Provides tools to scrape YouTube video data by search or channel URL for social media research and cross-platform comparison.
social-research-mcp
MCP server for social media research — scrape, search, and analyze across 7 platforms with an AI-powered timeline.
Works with Claude Code, Claude Desktop, Cursor, Windsurf, VS Code Copilot, and any MCP-compatible client.
Features
7 Platform Scrapers — Twitter/X, Instagram, TikTok, YouTube, LinkedIn, Facebook, Reddit (powered by Apify)
AI Timeline — All scraped data is stored in a local LanceDB database with OpenAI embeddings for semantic search
Trend Detection — Identify trending topics, sentiment shifts, and engagement spikes across platforms
Profile Analysis — Engagement rates, posting frequency, content themes, peak hours
Sentiment Analysis — Rule-based sentiment scoring with emoji support
Cross-Platform Comparison — Compare profiles, hashtags, or topics side-by-side
Quick Start
# Run with npx (no install needed)
APIFY_TOKEN=your-token npx social-research-mcp
# With timeline/embeddings support
APIFY_TOKEN=your-token OPENAI_API_KEY=your-key npx social-research-mcpInstallation
npm install -g social-research-mcpConfiguration
Environment Variable | Required | Description |
| Yes | Apify API token for scraping |
| No | OpenAI API key for timeline embeddings (semantic search) |
| No | Data directory (default: |
| No | HTTP port (default: |
Get your Apify token here and OpenAI key here.
Usage with MCP Clients
Claude Code
Add to your project's .mcp.json:
{
"mcpServers": {
"social-research": {
"command": "npx",
"args": ["social-research-mcp"],
"env": {
"APIFY_TOKEN": "your-token",
"OPENAI_API_KEY": "your-key"
}
}
}
}Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"social-research": {
"command": "npx",
"args": ["social-research-mcp"],
"env": {
"APIFY_TOKEN": "your-token",
"OPENAI_API_KEY": "your-key"
}
}
}
}HTTP Mode
For clients that support HTTP/SSE transport:
social-research-mcp --http # Port 3847
social-research-mcp --http 8080 # Custom portTools
Scrape Tools (7)
Each scraper pulls data from its platform via Apify and automatically saves results to the local timeline database.
Tool | Description |
| Search tweets by query, hashtag, or user timeline |
| Scrape posts by URL, hashtag, or search |
| Scrape videos by profile, hashtag, or search |
| Scrape videos by search or channel URL |
| Scrape posts by profile, company, or search |
| Scrape page posts by URL or search |
| Scrape posts by subreddit, search, or URL |
Timeline Tools (4)
Query and analyze your locally stored timeline data.
Tool | Description |
| Semantic search using AI embeddings (requires |
| Structured filtering by platform, date, engagement, author, hashtags |
| Detect trending topics with growth rates and sentiment |
| Aggregate stats: post counts, top authors, top hashtags |
Analysis Tools (3)
Tool | Description |
| Full profile analysis with engagement benchmarks |
| Sentiment scoring on timeline data or direct text |
| Side-by-side comparison of profiles, hashtags, or topics |
Architecture
src/
├── index.ts # CLI entry point
├── server.ts # MCP server (registers all tools)
├── config.ts # Environment configuration
├── types.ts # Shared types (UnifiedPost, Platform, etc.)
├── transport/
│ ├── stdio.ts # MCP stdio transport (default)
│ └── http.ts # HTTP/SSE transport
├── platforms/
│ ├── base.ts # Abstract platform class
│ ├── index.ts # Platform registry
│ └── [7 platforms] # Platform-specific scrapers
├── tools/
│ ├── scrape.ts # Scrape tool handlers
│ ├── timeline.ts # Timeline tool handlers
│ └── analysis.ts # Analysis tool handlers
├── db/
│ ├── lance.ts # LanceDB connection and queries
│ ├── schema.ts # Post row schema and converters
│ └── embeddings.ts # OpenAI embedding wrapper
└── analysis/
├── sentiment.ts # Rule-based sentiment analysis
├── trends.ts # Trend detection and topic clustering
└── engagement.ts # Platform-specific engagement formulasAll scraped data is normalized to a UnifiedPost schema, embedded via OpenAI, and stored in a local LanceDB database. This enables cross-platform semantic search and trend analysis over time.
Apify Costs
Scraping costs are billed through your Apify account. Approximate costs:
Platform | Approximate Cost |
~$0.40 / 1k tweets | |
TikTok | ~$5 / 1k results |
Others | Compute-based (varies) |
See Apify pricing for details.
Development
git clone https://github.com/TerminalGravity/social-research-mcp.git
cd social-research-mcp
npm install
npm run build
npm run typecheckLicense
MIT
Available Tools
14 toolsanalyze_profileB
Analyze a social media profile: scrape recent posts and compute engagement rate, posting frequency, content themes, peak hours, and sentiment.
| Name | Required | Description | Default |
|---|---|---|---|
| url_or_username | Yes | Profile URL or username to analyze | |
| platform | Yes | Social media platform | |
| max_posts | No | Number of recent posts to analyze (default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'scrape recent posts' and 'compute' metrics, implying data retrieval and processing, but does not disclose important traits such as rate limits, authentication needs, data privacy implications, or whether the operation is read-only or has side effects. This leaves significant gaps for an AI agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Analyze a social media profile') and lists specific computed metrics. There is no wasted language, and it is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of analyzing social media profiles with multiple metrics, no annotations, and no output schema, the description is moderately complete. It outlines what the tool does but lacks details on behavioral aspects and output format. For a tool with 3 parameters and no structured output information, it should provide more context to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are well-documented in the schema itself. The description does not add any additional meaning beyond what the schema provides (e.g., it doesn't explain the implications of 'max_posts' on performance or accuracy). With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Analyze a social media profile' with specific actions like 'scrape recent posts and compute engagement rate, posting frequency, content themes, peak hours, and sentiment.' It uses a specific verb ('analyze') and resource ('social media profile'), but it does not explicitly distinguish itself from sibling tools like 'analyze_sentiment' or 'timeline_stats,' which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'analyze_sentiment' (which might focus only on sentiment) and various 'scrape_' tools (which might only collect data without analysis), there is no mention of when this comprehensive analysis tool is preferred or when other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_sentimentB
Run sentiment analysis on posts. Provide a query to search timeline data, or pass texts directly. Returns positive/negative/neutral breakdown.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search query to find posts for sentiment analysis. If omitted, analyzes all timeline data. | |
| platforms | No | Filter by platforms | |
| texts | No | Direct text inputs to analyze (alternative to query) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'Returns positive/negative/neutral breakdown,' which gives some output context, but lacks details on permissions, rate limits, data sources (beyond 'timeline data'), error handling, or whether it's read-only/destructive. For a tool with no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence states the core purpose, followed by input options and return value. Every sentence earns its place, with no redundant information. However, it could be slightly more structured (e.g., separating input and output details more clearly).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters with full schema coverage but no annotations and no output schema, the description is moderately complete. It covers the basic purpose, input methods, and return type, but lacks behavioral context (e.g., how sentiment is calculated, data scope limitations). For a tool with no output schema, more detail on the return structure would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (query, platforms, texts) with clear descriptions. The description adds marginal value by explaining the relationship between 'query' and 'texts' as alternative inputs, but doesn't provide additional semantics beyond what's in the schema (e.g., format details or constraints). Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run sentiment analysis on posts' with the specific action 'analyze' and resource 'posts'. It distinguishes from sibling tools like 'analyze_profile' or 'timeline_stats' by focusing on sentiment rather than profile analysis or statistical trends. However, it doesn't explicitly differentiate from all siblings (e.g., 'compare' might also involve analysis).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance by mentioning two input methods: 'Provide a query to search timeline data, or pass texts directly.' This suggests when to use each approach. However, it doesn't explicitly state when to choose this tool over alternatives like 'timeline_query' or 'timeline_search', nor does it mention prerequisites or exclusions (e.g., whether it works with all sibling scrapers).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compareB
Compare 2+ profiles, hashtags, or topics side-by-side across engagement, sentiment, and volume metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Items to compare (2 or more profiles, hashtags, or topics) | |
| metric | No | Comparison metric (default: all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the types of comparisons and metrics but lacks critical details such as time range defaults, data freshness, rate limits, authentication requirements, or output format expectations. This is inadequate for a tool with 2 parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the tool's core functionality without unnecessary words. It is appropriately sized and front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of comparing multiple items across platforms and metrics, with no annotations and no output schema, the description is insufficient. It lacks details on behavioral aspects (e.g., time ranges, data sources), output structure, and error handling, leaving significant gaps for an AI agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds minimal value by mentioning '2+ profiles, hashtags, or topics' and 'engagement, sentiment, and volume metrics', which aligns with but doesn't significantly expand upon the schema's details for 'items' and 'metric'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('compare side-by-side') and resources ('profiles, hashtags, or topics'), and explicitly distinguishes it from siblings by focusing on comparative analysis rather than individual analysis (like analyze_profile) or scraping operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying what can be compared (profiles, hashtags, topics) and metrics (engagement, sentiment, volume), but does not explicitly state when to use this tool versus alternatives like analyze_sentiment or timeline_stats, nor does it provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrape_facebookB
Scrape posts from Facebook pages. Search by page URL or keyword. Results are saved to the local timeline database.
| Name | Required | Description | Default |
|---|---|---|---|
| page_urls | No | Facebook page URLs to scrape | |
| search | No | Search query | |
| max_results | No | Maximum number of results to return (default varies by platform) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that 'Results are saved to the local timeline database,' which adds context about data persistence and integration. However, it lacks critical details such as authentication requirements, rate limits, potential legal/ethical considerations for scraping Facebook, error handling, or whether the operation is read-only or mutative. The description provides some behavioral insight but leaves significant gaps for a scraping tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that efficiently convey the core functionality and key behavioral aspect (saving to database). It's front-loaded with the main purpose, and each sentence adds value without redundancy. However, it could be slightly more structured by explicitly separating usage instructions from behavioral notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a scraping tool with 3 parameters, no annotations, and no output schema, the description is moderately complete. It covers the basic purpose and hints at integration with the timeline database, but lacks details on output format, error cases, authentication, or legal constraints. For a tool that interacts with an external platform like Facebook, more contextual information would be beneficial to ensure safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (page_urls, search, max_results) with descriptions. The description adds marginal value by mentioning 'Search by page URL or keyword,' which aligns with the parameters but doesn't provide additional syntax, format details, or usage examples beyond what's in the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Scrape posts from Facebook pages' with specific actions (scrape) and resources (posts, Facebook pages). It distinguishes from sibling tools like 'scrape_instagram' by specifying the Facebook platform, but doesn't explicitly differentiate from other Facebook-related tools (none listed). The mention of 'Search by page URL or keyword' adds useful scope but doesn't fully distinguish from potential alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through 'Search by page URL or keyword' and mentions results are saved to 'local timeline database,' which suggests integration with timeline-related siblings. However, it lacks explicit guidance on when to use this tool versus alternatives like 'scrape_twitter' or 'timeline_search,' and doesn't specify prerequisites or exclusions for Facebook scraping.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrape_instagramC
Scrape posts from Instagram. Search by URL, hashtag, or keyword. Results are saved to the local timeline database.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | No | Direct Instagram post or profile URLs | |
| hashtags | No | Hashtags to search | |
| search | No | Search query | |
| type | No | Content type to scrape | |
| max_results | No | Maximum number of results to return (default varies by platform) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It mentions results are 'saved to the local timeline database' which adds some behavioral context about persistence, but doesn't cover rate limits, authentication needs, error conditions, or what happens with duplicate content. For a scraping tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that efficiently convey the core functionality and outcome. The first sentence covers the what and how, the second explains the persistence behavior. No wasted words, though it could be more front-loaded with critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a scraping tool with 5 parameters, no annotations, and no output schema, the description is adequate but has clear gaps. It covers the basic action and persistence behavior but doesn't address error handling, rate limits, authentication, or how results are structured. The 100% schema coverage helps, but behavioral aspects are under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds marginal value by mentioning the three search approaches (URL, hashtag, keyword) which maps to the first three parameters, but doesn't provide additional context beyond what the schema already specifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('scrape posts') and resource ('Instagram'), specifying multiple search methods (URL, hashtag, keyword). It distinguishes from some siblings by focusing on Instagram, but doesn't explicitly differentiate from other scrape_* tools beyond platform name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like scrape_facebook or timeline_query. The description mentions saving to 'local timeline database' but doesn't explain when that's preferable or how this differs from other scraping tools in the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrape_linkedinC
Scrape posts from LinkedIn. Search by profile URL, company URL, or keyword. Results are saved to the local timeline database.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_urls | No | LinkedIn profile URLs | |
| company_urls | No | LinkedIn company page URLs | |
| search | No | Search query for posts | |
| max_results | No | Maximum number of results to return (default varies by platform) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that results are saved to a local database, which implies persistence and potential data storage implications, but doesn't cover critical aspects like rate limits, authentication needs, error handling, or whether the operation is idempotent. For a scraping tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose in the first sentence. The second sentence adds necessary context about result persistence. Both sentences earn their place, though it could be slightly more structured (e.g., separating usage from outcomes).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a scraping tool with no annotations and no output schema, the description is incomplete. It lacks details on return values, error conditions, performance characteristics, and how it interacts with the timeline database. For a tool that performs data extraction and storage, more context is needed to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds minimal value by listing the search methods (profile URL, company URL, keyword), which aligns with the schema but doesn't provide additional syntax, format details, or usage examples beyond what's in the parameter descriptions. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Scrape posts from LinkedIn' with specific resources (posts) and methods (profile URL, company URL, or keyword). It distinguishes from siblings like 'scrape_facebook' by specifying LinkedIn, but doesn't explicitly differentiate from other LinkedIn-related tools like 'analyze_profile' beyond the scraping action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions that 'Results are saved to the local timeline database,' but doesn't explain when to choose this over other scraping tools (e.g., 'scrape_twitter') or analysis tools (e.g., 'analyze_profile'), nor does it specify prerequisites or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrape_redditB
Scrape posts from Reddit. Search by subreddit, keyword, or direct URL. Results are saved to the local timeline database.
| Name | Required | Description | Default |
|---|---|---|---|
| subreddits | No | Subreddit names (e.g., "technology") or URLs | |
| search | No | Reddit search query | |
| urls | No | Direct Reddit post/thread URLs | |
| max_results | No | Maximum number of results to return (default varies by platform) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions that 'Results are saved to the local timeline database' which reveals persistence behavior, but doesn't cover important aspects like rate limits, authentication requirements, data freshness, error handling, or whether this is a read-only vs write operation. The description provides minimal behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that efficiently convey the core functionality and outcome. The first sentence states the action and search methods, the second reveals the persistence behavior. No wasted words, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a scraping tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what format the results take, how pagination works, error conditions, authentication needs, or rate limiting. The mention of saving to database adds some context but leaves many operational questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all 4 parameters. The description adds marginal value by mentioning the three search approaches (subreddit, keyword, URL) which map to the parameters, but doesn't provide additional semantic context beyond what's in the schema descriptions. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Scrape posts from Reddit' with specific search methods (subreddit, keyword, URL). It distinguishes from sibling tools like scrape_facebook or scrape_twitter by specifying the Reddit platform. However, it doesn't explicitly differentiate from timeline_query/timeline_search which might also retrieve saved data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by listing search methods (subreddit, keyword, URL) but doesn't provide explicit guidance on when to use this vs alternatives like timeline_query (for saved data) or other scraping tools for different platforms. No when-not-to-use or prerequisite information is included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrape_tiktokB
Scrape videos from TikTok. Search by profile, hashtag, or keyword. Results are saved to the local timeline database.
| Name | Required | Description | Default |
|---|---|---|---|
| profiles | No | TikTok profile usernames or URLs | |
| hashtags | No | Hashtags to search | |
| search | No | Search query | |
| max_results | No | Maximum number of results to return (default varies by platform) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that results are saved to a local database, which adds some context about persistence, but it doesn't cover critical aspects like rate limits, authentication needs, error handling, or whether the scraping is read-only or mutative. This leaves significant gaps for a tool with potential behavioral complexity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that efficiently cover the core action and outcome. It's front-loaded with the main purpose, though it could be slightly more structured by explicitly separating search methods from the result handling. Overall, it avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a scraping tool with no annotations and no output schema, the description is incomplete. It lacks details on return values, error conditions, rate limits, and how the saved data interacts with sibling tools like 'timeline_query'. For a 4-parameter tool with behavioral implications, this is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal semantic value beyond the input schema, which has 100% coverage. It mentions search methods ('profile, hashtag, or keyword') that loosely map to parameters like 'profiles', 'hashtags', and 'search', but doesn't provide additional details on syntax, interactions between parameters, or default behaviors. With high schema coverage, the baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('scrape') and resource ('videos from TikTok'), distinguishing it from sibling tools like 'scrape_facebook' or 'scrape_instagram' by specifying the platform. However, it doesn't explicitly differentiate from other TikTok-related tools (none exist in the sibling list), so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing search methods ('profile, hashtag, or keyword'), but it doesn't provide explicit guidance on when to use this tool versus alternatives like 'scrape_youtube' or 'timeline_query'. No exclusions or prerequisites are mentioned, leaving usage context somewhat vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrape_twitterB
Scrape tweets from Twitter/X. Search by query, hashtag, or user timeline. Results are saved to the local timeline database for later analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query, hashtag, or username to scrape | |
| type | No | Type of scrape: search tweets or user timeline | |
| date_from | No | Start date (YYYY-MM-DD) | |
| date_to | No | End date (YYYY-MM-DD) | |
| max_results | No | Maximum number of results to return (default varies by platform) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that results are saved to a local timeline database, which adds some context about persistence. However, it doesn't address critical behavioral aspects like rate limits, authentication requirements, whether this is a read-only or write operation (though 'scrape' implies read), error handling, or platform-specific constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences that are front-loaded with the core functionality. The first sentence clearly states the purpose, and the second adds important behavioral context about data persistence. There's no wasted verbiage, though it could be slightly more structured with explicit usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain what the tool returns, error conditions, authentication needs, or how it differs from sibling tools. While it mentions data persistence, it lacks sufficient context for an agent to understand the full behavioral implications of using this scraping tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'search by query, hashtag, or user timeline' which aligns with the query parameter description, but doesn't provide additional semantic context like format examples or usage patterns beyond what's in the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('scrape tweets') and resources ('from Twitter/X'), distinguishing it from siblings like scrape_facebook or timeline_query by specifying the target platform and action. It explicitly mentions what gets scraped (tweets) and the scope (search by query, hashtag, or user timeline).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like scrape_facebook, timeline_query, or timeline_search. It mentions that results are saved to a local database, but doesn't specify when this tool is preferred over direct querying tools or other scraping siblings, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrape_youtubeC
Scrape videos from YouTube. Search by keyword or channel URL. Results are saved to the local timeline database.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | YouTube search query | |
| channel_urls | No | YouTube channel URLs to scrape | |
| max_results | No | Maximum number of results to return (default varies by platform) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that 'Results are saved to the local timeline database,' which adds behavioral context about data persistence. However, it lacks details on permissions, rate limits, error handling, or what 'scrape' entails (e.g., data extraction scope), making it insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that are front-loaded: the first states the purpose, and the second adds usage and behavioral details. There is no wasted text, but it could be slightly more structured (e.g., separating guidelines from behavior).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is moderately complete. It covers the basic purpose and some behavioral aspects (data saving), but for a scraping tool with mutation implications, it should include more on permissions, limitations, or output format to be fully adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the parameters. The description adds marginal value by mentioning 'Search by keyword or channel URL,' which aligns with the 'search' and 'channel_urls' parameters but does not provide additional semantics beyond the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Scrape videos from YouTube' specifies the action (scrape) and resource (YouTube videos). It distinguishes from some siblings (e.g., timeline_query) but not explicitly from other scraping tools like scrape_facebook or scrape_twitter, which reduces it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance: it mentions 'Search by keyword or channel URL' but does not specify when to use this tool versus alternatives like scrape_tiktok or timeline_search. There are no explicit when/when-not instructions or named alternatives, leaving usage context vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_queryC
Structured query against the timeline database. Filter by platform, date, engagement, author, or hashtags — no AI needed.
| Name | Required | Description | Default |
|---|---|---|---|
| platforms | No | Filter by platforms | |
| date_from | No | Start date (YYYY-MM-DD) | |
| date_to | No | End date (YYYY-MM-DD) | |
| min_engagement | No | Minimum total engagement (likes + comments + shares) | |
| author | No | Filter by author username | |
| hashtags | No | Filter by hashtags | |
| limit | No | Max results (default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the query is 'structured' and lists filterable fields, but doesn't describe what the tool returns (format, structure), whether it's paginated, rate limits, authentication requirements, or error conditions. For a query tool with 7 parameters, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two clear parts: the core function and the filtering capabilities. The 'no AI needed' clause adds useful context. However, it could be more front-loaded by starting with the primary purpose before listing filters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a query tool with 7 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what results look like, how they're structured, whether there's pagination, or what happens when no results match. The 'no AI needed' hint is helpful but insufficient for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds minimal value beyond the schema by listing the same filterable fields in natural language. No additional syntax, format details, or constraints beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a 'structured query against the timeline database' with specific filtering capabilities (platform, date, engagement, author, hashtags). It distinguishes from AI-based analysis tools by stating 'no AI needed', but doesn't explicitly differentiate from sibling timeline tools like timeline_search or timeline_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'no AI needed' which might imply not to use it for analysis, but doesn't specify when to choose timeline_query over timeline_search, timeline_stats, or timeline_trends among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_searchA
Semantic search across your timeline database. Uses AI embeddings to find posts by meaning, not just keywords. Requires OPENAI_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Semantic search query — finds posts with similar meaning, not just keyword matches | |
| platforms | No | Filter by platforms | |
| date_from | No | Start date (YYYY-MM-DD) | |
| date_to | No | End date (YYYY-MM-DD) | |
| limit | No | Max results (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the requirement for OPENAI_API_KEY, which is useful context, but fails to describe other behavioral traits such as rate limits, authentication needs beyond the API key, what happens if no results are found, or the format of returned results. For a search tool with no annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two sentences, front-loading the core purpose and key requirement. Every sentence earns its place by providing essential information without redundancy or fluff, making it easy for an AI agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (semantic search with 5 parameters) and no annotations or output schema, the description is incomplete. It covers the purpose and API key requirement but lacks details on behavioral traits, result format, and error handling. However, the high schema coverage mitigates some gaps, making it minimally adequate but with clear room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by emphasizing the semantic nature of the 'query' parameter, but it doesn't provide additional syntax, format details, or usage examples. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('semantic search') and resources ('timeline database', 'posts'), distinguishing it from sibling tools like timeline_query (likely keyword-based) or timeline_stats/trends (analytics-focused). It explicitly mentions AI embeddings and meaning-based search, which clarifies its unique functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for semantic search across timeline posts but doesn't explicitly state when to use this tool versus alternatives like timeline_query (which might be for keyword search) or the various scrape_* tools. It mentions the requirement for OPENAI_API_KEY, which provides some context, but lacks clear guidance on scenarios where this tool is preferred over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_statsB
Get aggregate statistics from your timeline: total posts by platform, avg engagement, most active authors, top hashtags.
| Name | Required | Description | Default |
|---|---|---|---|
| platforms | No | Filter by platforms | |
| date_from | No | Start date (YYYY-MM-DD) | |
| date_to | No | End date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions what statistics are returned, it doesn't describe important behavioral aspects like whether this is a read-only operation, whether it requires authentication, rate limits, pagination behavior, or what happens when no data matches the filters. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise - a single sentence that efficiently communicates the core purpose and enumerates the specific statistics returned. Every element earns its place, with no wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (aggregation across multiple metrics), no annotations, no output schema, and 3 parameters, the description is minimally adequate. It explains what statistics are returned but doesn't cover behavioral aspects, usage context, or output format details. The high schema coverage helps, but for a statistical tool with no output schema, more context about the return structure would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't mention any parameters, while the input schema has 3 parameters with 100% description coverage. The schema already documents platforms (with enum values), date_from, and date_to. The description's mention of 'by platform' and implied date filtering aligns with the parameters but adds no additional semantic context beyond what the schema provides, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get aggregate statistics from your timeline' with specific metrics listed (total posts by platform, avg engagement, most active authors, top hashtags). It uses a specific verb ('Get') and resource ('aggregate statistics from your timeline'), but doesn't explicitly distinguish it from sibling tools like timeline_query, timeline_search, or timeline_trends, which likely have overlapping domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like timeline_query, timeline_search, and timeline_trends available, there's no indication of when this statistical aggregation tool is preferred over those other timeline-related tools or when it should be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_trendsB
Detect trending topics across your stored timeline data. Identifies spikes in hashtag/keyword frequency and sentiment shifts.
| Name | Required | Description | Default |
|---|---|---|---|
| time_window | No | Time bucket size for trend detection (default: daily) | |
| platforms | No | Filter by platforms | |
| top_n | No | Number of top trends to return (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'detect trending topics' and 'identifies spikes,' which implies a read-only analysis operation, but doesn't specify whether it requires authentication, has rate limits, returns structured data, or handles errors. For a tool with no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, consisting of two concise sentences that directly state the tool's purpose and key actions. Every sentence earns its place by conveying essential information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is partially complete. It explains what the tool does but lacks details on behavioral traits, usage guidelines, and output format. Without annotations or an output schema, more context on results and constraints would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what the schema provides. With 100% schema description coverage, the baseline is 3, as the schema already documents all parameters (time_window, platforms, top_n) with descriptions and enums. The description doesn't compensate with additional context like examples or edge cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Detect trending topics across your stored timeline data' with specific actions like 'identifies spikes in hashtag/keyword frequency and sentiment shifts.' It distinguishes from siblings like timeline_query, timeline_search, and timeline_stats by focusing on trend detection rather than querying, searching, or statistical analysis. However, it doesn't explicitly differentiate from analyze_sentiment, which might also involve sentiment analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose timeline_trends over timeline_query, timeline_search, timeline_stats, or analyze_sentiment, nor does it specify prerequisites like requiring stored timeline data. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, with clear separation between scraping (platform-specific), analysis (profile, sentiment, comparison), and timeline operations (query, search, stats, trends). However, timeline_query and timeline_search could be confused as both search the timeline database, though one is structured and the other semantic.
Tool names follow a consistent snake_case pattern throughout, with clear verb_noun structures (e.g., analyze_profile, scrape_facebook, timeline_query). The naming is predictable and readable, with no mixing of conventions or styles.
14 tools is well-scoped for a social research server covering multiple platforms and analysis types. Each tool earns its place, providing comprehensive coverage without being overwhelming, typical for a domain with diverse data sources and analytical needs.
The toolset offers complete coverage for social research: scraping from major platforms (Facebook, Instagram, etc.), storing data in a timeline database, and providing analysis tools (profile analysis, sentiment, comparison, stats, trends). No obvious gaps exist for the stated purpose, enabling agents to perform end-to-end research workflows.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
All HasData scraping tools in one MCP server: Google, TikTok, Instagram, maps, e-commerce and more.
Social media analytics, video analysis, and competitor intel for any MCP-compatible AI agent.
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
MCP server: AI-agent access to Chinese social & trend signals — Douyin, Weibo, Xiaohongshu/RedNote,
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/TerminalGravity/social-research-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server