Skip to main content
Glama
jkingsman

https://github.com/jkingsman/qanon-mcp-server

by jkingsman

QAnonは危険なカルトです。このアーカイブは研究目的のみであり、私はこのリポジトリ内のいかなる資料も推奨しません。

Q-AnonがMCPサーバーを投稿/削除

鍛冶屋のバッジ

人類学/社会学研究のためのQアノン投稿データセットへのアクセスを提供するMCP(モデル・コンテキスト・プロトコル)サーバー。このサーバーにより、クロードのようなAIアシスタントがQアノン投稿を検索、フィルタリング、分析できるようになります。

投稿はhttps://github.com/jkingsman/JSON-QAnonから引用されています。ソースデータの構成方法や、代替フォーマット、スキーマなどについては、そちらで詳しくご確認いただけます。

警告:このツールは完全にバイブコーディングされています。自己責任でご使用ください。

Related MCP server: China PolicySignal

前提条件

  • Python 3.10以上

  • uvパッケージマネージャー

  • Claude デスクトップ (Claude 統合用)

インストール

このツールはuvxと互換性があり、クローン/インストールする必要はありません。

Smithery経由でインストール

Smithery経由で Claude Desktop 用の qanon-mcp-server を自動的にインストールするには:

npx -y @smithery/cli install @jkingsman/qanon-mcp-server --client claude

マニュアル

  1. このリポジトリをローカルマシンにクローンまたはダウンロードします

  2. uvを使用して必要なパッケージをインストールします。

uv pip install -e .

使用法

uvxを使用してサーバーを直接実行できます。

uvx qanon_mcp

クロードデスクトップ統合

この MCP サーバーを Claude Desktop で使用するには:

  1. Claude Desktopがインストールされていることを確認してください

  2. Claude メニューを開き、「設定...」を選択します

  3. 左側のバーの「開発者」をクリックし、「設定の編集」をクリックします。

  4. claude_desktop_config.jsonファイルに次の構成を追加します。

{
  "mcpServers": {
    "qanon_mcp": {
      "command": "uvx",
      "args": [
        "qanon_mcp"
      ]
    }
  }
}

または、 uvxがインストールされていない場合:

{
  "mcpServers": {
    "qanon_mcp": {
      "command": "uv",
      "args": [
        "tool",
        "run",
        "qanon_mcp"
      ]
    }
  }
}
  1. ファイルを保存し、Claude Desktopを再起動します。

  2. Claude Desktopで新しい会話を始める

  3. 入力ボックスにハンマーアイコンが表示され、ツールが利用可能であることを示します。

特徴

リソース

  • qanon://posts/count - 投稿の総数を取得する

  • qanon://posts/{post_id} - IDで特定の投稿にアクセスする

  • qanon://posts/raw/{post_id} - 特定の投稿の生のJSONデータを取得します

  • qanon://authors - すべてのユニークな著者を一覧表示する

  • qanon://stats - データセットの統計情報を取得する

ツール

  • get_post_by_id_tool - IDで特定の投稿を取得する

  • search_posts - 特定のキーワードやフレーズを含む投稿を検索します

  • get_posts_by_date - 特定の日付範囲の投稿を取得する

  • get_posts_by_author_id - 特定の著者IDによる投稿を検索する

  • analyze_post - 参照やコンテキストを含む特定の投稿の詳細な分析を取得します

  • get_timeline_summary - 日付範囲内で時系列タイムラインを生成する(オプション)

  • word_cloud_by_post_ids - 指定されたID範囲内の投稿の単語頻度分析を生成します

  • word_cloud_by_date_range - 指定された日付範囲内の投稿の単語頻度分析を生成します

クロードのクエリ例

MCP サーバーが Claude Desktop に接続されると、次のような質問をすることができます。

  • 「データセットにはQアノンの投稿がいくつありますか?」

  • 「『嵐』について言及している投稿を検索」

  • 「2020年10月の投稿を表示」

  • 「投稿 #3725 を分析する」

  • 「2018年のQアノン投稿のタイムラインを作成」

  • 「2019年1月から3月までのQアノンの投稿のワードクラウドを生成する」

  • 「投稿番号4500の生データを取得する」

  • 「投稿番号 1000~2000 で最もよく使われている単語は何ですか?」

トラブルシューティング

  • Claude Desktopにハンマーアイコンが表示されない場合は、設定を確認してClaude Desktopを再起動してください。

  • posts.jsonファイルがスクリプトと同じディレクトリにあることを確認してください

  • ターミナルの出力にエラーメッセージがないか確認します

  • Claude Desktop の設定でスクリプトへの絶対パスを使用していることを確認してください。

Available Tools

8 tools
analyze_postB
Get detailed analysis of a specific post/drop including references and context.

Args:
    post_id: The ID of the post to analyze
ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYes

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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
ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYes

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)
ParametersJSON Schema
NameRequiredDescriptionDefault
author_idYes
limitNo

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)
ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateYes
end_dateNo
limitNo

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters5/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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
ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateNo
end_dateNo

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
limitNo

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)
ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateYes
end_dateYes
min_word_lengthNo
max_wordsNo

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)
ParametersJSON Schema
NameRequiredDescriptionDefault
start_idYes
end_idYes
min_word_lengthNo
max_wordsNo

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 8 tool updates
    • First observedanalyze_post
    • First observedget_post_by_id_tool
    • First observedget_posts_by_author_id
    • First observedget_posts_by_date
    • First observedget_timeline_summary
    • First observedsearch_posts
    • First observedword_cloud_by_date_range
    • First observedword_cloud_by_post_ids

TDQS

B3.4/5.0

Scored across 8 tools

Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables 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.
    9
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables assistants to directly query a large community archive, including user activity, thread development, and front-page history over decades. It provides read-only access to answer questions about who is most active and how the community has changed.
    MIT