https://github.com/jkingsman/qanon-mcp-server
This server provides an interface via the Model Context Protocol (MCP) to access and analyze a dataset of QAnon posts for research purposes, integrated with AI assistants like Claude Desktop.
Capabilities:
Access specific posts by ID or raw JSON format
Search posts by keywords, date ranges, or author IDs
Get dataset statistics (total post count, unique authors)
Generate chronological timelines of posts with optional date filtering
Perform text analysis with word frequency visualizations (word clouds) by post IDs or date ranges
Obtain detailed analysis of specific posts, including references and context
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@https://github.com/jkingsman/qanon-mcp-serversearch for posts that mention 'election' from November 2020"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
QAnon is a dangerous cult. This archive is for research purposes only, and I do not endorse any material in this repo.
Q-Anon Posts/Drops MCP Server
An MCP (Model Context Protocol) server that provides access to a dataset of Q-Anon posts for anthropological/sociological research. This server allows AI assistants like Claude to search, filter, and analyze the Q-Anon drops.
Posts are drawn from https://github.com/jkingsman/JSON-QAnon. You can learn more about how the source data was composed there, as well as find alternate formats, schemas, etc.
Warning: This tool was entirely vibe coded. Use at your own risk.
Related MCP server: Reddit Insights MCP Server
Prerequisites
Python 3.10 or higher
uvpackage managerClaude Desktop (for Claude integration)
Installation
This tool is compatible with uvx and doesn't need to be cloned/installed.
Installing via Smithery
To install qanon-mcp-server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @jkingsman/qanon-mcp-server --client claudeManual
Clone or download this repository to your local machine
Install the required packages using
uv:
uv pip install -e .Usage
You can run the server directly with uvx:
uvx qanon_mcpClaude Desktop Integration
To use this MCP server with Claude Desktop:
Make sure you have Claude Desktop installed
Open the Claude menu and select "Settings..."
Click on "Developer" in the left-hand bar and then "Edit Config"
Add the following configuration to the
claude_desktop_config.jsonfile:
{
"mcpServers": {
"qanon_mcp": {
"command": "uvx",
"args": [
"qanon_mcp"
]
}
}
}or, if you don't have uvx installed:
{
"mcpServers": {
"qanon_mcp": {
"command": "uv",
"args": [
"tool",
"run",
"qanon_mcp"
]
}
}
}Save the file and restart Claude Desktop
Start a new conversation in Claude Desktop
You should see a hammer icon in the input box, indicating that tools are available
Features
Resources
qanon://posts/count- Get the total number of postsqanon://posts/{post_id}- Access a specific post by IDqanon://posts/raw/{post_id}- Get the raw JSON data for a specific postqanon://authors- List all unique authorsqanon://stats- Get dataset statistics
Tools
get_post_by_id_tool - Retrieve a specific post by its ID
search_posts - Find posts containing specific keywords or phrases
get_posts_by_date - Retrieve posts from a specific date range
get_posts_by_author_id - Find posts by a specific author ID
analyze_post - Get detailed analysis of a specific post including references and context
get_timeline_summary - Generate a chronological timeline, optionally within a date range
word_cloud_by_post_ids - Generate a word frequency analysis for posts within a specified ID range
word_cloud_by_date_range - Generate a word frequency analysis for posts within a specified date range
Example Queries for Claude
Once the MCP server is connected to Claude Desktop, you can ask questions like:
"How many Q-Anon posts are in the dataset?"
"Search for posts that mention 'storm'"
"Show me posts from October 2020"
"Analyze post #3725"
"Create a timeline of Q-Anon posts from 2018"
"Generate a word cloud for Q-Anon posts between January and March 2019"
"Get the raw data for post #4500"
"What are the most common words used in posts #1000-2000?"
Troubleshooting
If Claude Desktop doesn't show the hammer icon, check your configuration and restart Claude Desktop
Ensure the
posts.jsonfile is in the same directory as the scriptCheck the output in the terminal for any error messages
Make sure you're using the absolute path to the script in your Claude Desktop configuration
Available Tools
8 toolsanalyze_postB
Get detailed analysis of a specific post/drop including references and context.
Args:
post_id: The ID of the post to analyze
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'detailed analysis' but doesn't disclose behavioral traits like what the analysis includes (e.g., sentiment, topics), whether it's read-only or has side effects, rate limits, or authentication needs. This leaves significant gaps for an agent to understand 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 appropriately sized with two sentences: a purpose statement and parameter explanation. It's front-loaded with the main action, and the 'Args' section is structured clearly. No wasted words, though it could be slightly more detailed without losing conciseness.
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 (analysis tool with no annotations and no output schema), the description is minimally complete. It states the purpose and parameter, but lacks details on what 'analysis' entails, return values, or behavioral context. This is adequate for basic use but leaves gaps for effective tool selection.
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 includes an 'Args' section that explains 'post_id: The ID of the post to analyze', adding meaning beyond the input schema, which has 0% description coverage. Since there's only one parameter, this adequately compensates, though it could provide more context on ID format or sourcing.
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 verb 'Get' and resource 'detailed analysis of a specific post/drop including references and context', which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'get_post_by_id_tool' or 'search_posts', which likely retrieve posts without 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. With siblings like 'get_post_by_id_tool' and 'search_posts', it's unclear if this tool should be preferred for analysis over retrieval or if it serves a distinct purpose. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_post_by_id_toolB
Retrieve a specific post by its ID.
Args:
post_id: The ID of the post to retrieve
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes |
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 'Retrieve' implies a read-only operation, it doesn't specify whether this requires authentication, has rate limits, returns structured data, or handles errors. For a tool with zero 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 front-loaded with the core purpose in the first sentence, followed by a brief parameter explanation. It avoids redundancy and wastes no words, though the 'Args:' section could be integrated more seamlessly into the flow.
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 low complexity (single parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and parameter meaning but lacks behavioral details (e.g., error handling, return format) and usage guidelines relative to siblings, leaving 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?
The description adds meaningful context for the single parameter 'post_id' by explaining it's 'The ID of the post to retrieve', which clarifies its purpose beyond the schema's basic type (integer). With 0% schema description coverage and only one parameter, this adequately compensates, though it doesn't detail format constraints (e.g., numeric range).
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 ('Retrieve') and resource ('a specific post by its ID'), making it immediately understandable. However, it doesn't explicitly differentiate from siblings like 'get_posts_by_author_id' or 'search_posts', which also retrieve posts but with different filtering criteria.
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 sibling tools like 'get_posts_by_author_id' for author-based retrieval or 'search_posts' for keyword searches, leaving the agent to infer usage context solely from tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_posts_by_author_idB
Get posts/drops by a specific author ID.
Args:
author_id: The author ID to search for
limit: Maximum number of results to return (default: 10)
| Name | Required | Description | Default |
|---|---|---|---|
| author_id | Yes | ||
| limit | No |
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 states the tool retrieves posts, implying a read-only operation, but doesn't disclose other traits like rate limits, authentication needs, pagination behavior, or what happens if the author_id is invalid. For a tool with zero 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 appropriately sized and front-loaded, with the purpose stated clearly in the first sentence. The Args section is structured but slightly redundant as it repeats parameter names; however, it adds value by explaining semantics. There's minimal waste, making it efficient for an agent to parse.
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 (2 parameters, no output schema, no annotations), the description is partially complete. It covers the purpose and parameter semantics adequately but lacks usage guidelines, behavioral details, and output information. It's sufficient for basic use but leaves gaps for more advanced agent decision-making.
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 meaningful semantics beyond the input schema, which has 0% description coverage. It explains that author_id is 'The author ID to search for' and limit is 'Maximum number of results to return (default: 10)', clarifying their roles. Since the schema lacks descriptions, this compensates well, though it doesn't detail format constraints (e.g., author_id format).
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 posts/drops by a specific author ID.' It specifies the verb ('Get') and resource ('posts/drops'), and distinguishes it from siblings like get_posts_by_date or search_posts by focusing on author filtering. However, it doesn't explicitly differentiate from get_post_by_id_tool, which might also involve authors, 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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over search_posts (which might allow author filtering) or get_posts_by_date, nor does it specify prerequisites or exclusions. The only implied usage is based on the purpose, but no explicit guidelines are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_posts_by_dateB
Get posts/drops within a specific date range.
Args:
start_date: Start date in YYYY-MM-DD format
end_date: End date in YYYY-MM-DD format (defaults to start_date if not provided)
limit: Maximum number of results to return (default: 10)
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | Yes | ||
| end_date | No | ||
| limit | No |
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 tool retrieves posts/drops but doesn't specify what 'posts/drops' are, whether results are paginated, sorted, or include metadata, or if there are rate limits or authentication requirements. For a read operation with 3 parameters and no annotation coverage, this leaves significant gaps in understanding 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 efficiently structured with a clear purpose statement followed by a bullet-point list of parameters with essential details. Each sentence earns its place by providing critical information without redundancy. It's front-loaded with the main function and appropriately sized for a tool with 3 parameters.
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 annotations, no output schema), the description is partially complete. It excels in parameter semantics but lacks behavioral context like result format, error handling, or sibling differentiation. Without an output schema, it should ideally describe return values, but it doesn't, leaving gaps in overall 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 substantial meaning beyond the input schema, which has 0% description coverage. It explains that start_date and end_date are in YYYY-MM-DD format, clarifies that end_date defaults to start_date if not provided, and specifies that limit defaults to 10 with a maximum number of results. This compensates fully for the schema's lack of descriptions, making parameter usage clear.
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 posts/drops within a specific date range.' It specifies the verb ('Get') and resource ('posts/drops'), and the date range qualification distinguishes it from siblings like get_posts_by_author_id or search_posts. However, it doesn't explicitly differentiate from word_cloud_by_date_range, which also uses date ranges but for a different purpose.
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 siblings like get_posts_by_author_id for author-based filtering, search_posts for keyword searches, or word_cloud_by_date_range for analytics. The only implied usage is for date-based retrieval, but no explicit comparisons or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_timeline_summaryB
Get a timeline summary of posts/drops, optionally within a date range.
Args:
start_date: Optional start date in YYYY-MM-DD format
end_date: Optional end date in YYYY-MM-DD format
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | No | ||
| end_date | No |
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 states the tool retrieves a 'summary' but doesn't specify what that includes (e.g., aggregated data, counts, highlights), whether it's read-only (implied by 'Get'), or any limitations like pagination or rate limits. The description adds minimal context beyond the basic operation.
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: the first sentence states the core purpose, followed by a brief parameter section. There's no wasted text, and the structure is clear. It could be slightly more concise by integrating parameter details into the main sentence, but it's efficient overall.
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 (2 optional parameters, no annotations, no output schema), the description is minimally adequate. It covers the purpose and parameters but lacks details on the summary format, behavioral traits, or differentiation from siblings. Without annotations or output schema, more context on what 'summary' entails 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 significant value beyond the input schema, which has 0% description coverage. It explains that 'start_date' and 'end_date' are optional parameters for filtering within a date range and specifies the format ('YYYY-MM-DD'), which isn't in the schema. With 2 parameters and low schema coverage, this compensation is effective, though it doesn't cover all potential semantics like default behaviors.
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 a timeline summary of posts/drops, optionally within a date range.' It specifies the verb ('Get'), resource ('timeline summary of posts/drops'), and scope ('optionally within a date range'). However, it doesn't explicitly differentiate from sibling tools like 'get_posts_by_date' or 'search_posts', which might offer similar date-based filtering.
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 date range filtering but doesn't clarify if this is for summaries only, how it differs from 'get_posts_by_date' (which might return full posts), or any prerequisites. Usage is implied by the parameters 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.
search_postsB
Search for posts/drops containing a specific keyword or phrase.
Args:
query: The keyword or phrase to search for
limit: Maximum number of results to return (default: 10)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No |
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 tool searches for posts/drops but doesn't describe how results are returned (e.g., format, ordering, pagination), whether there are rate limits, authentication requirements, or what happens if no matches are found. For a search tool with zero annotation coverage, this is a significant gap in behavioral context.
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, starting with the core purpose followed by parameter explanations. Each sentence adds value: the first defines the tool's function, and the next two clarify parameters. There's no redundant or wasted text, making it efficient for quick comprehension.
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 (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and parameters but lacks details on behavioral aspects like result formatting, error handling, or usage context relative to siblings. Without annotations or output schema, more completeness would be beneficial for effective agent 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?
The description adds meaningful context for both parameters beyond the input schema, which has 0% description coverage. It explains that 'query' is 'The keyword or phrase to search for' and 'limit' is 'Maximum number of results to return (default: 10)', providing clear semantic understanding. This compensates well for the lack of schema descriptions, though it doesn't detail constraints like query syntax or limit ranges.
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: 'Search for posts/drops containing a specific keyword or phrase.' It specifies the verb ('search') and resource ('posts/drops'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_posts_by_author_id' or 'get_posts_by_date', which are more specific retrieval methods rather than keyword searches.
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 sibling tools like 'analyze_post' or 'word_cloud_by_date_range', nor does it specify scenarios where keyword searching is preferred over other filtering methods (e.g., by author or date). This lack of comparative context leaves the agent without clear usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
word_cloud_by_date_rangeB
Generate a word cloud analysis showing the most common words used in posts within a specified date range.
Args:
start_date: Start date in YYYY-MM-DD format
end_date: End date in YYYY-MM-DD format
min_word_length: Minimum length of words to include (default: 3)
max_words: Maximum number of words to return (default: 100)
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | Yes | ||
| end_date | Yes | ||
| min_word_length | No | ||
| max_words | No |
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 mentions the tool generates a word cloud but doesn't disclose behavioral traits like whether it's read-only, if it requires authentication, rate limits, or what the output format looks like. For a tool with zero annotation coverage, 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 appropriately sized and front-loaded. The first sentence clearly states the purpose, followed by a concise 'Args' section that lists parameters with brief explanations. Every sentence earns its place with no wasted words.
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 (analysis with 4 parameters), no annotations, and no output schema, the description is partially complete. It covers parameter semantics well but lacks behavioral context and output details. It's adequate as a minimum viable description but has clear gaps in transparency and guidelines.
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 meaningful semantics beyond the input schema, which has 0% description coverage. It explains that 'start_date' and 'end_date' define the date range for posts, 'min_word_length' filters words by length with a default, and 'max_words' limits the output count with a default. This compensates well for the schema's lack of descriptions.
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: 'Generate a word cloud analysis showing the most common words used in posts within a specified date range.' It specifies the verb ('generate'), resource ('word cloud analysis'), and scope ('posts within a specified date range'). However, it doesn't explicitly differentiate from sibling tools like 'word_cloud_by_post_ids', which would require 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 no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'word_cloud_by_post_ids' or other analysis tools, nor does it specify prerequisites or exclusions. Usage is implied by the date range focus 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.
word_cloud_by_post_idsA
Generate a word cloud analysis showing the most common words used in posts within a specified ID range.
Args:
start_id: Starting post ID
end_id: Ending post ID
min_word_length: Minimum length of words to include (default: 3)
max_words: Maximum number of words to return (default: 100)
| Name | Required | Description | Default |
|---|---|---|---|
| start_id | Yes | ||
| end_id | Yes | ||
| min_word_length | No | ||
| max_words | No |
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 mentions 'Generate a word cloud analysis' but doesn't disclose behavioral traits such as whether this is a read-only operation, potential performance impacts, rate limits, or what the output format looks like (e.g., image, text list). 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 appropriately sized and front-loaded, starting with the core purpose and then detailing parameters. Every sentence earns its place, but it could be slightly more concise by integrating the parameter explanations more seamlessly rather than as a separate 'Args' block.
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, no output schema, and 4 parameters, the description is partially complete. It covers the purpose and parameters well but lacks information on behavioral aspects and output format. For a tool of this complexity, it should do more to compensate for the missing structured data.
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 includes an 'Args' section that explains all four parameters with clear semantics, such as 'Starting post ID' and 'Minimum length of words to include.' Since schema description coverage is 0%, this fully compensates by adding meaning beyond the bare schema, making the parameters well-understood.
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 specific action ('Generate a word cloud analysis') and resource ('posts within a specified ID range'), distinguishing it from sibling tools like 'word_cloud_by_date_range' which uses date ranges instead of ID ranges. The verb+resource combination is precise and unambiguous.
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 specifying 'posts within a specified ID range,' suggesting this tool is for analyzing posts by their IDs rather than by date, author, or other criteria. However, it doesn't explicitly state when to use this vs. alternatives like 'word_cloud_by_date_range' or when not to use it, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
- First observed
analyze_post - First observed
get_post_by_id_tool - First observed
get_posts_by_author_id - First observed
get_posts_by_date - First observed
get_timeline_summary - First observed
search_posts - First observed
word_cloud_by_date_range - First observed
word_cloud_by_post_ids
TDQS
Most tools have distinct purposes: retrieval by ID, author, date, search, timeline summary, and word cloud generation. However, 'analyze_post' and 'get_post_by_id_tool' could cause confusion as both target specific posts, with 'analyze_post' implying deeper analysis but overlapping in core retrieval functionality. The word cloud tools are clearly differentiated by date vs. ID range.
The naming is mixed: some tools use verb_noun patterns like 'search_posts' and 'analyze_post', while others use noun_verb patterns like 'get_post_by_id_tool' and 'get_posts_by_author_id'. There's inconsistency in verb usage ('get', 'analyze', 'search') and structure, but names remain readable and descriptive overall.
With 8 tools, this server is well-scoped for analyzing and retrieving posts/drops in a QAnon context. The count is reasonable, covering key operations like retrieval, search, timeline summary, and word cloud analysis without being overwhelming or too sparse.
The tool surface is largely complete for a read-only analysis server, covering retrieval by various criteria, search, timeline summaries, and word cloud generation. A minor gap is the lack of update or delete operations, but given the domain (likely analyzing historical data), this is acceptable, and agents can work around it effectively.
Maintenance
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
Search ATProto writing, annotations, identity, agents, and forum posts. 12 read-only tools.
Post + comment + subreddit search with comment-level depth for sentiment work.
Public social-data API and live docs for AI coding agents.
Search and analyze global news coverage and US TV transcripts via the GDELT Project APIs.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables searching and retrieving preserved Twitter data from the Community Archive, including user profiles, tweets, and keyword searches across archived content.-
- AlicenseAqualityDmaintenanceEnables semantic search of Reddit posts, subreddit details, and trend discovery through natural language queries.4191MIT
- AlicenseNot gradedqualityCmaintenanceProvides keyless tools to measure social media topic volume and account activity across Bluesky, Mastodon, Reddit, and Hacker News.111MIT
- AlicenseAqualityBmaintenanceEnables search and discourse analysis over Xi Jinping's publicly available speeches and official statements, including full-text retrieval, phrase-trend tracking, and verbatim quotes with source-linked citations.9MIT
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/jkingsman/qanon-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server