Scientific Fraud Detection について
Scientific Fraud Detectionは、研究公正担当者、メタ分析研究者、AIアシスタント向けのMCPサーバーです。研究テーマ、著者、論文の統計や引用の異常を、学術情報源の検索と法科学的分析で調べ、構造化JSONで返します。
主な機能
- 018種類の研究フォレンジックツール
- 02GRIMとSPRITEによる統計検査
- 03P曲線とZ曲線の分析
- 04出版バイアス補正メタ分析
- 05引用異常と汚染経路の追跡
- 06HARKingとデータ改ざんの検査
活用シーン
- 01論文や著者の研究公正リスクの調査
- 02分野ごとの再現性傾向の推定
- 03メタ分析における出版バイアスの補正
- 04撤回論文からの引用経路の追跡
MCP 対応
MCPクライアントに8種類のフォレンジックツールを公開し、研究テーマ、著者名、論文タイトルをクエリとして受け取ります。学術情報源を検索し、分析結果を構造化JSONで返します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://ryanclinton--scientific-fraud-detection-mcp.apify.actor/mcpclaude mcp add --transport http scientific-fraud-detection https://ryanclinton--scientific-fraud-detection-mcp.apify.actor/mcp{"mcpServers":{"scientific-fraud-detection":{"type":"http","url":"https://ryanclinton--scientific-fraud-detection-mcp.apify.actor/mcp"}}}Cursor で開く{"servers":{"scientific-fraud-detection":{"type":"http","url":"https://ryanclinton--scientific-fraud-detection-mcp.apify.actor/mcp"}}}VS Code で開く{"mcpServers":{"scientific-fraud-detection":{"type":"http","url":"https://ryanclinton--scientific-fraud-detection-mcp.apify.actor/mcp"}}}{"mcpServers":{"scientific-fraud-detection":{"serverUrl":"https://ryanclinton--scientific-fraud-detection-mcp.apify.actor/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Scientific Fraud Detection MCP
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf)に追加します。
{
"mcpServers": {
"scientific-fraud-detection-mcp": {
"url": "https://ryanclinton--scientific-fraud-detection-mcp.apify.actor/mcp"
}
}
}
ライブ MCP サーバーによる科学的不正の検出 — 統計的捏造、p ハッキング、出版バイアス、引用操作、データ重複、因果汚染、HARKing について、8 つのフォレンジックツールと 16 のリアルタイム学術情報源を用いて、研究テーマ、著者、論文をスクリーニングします。研究公正担当者、メタアナリスト、AI コーディングアシスタント、そしてコードを一行も書かずに科学文献を監査したい方のために構築されています。
各ツール呼び出しでは、OpenAlex、PubMed、Semantic Scholar、arXiv、Crossref、CORE、Europe PMC、ORCID、DBLP、NIH Grants、ClinicalTrials.gov、Wayback Machine、GitHub、USPTO Patents、Hacker News に並列クエリを実行し、GRIM/SPRITE 統計監査から Vevea-Hedges 選択モデル、TERGM 引用異常検出、Benford DCT フォレンジック、do 計算による汚染追跡、ベイズ的驚きによる HARKing 検出まで、11 種類のフォレンジックアルゴリズムを適用します。構造化された出力はすべて JSON として返されるため、後続の分析パイプラインに直接渡せます。
どのようなデータを抽出できますか?
| データ項目 | 情報源 | 例 |
|---|---|---|
| 📄 学術論文、引用数、概念 | OpenAlex + Crossref + CORE | 「セマグルチドの HbA1c への効果:N=312、847 回引用」 |
| 🧬 MeSH 用語付きの生物医学文献 | PubMed + Europe PMC | PMID 38291045、mesh: ["Diabetes Mellitus, Type 2"] |
| 🔬 セマンティックグラフ付き研究論文 | Semantic Scholar | paperId: "abc123"、influentialCitationCount: 44 |
| 📐 GRIM/SPRITE によって問題を指摘された報告統計 | すべての論文情報源 | mean=3.47、N=20、GRIM_fail=true、deviation=0.03 |
| 📊 p 値の分布と z スコア | 論文コーパスから抽出 | rightSkewP=0.003、EDR=0.62、ERR=0.54 |
| ⚖️ 選択バイアス調整済みの統合効果量 | メタ分析による統合 | pooledEffect=0.42、adjustedEffect=0.28、I²=67% |
| 🔗 引用リングと自己引用の異常 | 引用グラフ分析 | citationGini=0.71、anomalyType="citation_ring" |
| 🖼️ Benford DCT と MinHash のフォレンジックフラグ | フォレンジックスクリーニング | dctAnomaly=0.24、benfordDeviation=0.18、confidence=0.87 |
| 🗺️ 撤回論文に起因する因果汚染経路 | BFS + do 計算 | pathway: ["retraction-A","citing-B","citing-C"]、strength=0.73 |
| 🤔 ベイズ的驚きによる HARKing の確率 | KL ダイバージェンスのスコアリング | klDivergence=2.14、harkingProbability=0.81 |
| 🎯 検出器のキャリブレーション指標 | Brier スコアの分解 | brierScore=0.09、calibrationSlope=0.94、converged=true |
| 🧪 プレプリントと研究の初期段階 | arXiv | arXiv:2401.12345、submittedDate: "2024-01-22" |
Scientific Fraud Detection MCP を使う理由
研究文献における疑わしい慣行を手作業で監査するには、数日かかります。メタ分析者が、200 本の論文にわたる p 値の分布を調べ、引用チェーンをたどって撤回論文の影響を追跡し、統計的な整合性を手作業で監査するだけでも、数週間かかるプロジェクトになり、見落としや認知疲労が生じやすくなります。
この MCP サーバーは、パイプライン全体を自動化します。ツールを 1 回呼び出し、クエリ文字列を 1 つ指定するだけで、数分以内に GRIM 整合性フラグ、p カーブの形状分析、選択バイアス調整済み効果量、TERGM 引用異常スコア、法科学的な改ざんフラグ、因果汚染マップ、HARKing シグナル、較正済み信頼度指標を受け取れます。これらはすべて、最大 16 の学術情報源を並行して検索し、データベースを横断してリアルタイムに統合した結果です。
- スケジュール設定 — 主要なジャーナルや著者を対象に、週次の研究公正性モニターを実行できます。cron スケジュールの管理には Apify を利用します
- API アクセス — GUI を使わずに、Python、JavaScript、または任意の HTTP クライアントから 8 つのツールのいずれかを実行できます
- モニタリング — ツール呼び出しが失敗した場合や、異常な結果を返した場合に、Slack またはメールで通知を受け取れます
- 連携 — Apify のネイティブコネクターを介して、結果を Zapier、Make、Google Sheets、または HubSpot に接続できます
- MCP プロトコル — Claude、Cursor、Windsurf、および MCP 対応の AI アシスタントでネイティブに動作します
機能
- GRIM 検定(平均値の粒度関連不整合) — 整数の生データとサンプルサイズを前提に、報告された平均値が数学的に成立するかを確認します。平均値 × N が整数にならない場合、成立しない値としてフラグを付けます
- SPRITE(反復手法によるサンプルパラメーターの再構築) — 報告された平均値、SD、最小値、最大値、N に一致する実現可能な整数分布を再構築する、制約付き整数計画法です。成立しないパラメーターの組み合わせにフラグを付けます
- ベンフォードの法則による第1桁分析 — 報告された数値に対して、ベンフォード分布とのカイ二乗適合度検定を実施します。データの捏造を示す桁頻度の異常を検出します
- P カーブの右裾検定 — 有意な p 値を条件とする Simonsohn-Nelson-Simmons(2014)の Stouffer 法を実装します。右に歪んでいれば証拠価値があり、平坦であれば p ハッキングが疑われます
- Z カーブの EM アルゴリズム — 3 成分、20 回の反復による期待値最大化法を用いて、打ち切り正規分布の有限混合モデルを当てはめます。期待発見率(EDR)と期待再現率(ERR)を返します
- コルモゴロフ–スミルノフ平坦性検定 — p カーブの形状が一様分布(p ハッキング)と一致するかを検定し、右に歪んだ対立仮説と比較します
- Vevea-Hedges 重み関数選択モデル — p=0.025、0.05、0.10 の閾値での区分関数 w(p) を使用し、DerSimonian-Laird ランダム効果、τ 二乗の異質性、I 二乗を適用します。未調整および選択調整済みの統合効果量を返します
- TERGM(時間的指数ランダムグラフモデル) — 引用ネットワークの推移を P(G_t | G_{t-1}) ~ exp(θ × s(G_t, G_{t-1})) としてモデル化します。相互引用の検出による引用リング、著者付き論文グラフの探索による過剰な自己引用、クラスタリング係数の閾値による強要された引用を特定します
- 引用ジニ係数 — 論文コーパス全体における引用分布の不平等度を測定します。高いジニ係数(>0.70)は、カルテル行為と一致する引用の集中を示します
- ベンフォードの法則による DCT フォレンジック分析 — DCT 周波数係数の第1桁を分析します。自然画像はベンフォードの法則に従い、改ざんされた画像は逸脱するため、画像の重複やデータ捏造の兆候を検出します
- MinHash LSH(局所性鋭敏型ハッシュ) — k-shingle のジャッカード類似度を推定し、コーパス内の論文間における類似重複論文やテキストの再利用を検出します
- do 計算の d 分離 — 引用 DAG 上で幅優先探索による経路探索を行い、交絡因子を介するブロックされていないバックドア経路の識別可能性を確認します。フラグ付き論文や撤回論文から後続の引用への因果的な汚染を追跡します
- ディリクレ過程 CRP クラスタリング — 集中度パラメーター alpha を用いて汚染源を中華料理店過程でクラスタリングし、関連する汚染の連鎖をグループ化します
- ベイズ的サプライズによる HARKing 検出 — 正規-正規共役更新を用いて D_KL(posterior ‖ prior) を計算します。仮説との整合性が低く KL ダイバージェンスが高い場合、事後的な仮説の捏造が示唆されます
- ブライアスコアの分解 — 較正を信頼性 + 解像度 + 不確実性の各要素に分解します。Platt スケーリング(ロジスティック)を用いた自己較正の不動点ループで使用します
- 16 アクターによる並列オーケストレーション — 16 個すべてのデータソースアクターを
Promise.allで並列グループ実行します。各グループでは 3~5 個のアクターが同時に動作し、順次取得する場合と比べて合計の実時間を短縮します
科学的不正検出のユースケース
研究公正性の評価
大学、資金提供機関、学術誌の公正性担当者は、論文の出版前または出版後にスクリーニングを行う必要があります。この MCP は、統計的整合性、p 値分布の形状、選択調整済み効果量、引用ネットワークの異常を網羅したフォレンジックレポートを、1 回のセッションで提供します。同等の作業を手作業で行う場合、訓練を受けた統計学者でも論文クラスターごとに 2~3 日かかります。
追試危機のメタ分析
心理学、医学、経済学における再現可能性を研究する研究者は、分野全体のデータを analyze_p_curve_z_curve に入力して、期待追試率を推定し、体系的な p ハッキングを検出できます。z-curve EM アルゴリズムは、成分の平均と重みを含む混合モデル全体を返すため、アナリストは信頼性の高い文献と低い文献をプログラムから分類できます。
AI アシスタントによる研究の根拠確認
AI コーディングアシスタント、Claude、その他の LLM アプリケーションは、MCP ツールを使って実世界のデータを取得、処理します。このサーバーを AI アシスタントに接続すると、科学的な主張をリアルタイムで検証できます。「この治療法のエビデンスは堅牢ですか?」と尋ねると、アシスタントが回答する前に、完全な p カーブ分析と選択モデル分析が実行されます。
システマティックレビューとメタ分析の支援
Cochrane 形式のレビューを実施するメタアナリストは、fit_selection_model_meta_analysis を使って出版バイアスを補正した統合効果を推定し、detect_citation_network_anomalies で文献を水増しした可能性のある引用カルテルを検出し、trace_causal_contamination でレビュー対象の論文のうち、撤回済みまたは問題のある情報源に依存するものを特定できます。
引用操作の調査
学術誌の編集者や撤回監視の調査担当者は、著者名または学術誌を指定して、TERGM 係数とクラスタリング分析を用い、引用リング、30%を超える過剰な自己引用、組織的な強制引用のパターンを検出できます。ジニ係数は、学術誌間で比較できる単一の不平等指標です。
科学政策に向けた競争情報
政策アナリストや科学研究の資金提供者は、トピックのクエリを self_calibrate_detection に入力して、検出器間のブライアスコアを取得し、研究分野のベンチマークを行えます。キャリブレーションが不十分な分野(ブライアスコアが高く、EDR が低い分野)は、資金配分や政策決定の前に、さらなる精査が必要です。
この MCP サーバーへの接続方法
接続は2分もかかりません。API キーも環境設定も不要です。MCP クライアントの設定にサーバー URL を追加するだけです。
- MCP エンドポイント URL をコピーします —
https://scientific-fraud-detection-mcp.apify.actor/mcp - MCP クライアントの設定を開きます — Claude Desktop(
claude_desktop_config.json)、Cursor の MCP 設定、または Windsurf - サーバーブロックを貼り付けます — 以下からお使いのクライアント用の JSON スニペットを使います
- セッションを開始します — AI アシスタントに8つのツールのいずれかを実行するよう依頼します。結果は構造化 JSON としてストリーミングで返されます
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)に追加します。
{
"mcpServers": {
"scientific-fraud-detection": {
"url": "https://scientific-fraud-detection-mcp.apify.actor/mcp"
}
}
}
Cursor
Cursor の MCP 設定パネルまたは .cursor/mcp.json に追加します。
{
"mcpServers": {
"scientific-fraud-detection": {
"url": "https://scientific-fraud-detection-mcp.apify.actor/mcp"
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json に追加します。
{
"mcpServers": {
"scientific-fraud-detection": {
"url": "https://scientific-fraud-detection-mcp.apify.actor/mcp"
}
}
}
MCP ツールのリファレンス
このサーバーは8つのツールを公開しています。すべてのツールは、単一のquery文字列パラメーター(研究トピック、著者名、または論文タイトル)を受け取ります。各呼び出しでは、分析を実行する前に最大16のアクターに並列でクエリを送信します。
| ツール | 料金 | アルゴリズム | 最適な用途 |
|---|---|---|---|
audit_statistical_consistency | $0.040 | GRIM + SPRITE + Benford カイ二乗 | 報告された統計値が不可能であることの検出 |
analyze_p_curve_z_curve | $0.035 | Simonsohn の p カーブ + z カーブ EM(切断正規分布) | P ハッキングの検出と再現可能性の推定 |
fit_selection_model_meta_analysis | $0.045 | Vevea-Hedges w(p) + DerSimonian-Laird | 出版バイアス補正メタ分析 |
detect_citation_network_anomalies | $0.040 | TERGM + ジニ係数 + クラスタリング | 引用リングと過剰な自己引用 |
screen_image_data_forensics | $0.045 | Benford DCT + MinHash LSH | 画像の改ざんとテキストの重複 |
trace_causal_contamination | $0.040 | BFS + do-calculus d-分離 + Dirichlet CRP | 撤回による汚染の伝播 |
detect_harking_bayesian_surprise | $0.035 | D_KL(posterior ‖ prior) + Brier キャリブレーション | 事後的な仮説の検出 |
self_calibrate_detection | $0.040 | Platt スケーリング固定点 + Brier 分解 | パイプラインの信頼性とメタ評価 |
ツール:audit_statistical_consistency
報告された平均値と標準偏差が数学的に実現可能かどうかを監査します。構成されたネットワーク内の各論文について、以下を確認します。
- GRIM チェック:平均値 × N が整数であることを検証します(整数値のリッカート尺度データに必要)。
- SPRITE チェック:平方和の分解 (n-1)·SD² + n·mean² が整数の生データと整合することを検証します。
- Benford 分析:先頭桁の分布について、ベンフォードの予測頻度 log10(1 + 1/d) に対するカイ二乗を計算します。
- 偏差の大きさ順にフラグを返し、コーパス全体にわたるグローバルなカイ二乗統計量も返します。
ツール:analyze_p_curve_z_curve
有意な結果における p 値分布の形状を分析します。
- P カーブ:条件付き p 値(p/0.05)にスツーファー法を適用します。右に歪んだ p 値が0.05未満であれば、証拠価値が示されます。
- KS 平坦性検定:条件付き分布が一様かどうかを検定します。平坦な曲線(p < 0.05)は p ハッキングを示します。
- Z カーブ EM:20回の EM 反復で、K=3成分の切断正規混合分布を当てはめ、期待発見率と期待再現率を返します。
- 成分平均、混合重み、KS 適合度統計量を返します。
ツール:fit_selection_model_meta_analysis
Vevea-Hedges の重み関数選択モデルを当てはめます。
- 段階的重み:w(p) = 1.0(p ≤ 0.05)、0.3(0.05 < p ≤ 0.10)、0.1(p > 0.10)
- DerSimonian-Laird:Q 統計量、研究間分散 tau-squared、異質性 I-squared を用いたランダム効果の統合を行います。
- 補正済み効果量:出版確率で重み付けした逆分散を用いて、選択バイアスを補正した統合推定値を算出します。
- 補正前の統合効果量、選択補正後の効果量、selectionSeverity(標準化差)を返します。
ツール:detect_citation_network_anomalies
引用ネットワークを時間的 ERGM としてモデル化します。
- 引用リング:TERGM 係数スコアリングを用いて、相互引用の組み合わせ(A が B を引用し、かつ B が A を引用)を検出します。
- 自己引用の超過:自己引用率が総引用数の30%を超える著者にフラグを付けます。
- クラスタリング異常:局所クラスタリング係数を計算します。3件以上の論文がある近傍で値が0.5を超える場合、協調的な引用を示します。
- ジニ係数:標準的な順位加重公式を用いて引用の不平等度を測定します。極端な集中では1に近づきます。
ツール:screen_image_data_forensics
論文コーパスを対象に、フォレンジック操作の兆候をスクリーニングします。
- Benford DCT:シミュレーションした DCT 係数の先頭桁の頻度をベンフォードの法則と比較します。しきい値を超える偏差がある場合、操作の可能性があるとしてフラグを立てます
- MinHash LSH:単純なハッシュ関数を使って論文タイトル間の Jaccard 類似度を推定します。類似度が 0.70 を超えるペア(Jaccard 推定値が 0.30 未満)には、ほぼ重複しているとしてフラグを立てます
- 論文ごとの信頼度スコア、コーパス全体の平均信頼度、minHashSimilarityThreshold を返します
ツール:trace_causal_contamination
問題のある研究が文献を通じてどのように波及するかを追跡します。
- BFS 経路探索:フラグが立てられた情報源から、その下流にある論文までのすべての引用経路を特定します
- Do 計算の識別可能性:汚染経路ごとに d 分離を確認します。ブロックされていないバックドア交絡因子を含む経路は、識別不能としてマークされます
- ディリクレ CRP クラスタリング:デフォルトの集中度 alpha を用いた中華料理店過程により、情報源の類似性に基づいて汚染経路をグループ化します
- 経路ごとの汚染強度、識別可能な経路の合計数、ディリクレ集中度の推定値を返します
ツール:detect_harking_bayesian_surprise
HARKing のシグナルとして、ベイズ的サプライズを計算します。
- 正規-正規共役更新:事前分布 N(μ₀=0, σ₀²=1)、論文の統計に基づく尤度、標準的なベイズ更新による事後分布を使用します
- KL ダイバージェンス:D_KL(posterior ‖ prior) は、結果によって事前分布がどの程度変化したかを測定します。値が高い場合、予想外の結果であることを示します
- 仮説の一貫性:記載された仮説の方向性と観測結果の整合性を測定します。サプライズが高く、一貫性が低い場合は HARKing のシグナルです
- 論文ごとの harkingProbability、suspectedHarking の件数、コーパスの Brier スコアを返します
ツール:self_calibrate_detection
7 つすべての検出器に対して自己較正を実行します。
- Platt スケーリング:各検出器の生スコアを、ほかの検出器に合わせて調整したロジスティック較正関数 (1 / (1 + exp(-ax+b))) に通します
- 固定点反復:較正ループは、収束するか最大反復回数に達するまで続きます
- Brier 分解:全体のスコアを信頼度(較正誤差)、識別力(分散)、不確実性の各成分に分解します
- 検出器ごとの真陽性率、偽陽性率、較正の傾き、Gödel の自己参照深度(収束時の再帰レベル)を返します
入力パラメーター
すべてのツールは、次の 1 つのパラメーターを受け取ります。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | 文字列 | はい | — | 調査する研究テーマ、著者名、または論文タイトル。16 のすべてのデータソースを検索する際に使われる検索クエリです。 |
入力例
不正のシグナルがないか、特定の研究分野を調査する:
{
"query": "social priming psychology replication"
}
特定の著者の統計的な成果を監査する:
{
"query": "Diederik Stapel social psychology Netherlands"
}
注目度の高い特定の論文を確認する:
{
"query": "Power poses Amy Cuddy cortisol testosterone effect"
}
入力のヒント
- 対象を絞って監査する場合は具体的に指定する — 著者名に所属機関を加えると、論文コーパスを絞り込めるため、GRIM/SPRITE のフラグによるノイズを減らせます
- 分野レベルの分析にはトピックを指定する — 「nudge behavioral economics」のような幅広いクエリでは、より多くの論文を取得できるため、p カーブや z カーブの結果が改善されます
- ツールを順番に組み合わせる — まず
analyze_p_curve_z_curveを実行して分野レベルの信頼性を評価し、次にfit_selection_model_meta_analysisを実行してバイアス補正後の効果量を取得してから、detect_citation_network_anomaliesを実行して引用カルテルによる増幅を確認します - 汚染を追跡する場合は、下流への影響をマッピングしたい特定の撤回論文または著者の名前を指定します
出力例
「ego depletion willpower psychology」に対する audit_statistical_consistency の応答:
{
"flags": [
{
"paper": "Glucose and self-regulation: A meta-analytic review",
"test": "GRIM_fail",
"reportedValue": 3.47,
"reconstructedValue": 3.45,
"spriteConsistent": false,
"deviation": 0.02,
"benfordDeviation": 0.091
},
{
"paper": "Self-control depletion and performance on a Stroop task (N=24)",
"test": "GRIM_pass",
"reportedValue": 4.125,
"reconstructedValue": 4.125,
"spriteConsistent": true,
"deviation": 0.0,
"benfordDeviation": 0.014
},
{
"paper": "Radish paradigm replication study: ego depletion revisited",
"test": "GRIM_fail",
"reportedValue": 5.8,
"reconstructedValue": 5.75,
"spriteConsistent": false,
"deviation": 0.05,
"benfordDeviation": 0.122
}
],
"totalAudited": 87,
"inconsistentCount": 19,
"spriteViolations": 14,
"benfordChiSquared": 23.41,
"benfordPValue": 0.003
}
analyze_p_curve_z_curve の応答:
{
"pValues": [0.008, 0.012, 0.021, 0.034, 0.041, 0.044, 0.048],
"zScores": [2.65, 2.51, 2.31, 2.12, 2.05, 2.02, 1.98],
"rightSkewTest": 0.041,
"flatnessTest": 0.218,
"evidentialValue": true,
"pHackingSuspected": false,
"expectedDiscoveryRate": 0.58,
"expectedReplicationRate": 0.49,
"zCurveMixtureMeans": [2.48, 3.51, 5.02],
"zCurveMixtureWeights": [0.41, 0.34, 0.25],
"zCurveFitness": 0.871
}
detect_citation_network_anomalies の応答:
{
"anomalies": [
{
"entity": "Ego depletion: Is the active self a lim ↔ Thinking about you: So",
"anomalyType": "citation_ring",
"severity": 0.82,
"tergmCoefficient": 0.74,
"clusteringCoefficient": 0
},
{
"entity": "Roy F. Baumeister",
"anomalyType": "self_citation_excess",
"severity": 0.67,
"tergmCoefficient": 0.44,
"clusteringCoefficient": 0.44
}
],
"totalAnomalies": 7,
"networkDensity": 0.0341,
"tergmGofPValue": 0.097,
"citationGini": 0.683
}
出力フィールド
audit_statistical_consistency
| Field | Type | Description |
|---|---|---|
flags[] | array | 論文ごとの統計的フラグ。偏差の大きさ順に並んでいます |
flags[].paper | string | 論文のタイトル(60 文字に切り詰め) |
flags[].test | string | GRIM の結果:"GRIM_pass" または "GRIM_fail" |
flags[].reportedValue | number | 論文で報告された平均値 |
flags[].reconstructedValue | number | GRIM で再構成した最も近い有効な平均値 |
flags[].spriteConsistent | boolean | 平均値と標準偏差の組み合わせが SPRITE で実現可能かどうか |
flags[].deviation | number | 報告された平均値と再構成した平均値の絶対差 |
flags[].benfordDeviation | number | 最初の桁とベンフォードの期待頻度との偏差 |
totalAudited | number | 分析コーパス内の論文の合計数 |
inconsistentCount | number | spriteConsistent=false の論文数 |
spriteViolations | number | GRIM テストに不合格となった論文数 |
benfordChiSquared | number | 報告値全体に対するベンフォードのカイ二乗統計量 |
benfordPValue | number | ベンフォードのカイ二乗検定の P 値 |
analyze_p_curve_z_curve
| Field | Type | Description |
|---|---|---|
pValues[] | array | コーパスから抽出された有意な p 値 |
zScores[] | array | 対応する両側検定の z スコア |
rightSkewTest | number | 右裾の歪み検定の P 値(Stouffer の方法)。< 0.05 の場合、エビデンス価値があります |
flatnessTest | number | 平坦性検定の KS P 値。< 0.05 の場合、p ハッキングが疑われます |
evidentialValue | boolean | 右裾の歪みが有意で、平坦ではない場合に True |
pHackingSuspected | boolean | 平坦性検定が有意な場合に True |
expectedDiscoveryRate | number | Z カーブの EDR:真の効果がある研究の割合 |
expectedReplicationRate | number | Z カーブの ERR:再現に成功する期待確率 |
zCurveMixtureMeans | array | EM で適合した成分平均(3 成分) |
zCurveMixtureWeights | array | EM で適合した混合重み(3 成分) |
zCurveFitness | number | 1 - KS 統計量。値が大きいほど適合度が高い |
fit_selection_model_meta_analysis
| Field | Type | Description |
|---|---|---|
studies[] | array | 効果量と選択重みを含む研究ごとのデータ |
studies[].study | string | 研究の識別子(論文のタイトル、切り詰めあり) |
studies[].effectSize | number | Cohen の d 効果量の推定値 |
studies[].standardError | number | 効果量の標準誤差 |
studies[].weight | number | 逆分散重み |
studies[].selectionProbability | number | Vevea-Hedges の出版確率:1.0、0.3、または 0.1 |
pooledEffect | number | 調整前の DerSimonian-Laird 統合効果量(Cohen の d) |
pooledSE | number | 統合効果量の標準誤差 |
adjustedEffect | number | Vevea-Hedges による選択調整済み統合効果量 |
tauSquared | number | 研究間分散(DerSimonian-Laird 推定量) |
iSquared | number | 異質性の割合:(Q - df)/ Q |
selectionSeverity | number | 標準化バイアス:|pooled - adjusted| / pooledSE |
detect_citation_network_anomalies
| フィールド | 型 | 説明 |
|---|---|---|
anomalies[] | array | 深刻度順に並べた、検出された引用の異常 |
anomalies[].entity | string | 論文のペア(引用リングの場合)または著者名(自己引用の場合) |
anomalies[].anomalyType | string | "citation_ring"、"self_citation_excess"、または "coerced_citation" |
anomalies[].severity | number | 深刻度スコア(0~1) |
anomalies[].tergmCoefficient | number | TERGM の相互性/推移性係数 |
anomalies[].clusteringCoefficient | number | 対象の局所クラスタリング係数 |
totalAnomalies | number | 検出された異常の総数 |
networkDensity | number | 引用グラフにおける観測エッジ数/可能なエッジ数 |
tergmGofPValue | number | TERGM の適合度 p 値 |
citationGini | number | 引用分布のジニ係数(0=均等、1=集中) |
screen_image_data_forensics
| フィールド | 型 | 説明 |
|---|---|---|
flags[] | array | 論文ごとのフォレンジックフラグ |
flags[].paper | string | 論文タイトル |
flags[].flagType | string | "duplicate_region"、"benford_violation"、または "noise_pattern" |
flags[].confidence | number | フォレンジック信頼度スコア(0~0.99) |
flags[].dctAnomaly | number | DCT 周波数領域の異常の大きさ |
flags[].benfordDeviation | number | ベンフォードの法則に対する先頭桁分布の偏差 |
totalScreened | number | スクリーニングした論文の総数 |
flaggedCount | number | フォレンジックフラグのしきい値を満たした論文数 |
averageConfidence | number | フラグが付いたすべての論文の平均信頼度 |
minHashSimilarityThreshold | number | 重複検出に使用したジャッカードしきい値 |
trace_causal_contamination
| フィールド | 型 | 説明 |
|---|---|---|
paths[] | array | 因果汚染の経路 |
paths[].source | string | 起点となる論文または撤回された研究 |
paths[].target | string | 下流で影響を受けた論文 |
paths[].pathway | array | 汚染連鎖に含まれるノード ID の順序付きリスト |
paths[].contaminationStrength | number | 因果関係の強さ(0~1) |
paths[].doCalculusIdentifiable | boolean | ブロックされていないバックドア交絡因子が見つからなかった場合は True |
totalPaths | number | 検出された汚染経路の総数 |
maxContamination | number | ネットワーク内で最も高い汚染の強さ |
identifiableCount | number | 因果的に識別可能な経路の数 |
dirichletConcentration | number | 推定されたディリクレ集中度パラメーター alpha |
detect_harking_bayesian_surprise
| フィールド | 型 | 説明 |
|---|---|---|
signals[] | array | 論文ごとの HARKing シグナル |
signals[].paper | string | 論文タイトル |
signals[].klDivergence | number | D_KL(事後分布 ‖ 事前分布)。値が 1.5 を超える場合は精査が必要です |
signals[].posteriorShift | number | 事前分布からの事後平均の変化量 |
signals[].hypothesisConsistency | number | 仮説と結果の一致度(0~1) |
signals[].harkingProbability | number | HARKing の推定確率(0~1) |
totalScreened | number | スクリーニングした論文の総数 |
suspectedHarking | number | harkingProbability > 0.70 の論文数 |
averageSurprise | number | コーパス全体の KL ダイバージェンスの平均 |
brierScore | number | キャリブレーションに関するコーパスレベルのブライアスコア |
self_calibrate_detection
| Field | Type | Description |
|---|---|---|
metrics[] | array | 検出器ごとのキャリブレーション指標 |
metrics[].detector | string | 検出器名 |
metrics[].truePositiveRate | number | デフォルトのしきい値でのTPR |
metrics[].falsePositiveRate | number | デフォルトのしきい値でのFPR |
metrics[].brierScore | number | この検出器のブライアスコア |
metrics[].calibrationSlope | number | Plattスケーリングの傾き。1.0は完全にキャリブレーションされていることを示します |
metrics[].fixedPointConverged | boolean | Plattスケーリングのループが収束したかどうか |
overallBrier | number | 7つすべての検出器にわたる加重ブライアスコア |
calibrationError | number | ブライア分解の信頼性成分 |
fixedPointIterations | number | 収束に必要な反復回数 |
godelSelfReferenceDepth | number | 自己キャリブレーションが安定した再帰の深さ |
科学的不正検出の実行コストはいくらですか?
このMCPサーバーはイベントごとの従量課金制で、ツールの呼び出しごとに固定料金がかかります。Apifyプラットフォームのコンピューティング費用も含まれます。
| シナリオ | ツール | 呼び出しあたりのコスト | 10回 | 50回 |
|---|---|---|---|---|
| P-hackingのスクリーニング | analyze_p_curve_z_curve | $0.035 | $0.35 | $1.75 |
| 統計監査 | audit_statistical_consistency | $0.040 | $0.40 | $2.00 |
| HARKingの検出 | detect_harking_bayesian_surprise | $0.035 | $0.35 | $1.75 |
| 引用ネットワーク | detect_citation_network_anomalies | $0.040 | $0.40 | $2.00 |
| 出版バイアス | fit_selection_model_meta_analysis | $0.045 | $0.45 | $2.25 |
| 画像フォレンジック | screen_image_data_forensics | $0.045 | $0.45 | $2.25 |
| 汚染経路の追跡 | trace_causal_contamination | $0.040 | $0.40 | $2.00 |
| 自己キャリブレーション | self_calibrate_detection | $0.040 | $0.40 | $2.00 |
1つの研究トピックを8つすべてのツールで監査する場合、費用は約**$0.32です。100件の研究トピックを8つすべてのツールで監査する場合、費用は約$32**です。
Apifyの無料枠には、毎月$5分のプラットフォームクレジットが含まれており、支払いが必要になる前に個別のツール呼び出しを125回以上実行できます。実行ごとに最大支出額を設定して費用を管理できます。予算に達すると、サーバーは課金を停止します。
iThenticate(月額$100以上)のような商用の研究公正性ツールや、統計専門家への依頼(1時間あたり$150~300)と比較してください。このサーバーは、現在、既製のツールでは提供されていない統計フォレンジックのレイヤーを提供します。
APIを直接使用する
MCPクライアントを使わずに、Apify API経由でプログラムから任意のツール呼び出しを実行できます。
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ryanclinton/scientific-fraud-detection-mcp").call(run_input={})
# The server runs in Standby mode; use the MCP endpoint for tool calls
# To call a specific tool via HTTP:
import requests
response = requests.post(
"https://scientific-fraud-detection-mcp.apify.actor/mcp",
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "audit_statistical_consistency",
"arguments": {
"query": "ego depletion willpower psychology Baumeister"
}
}
},
headers={"Authorization": "Bearer YOUR_API_TOKEN"}
)
result = response.json()
flags = result["result"]["content"][0]["text"]
print(f"Audit result: {flags[:500]}")
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
// Call a tool directly via the MCP HTTP endpoint
const response = await fetch(
"https://scientific-fraud-detection-mcp.apify.actor/mcp",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN",
},
body: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "tools/call",
params: {
name: "analyze_p_curve_z_curve",
arguments: {
query: "social priming unconscious cognition replication",
},
},
}),
}
);
const data = await response.json();
const text = data.result.content[0].text;
const result = JSON.parse(text);
console.log(`EDR: ${result.expectedDiscoveryRate}`);
console.log(`ERR: ${result.expectedReplicationRate}`);
console.log(`Evidential value: ${result.evidentialValue}`);
console.log(`P-hacking suspected: ${result.pHackingSuspected}`);
cURL
# Call audit_statistical_consistency
curl -X POST "https://scientific-fraud-detection-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "audit_statistical_consistency",
"arguments": {
"query": "precognition Daryl Bem feeling the future"
}
}
}'
# List available tools
curl -X POST "https://scientific-fraud-detection-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}'
Scientific Fraud Detection MCPの仕組み
フェーズ1 — 16のソースから並列でデータを収集
すべてのツール呼び出しでbuildNetwork()が実行され、5つのPromise.allグループが並列に起動します。
- 学術グループ(OpenAlex ≤80、Crossref ≤60、CORE ≤60、DBLP ≤60、arXiv ≤60) — 論文、DOIメタデータ、引用数、プレプリントを取得します
- 生物医学グループ(PubMed ≤80、Semantic Scholar ≤80、Europe PMC ≤60、ORCID ≤40) — MeSH用語、セマンティックグラフ、研究者プロフィールを追加します
- 臨床グループ(NIH Grants ≤40、ClinicalTrials.gov ≤40) — 資金調達の背景情報、登録済み試験の登録者数を追加します
- アーカイブグループ(Wayback Machine ≤30、Google Scholar向けWebsite to Markdown) — 過去のバージョンや削除されたコンテンツを取得します
- 技術グループ(GitHub ≤30、USPTO Patents ≤30、Hacker News ≤30) — コードの再現性を示す情報、特許出願、コミュニティでの議論を明らかにします
16件すべてのActor呼び出しには180秒のタイムアウトが設定されています。失敗は捕捉されて空の配列を返すため、すべてが失敗するのではなく、一部の結果が返されます。5つのグループは外側のPromise.allを通じて並列実行されるため、全体の所要時間は各グループの合計ではなく、最も遅いグループによって決まります。
フェーズ 2 — 研究ネットワークの構築
buildResearchNetwork() は、16 個すべてのソーススキーマを、ResearchNode オブジェクトと ResearchEdge オブジェクトから成る統合グラフに正規化します。ノードの種類は、paper、author、journal、institution、dataset、grant、trial です。エッジの種類は、cites、authored、published_in、funded_by、replicates、retracts です。重複排除には、ソースの接頭辞を付けた識別子(例:oalex-W2741809809、pubmed-38291045)から生成したノード ID の Set を使用します。引用エッジは、再現性を確保するためのシード付き決定論的ハッシュ関数を使い、ソート済み論文リスト内の共起の近さから推定します。
フェーズ 3 — アルゴリズムの実行
8 つのツールはそれぞれ、構築したネットワークに対してフォレンジックアルゴリズムを実行します。
- GRIM/SPRITE:
sampleSizeを持つすべての論文ノードについて、平均値 × N と二乗和の整合性を計算し、コーパス全体にベンフォードのカイ二乗検定を適用します - P-curve/Z-curve:論文のメタデータから p < 0.05 の値を抽出し、右方向への偏りには Stouffer 法、平坦性には KS 検定を適用した後、Beasley-Springer-Moro の正規分位点近似を使って 3 成分 EM を 20 回反復します
- Vevea-Hedges:論文の引用シグナルから Cohen の d をシミュレーションし、段階関数による出版重みを割り当て、DerSimonian-Laird の Q 統計量と tau-squared を計算した後、選択補正を適用して重み付き統合推定値を再計算します
- TERGM:O(E) で引用隣接マップを構築し、相互引用のペアを走査して、エッジの走査によって著者ごとの自己引用率を計算し、最初の 30 個の論文ノードでクラスタリング係数を計算します
- Benford DCT + MinHash:引用数とサンプルサイズに先頭桁分析を適用し、シード付きシミュレーションで DCT 異常を推定し、タイトルハッシュの比較によってペアごとの Jaccard 推定値を計算します
- Do-calculus + Dirichlet CRP:引用グラフを通じて、TERGM で重大度の高いノードから BFS を実行し、ヒューリスティックに d-分離を確認して、汚染の強さに応じて経路をクラスタリングします
- ベイズ的驚き度:引用数から導出した統計量を尤度として正規-正規共役更新を適用し、標準正規事前分布との KL ダイバージェンスを計算します
- Platt スケーリングの固定点:7 つすべての検出器の出力に対して較正ロジスティックフィットを反復し、較正傾きが安定すると収束します
フェーズ 4 — スタンバイモードでの配信
サーバーは Apify Standby モードで、Express HTTP サーバー上で動作します。/mcp への POST ごとに、新しい McpServer と StreamableHTTPServerTransport をインスタンス化し、リクエストを処理した後、接続が閉じられた際に破棄します。このリクエストごとにステートレスな設計により、異なるユーザーからの同時セッション間の分離を確実にします。
最良の結果を得るためのヒント
-
対象を絞った監査には、著者名と所属機関を使用します。 「Brian Wansink Cornell food psychology」のようなクエリでは、範囲が絞られた論文コーパスが得られ、GRIM/SPRITE のフラグが特に有用です。「nutrition psychology」のような一般的なクエリでは、p カーブによる分野レベルの分析に適した、より幅広いコーパスが得られます。
-
包括的な監査では、ツールを正しい順序で連携させます。 まず
analyze_p_curve_z_curveで分野レベルのシグナルを評価し、次にfit_selection_model_meta_analysisで出版バイアスを補正した効果量を推定し、その後detect_citation_network_anomaliesで、その効果が引用カルテルによって増幅されていないか確認します。 -
EDR と ERR を併せて解釈します。 EDR が 0.40 未満で、ERR が 0.30 未満の場合、真の効果がある研究は 40% 未満で、再現される研究は 30% 未満である文献群を示しています。モデル上、EDR が ERR を下回ることはありえず、コーパスのデータ品質に問題があることを示します。
-
GRIM 違反の解釈には、データが整数値に制約されるかどうかを考慮する必要があります。 GRIM の不一致が意味を持つのは、リッカート尺度など、整数値に制約されるデータの場合に限られます。連続測定尺度での GRIM_fail は偽陽性です。結論を出す前に、論文の測定手法を確認してください。
-
citationGini が高い(> 0.70)場合は警戒が必要ですが、操作の証拠ではありません。 自然な勝者総取り型の引用動態によって、競争の激しい分野では Gini が 0.65 を超えることがあります。より強いシグナルを得るには、
detect_citation_network_anomaliesの TERGM 係数と組み合わせてください。 -
self_calibrate_detectionは他のツールを実行した後、最後に実行します。 このツールは、同じコーパスに基づいてパイプラインの信頼性を評価します。特定のクエリで overallBrier が高い(> 0.15)場合、そのコーパスには信頼性の高い検出に必要な統計的シグナル密度が不足していたことを示します。そのクエリによる他の結果も、いっそう慎重に扱ってください。 -
Apify を使って毎週のモニタリングをスケジュールします。 論文の撤回や引用の蓄積に伴い、研究公正性に関するシグナルは変化します。ジャーナルや著者を対象に
detect_citation_network_anomaliesを毎週実行するようスケジュールすると、一度だけのスナップショットよりもはるかに診断に役立つ時系列が得られます。
他の Apify アクターとの組み合わせ
| アクター | 組み合わせ方法 |
|---|---|
| Company Deep Research | 不正のシグナルが強い著者を特定した後、その著者が所属する機関やスピンオフ企業について企業の詳細調査を行い、金銭的な利益相反がないか確認します |
| Website Content to Markdown | 撤回通知、PubPeer のコメントスレッド、またはジャーナルの編集通知を、後続の LLM 分析に使える構造化された Markdown に変換します |
| WHOIS Domain Lookup | 引用分析でフラグが立ったハゲタカジャーナルについて、ドメインの登録日と登録者情報を確認し、出所を検証します |
| Trustpilot Review Analyzer | 引用の異常から特定の出版媒体が示された場合、コミュニティのレビュー用データベースでジャーナルや出版社の評判を照合します |
| Website Change Monitor | フラグが立ったジャーナルのウェブサイトや撤回データベースを監視し、引用ネットワーク分析で特定された論文に関連する新たな撤回が掲載されていないか確認します |
| B2B Lead Qualifier | 研究公正性コンサルティング会社の場合、企業の研究費支出と過去の監査履歴を照合して見込み顧客を評価します |
| Multi-Review Analyzer | 複数のプラットフォームにわたって、フラグが立った研究者や機関に関するコミュニティレビューをスクレイピングして分析し、裏付けとなるシグナルを探します |
制限事項
- GRIM と SPRITE は、整数制約のあるデータにのみ適用されます。 連続測定値、パーセンテージ、対数変換された値には適用できません。整数以外のデータに適用すると、誤解を招くフラグが出力されます。
- P-curve と z-curve で形状を信頼性高く推定するには、有意な p 値が少なくとも 10 個必要です。 論文が 1 件のみのクエリや、公開済みの結果が少ない狭いトピックでは、検出力の低い分析となり、EDR/ERR の信頼区間が広くなります。
- 引用ネットワークの構築では、近接性に基づいてエッジを推定します。 基盤となるデータベースから完全な引用メタデータを取得できない場合、構築したコーパス内での共起順に基づいて引用エッジを推定します。これはヒューリスティックな近似であり、真の計量書誌学的な引用グラフではありません。
- Benford DCT によるフォレンジック分析は、スクリーニングの指標であり、操作の証拠ではありません。 このサーバーの DCT 異常値は、実際の画像ファイルから算出したものではなく、コーパスメタデータをもとにシミュレーションされています。このツールはトリアージに使用し、結論を出すためには使用しないでください。
- MinHash の類似性判定では、タイトルのみをハッシュ化します。 コンテンツ全体を対象とする剽窃検出には、論文の全文が必要ですが、このパイプラインでは取得しません。タイトルが異なる重複を見逃す偽陰性がよく発生します。
- Do-calculus の d-separation は近似的な判定です。 識別可能性のチェックでは、完全な Pearl の do-calculus ソルバーではなく、ヒューリスティックな BFS ベースの評価を使用します。識別不可能な経路が、誤って識別可能と判定される場合があります。
- サーバーはペイウォールのある全文にはアクセスできません。 16 個すべてのデータソースは、公開 API とオープンアクセスのリポジトリです。機関向けのジャーナル購読を通じてのみ入手可能な論文は、分析対象のコーパスに含まれません。
- 小規模なコーパスでは、自己較正が循環的になります。 構築したネットワーク内の論文が約 30 件未満の場合、固定点較正ループは自明な解に収束します。Godelian の自己参照深度は、意味のある収束診断値ではなく、低い値(1~2)を報告します。
インテグレーション
- Zapier — ジャーナルのウォッチリストで新しい論文にフラグが付いたときに、不正検出スクリーニングを自動的に実行します
- Make — 重大度の高い GRIM フラグを Notion または Airtable のレビューキューに振り分ける、複数ステップのワークフローを構築します
- Google Sheets — 引用異常スコアと HARKing の確率を、ウォッチリストに登録した分野の継続的な追跡用スプレッドシートに送ります
- Apify API — Python、JavaScript、または任意の HTTP クライアントから 8 個のツールのいずれかを呼び出し、より大規模な研究パイプラインの一部として実行します
- Webhooks — ツール呼び出しの完了時、または実行結果の異常スコアが設定可能なしきい値を超えたときに、POST 通知を受け取ります
- LangChain / LlamaIndex — この MCP サーバーを、回答を生成する前に科学的主張をリアルタイムで評価する LLM エージェントに接続します
トラブルシューティング
-
異常を想定しているのに、ツールがごく少数のフラグしか返さない — 組み立てられたコーパスが小さい可能性があります。より広範なクエリ(特定の論文ではなく、研究分野など)を試して、16 のソースからより多くの論文を取得してください。20 件未満の論文しか返さないクエリでは、GRIM と p カーブの結果を統計的に十分な精度で得られません。
-
すべてのクエリで
selectionSeverityが非常に高い(> 5) — 効果量にばらつきのある研究がコーパスにごくわずかしか含まれていないと、このような結果になることがあります。その場合、DerSimonian-Laird 推定量によって tau-squared が不安定になります。これはデータ不足によるアーティファクトであり、実際の出版バイアスを示すものではありません。 -
支出上限に達したというエラー —
eventChargeLimitReachedフラグは、ツールの処理が完了する前に、設定済みの実行ごとの支出上限に達したことを意味します。Apify の実行設定で上限を引き上げるか、分析を複数のセッションに分けてください。 -
サーバーが GET /mcp に対して 405 Method Not Allowed を返す — MCP エンドポイントが受け付けるのは POST リクエストのみです。MCP プロトコル仕様に従い、GET は設計上ブロックされています。JSON-RPC ボディを指定して POST を使用してください。
-
z-curve の EDR が 1.0 を超える、または負の値になる — これは縮退した EM 解を示しており、通常はコーパス内の p 値が単一の値に集中しているか、クエリから有意な p 値が返されなかったことが原因です。より広範なトピック語を追加して、論文コーパスに多様性を持たせてください。
責任ある利用
- このサーバーがクエリするのは、一般に公開されている学術データベース、政府の研究ポータル、オープンアクセスのリポジトリのみです。
- これらのツールが特定する統計的な異常はスクリーニングの指標であり、不正行為や研究不正の証拠ではありません。結果に基づいて行動する前に、必ず専門的な判断を加えてください。
- 有資格の統計専門家または研究公正の専門家による独立した検証なしに、このツールの出力を使って公に非難しないでください。
- 各データソース(OpenAlex CC0、PubMed public API、Crossref public API など)の利用規約を遵守してください。
- ウェブスクレイピングとデータ集約の責任ある利用については、Apify のウェブスクレイピングの合法性に関するガイドをご覧ください。
FAQ
この MCP サーバーでは、科学的不正をどのように検出しますか? 各ツール呼び出しでは、16 の学術データソースに並列でクエリを実行して研究ネットワークを組み立てた後、特定の法科学的アルゴリズムを適用します。統計的一貫性には GRIM/SPRITE、p ハッキングの検出には p カーブ/z カーブの EM、出版バイアスには Vevea-Hedges 選択モデル、引用操作には TERGM、データの法科学的分析には Benford DCT + MinHash、汚染経路の追跡には do-calculus、HARKing の検出にはベイズ的サプライズを使用します。
GRIM 検定は、捏造データの検出にどれほど正確ですか? 基礎となるデータが真に整数値である場合(例:リッカート尺度)、GRIM の偽陽性率は非常に低くなります。Brown と Heathers による研究(2017 年)では、社会心理学分野の論文サンプルの 50% で GRIM の失敗が見つかりました。ただし、GRIM がフラグを立てるのは数学的に不可能な値だけです。GRIM について知っているデータ捏造者であれば、GRIM と整合する偽データを作成できます。
各ツール呼び出しでは、論文を何件分析しますか? 各ツール呼び出しでは、16 のソースから最大 460 件の生レコードを取得します(OpenAlex ≤80、PubMed ≤80、Semantic Scholar ≤80、Crossref ≤60、CORE ≤60、DBLP ≤60、arXiv ≤60、Europe PMC ≤60、ORCID ≤40、NIH Grants ≤40、ClinicalTrials.gov ≤40、Wayback Machine ≤30、GitHub ≤30、USPTO ≤30、Hacker News ≤30、ウェブサイトのスクレイピング ≤1)。重複排除とネットワークの組み立て後、通常は 50~200 件の一意な論文ノードを対象に分析します。
z-curve 分析における EDR と ERR の違いは何ですか? Expected Discovery Rate(期待発見率、EDR)は、検定したすべての仮説(有意・非有意を問わず)のうち、真の効果に対応する割合を推定します。Expected Replication Rate(期待再現率、ERR)は、有意な結果を無作為に選んだ場合に、同じサンプルサイズで直接追試を行うと再現される確率を推定します。ERR は、元の効果量推定を過大にした選択的報告を考慮するため、通常 EDR より低くなります。 このツールで科学的不正を決定的に証明できますか? いいえ。これらは、問題のある研究慣行と一致するパターンを特定する統計的スクリーニングツールです。GRIM の失敗率の高さ、平坦な p カーブ、極端な自己引用スコアは、調査に値する危険信号であり、不正の証拠ではありません。最終的な判断には、資格を持つ統計専門家による独立した検証と、機関による調査が必要です。
StatCheck や GRIM テスト計算ツールとはどのように違いますか? StatCheck やウェブベースの GRIM 計算ツールでは、統計値を個別に手動で貼り付けるか、論文を 1 件アップロードする必要があります。この MCP サーバーは、16 の稼働中データベースから論文コーパス全体を構築し、コーパス全体に対して GRIM/SPRITE/Benford 分析を同時に適用するとともに、他の 7 つのフォレンジックツールと連携します。これらすべてを、AI アシスタントまたは API クライアントからの 1 回のツール呼び出しで実行できます。
公開済みの研究を監査するために、このツールを使用することは合法ですか? 16 のデータソースはすべて、一般公開されている学術データベースおよび政府ポータルです。研究公正の目的で公開済みの書誌データを分析することの合法性に疑いの余地はありません。データアクセスとスクレイピングの合法性については、Apifyのガイドをご覧ください。
通常、ツール呼び出しにはどのくらい時間がかかりますか?
各ツール呼び出しでは、16 個の Actor が並列グループで起動し、各 Actor のタイムアウトは 180 秒です。データベースの応答時間やコーパスのサイズにもよりますが、通常の実行時間は 30~90 秒です。外側の Promise.all グループにより、合計時間はすべての Actor の実行時間の合計ではなく、最も遅い並列グループの実行時間で決まります。
科学的不正の検出を自動的に定期実行できますか? はい。Apify に組み込まれているスケジューラーを使えば、任意の間隔でツール呼び出しを実行できます。たとえば、毎日のジャーナル監視、毎週の著者追跡、毎月の分野レベルの評価が可能です。Webhook と組み合わせることで、結果を Slack、メール、Notion データベースに自動的に送信できます。
16 のデータソースのうち 1 つが利用できない場合はどうなりますか? 各 Actor 呼び出しは try/catch でラップされており、失敗した場合は空の配列を返します。ネットワークの構築は、取得に成功したデータを使って続行されます。1 つのソースが停止しても分析はクラッシュせず、論文コーパスのサイズが小さくなり、フォレンジックアルゴリズムの統計的検出力が低下する可能性があるだけです。
自己キャリブレーションツールはどのように機能しますか?
self_calibrate_detection は、同じコーパスに対して 7 つの検出器すべてを実行し、他の検出器を擬似的な正解データとして参照しながら、各検出器のスコアに Platt スケーリング(ロジスティックキャリブレーション)を適用します。固定点ループは、キャリブレーションの傾きが安定するまで反復します。Godel 自己参照深度の指標は、収束が起きた再帰レベルを示します。値が高いほど、キャリブレーションの構造が複雑であることを意味します。
MCP 対応の AI アシスタントであれば、どれでも使用できますか?
はい。このサーバーは HTTP(Streamable HTTP トランスポート)経由で MCP プロトコルを実装しており、Claude Desktop、Cursor、Windsurf、および MCP の tools/call メソッドに対応するその他のクライアントと互換性があります。エンドポイントは https://scientific-fraud-detection-mcp.apify.actor/mcp です。
改善にご協力ください
問題が発生した場合は、Apify アカウントで実行の共有を有効にすると、より迅速なデバッグにご協力いただけます。
- アカウント設定 > プライバシーに移動します
- 実行を公開 Actor 作成者と共有を有効にします
これにより、問題が発生したときに実行の詳細を確認できるようになり、より迅速に問題を修正できます。データを確認できるのは Actor の開発者のみであり、一般公開されることはありません。
サポート
バグを見つけた場合や機能のリクエストがある場合は、この Actor のページにあるIssues タブで課題を報告してください。研究公正のためのカスタムパイプライン、データソースの拡張連携、エンタープライズ向けのユースケースについては、Apify プラットフォームからお問い合わせください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。