paper-mcp

Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.

使うべきか

品質と安全性

B
説明の品質
89%
スキーマの完全性
75%
命名の品質
96%
ポイズニングのリスク
80%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(6)

  • HIGHTool poisoning patterns detected
  • LOWTool 'get_paper_citations' description lacks action verbget_paper_citations 内
  • LOWTool 'get_paper_references' description lacks action verbget_paper_references 内
  • LOWTool 'get_author' description lacks action verbget_author 内
  • LOWTool 'recommend_papers_from_examples' description lacks action verbrecommend_papers_from_examples 内
  • INFOTool description contains placeholder or incomplete textget_openalex_work 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~4,401トークン数(ツール定義)
~732 B一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 3.44%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "paper-mcp": {
      "url": "https://latex-tools.online/mcp"
    }
  }
}

リモートエンドポイント

https://latex-tools.online/mcpstreamable-http

できること

ツール一覧

ツール(41)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢search_papers(query, source, max_results, start, sort_by)

Search academic papers. Returns normalized hits with a short abstract preview; call get_paper for the full record.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "source": {
      "default": "arxiv",
      "title": "Source",
      "type": "string"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "title": "Start",
      "type": "integer"
    },
    "sort_by": {
      "default": "relevance",
      "title": "Sort By",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_papersArguments"
}
🟢search_all(query, max_results, sources, per_source)

Aggregated search across arXiv, Semantic Scholar and OpenAlex at once. Fans out concurrently, de-duplicates the same work across corpora (by DOI or title) and re-ranks with Reciprocal Rank Fusion, so papers found by several sources rank highest. Each hit lists which `sources` found it and an `ids` map ({source: id}) you can pass to get_paper / read_paper / the citation tools. Prefer this over search_papers for a broad lookup.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    },
    "sources": {
      "default": "arxiv,semanticscholar,openalex",
      "title": "Sources",
      "type": "string"
    },
    "per_source": {
      "default": 0,
      "title": "Per Source",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_allArguments"
}
🟢search_medical(query, study_types, year_from, max_results, fetch_fulltext)

Evidence-graded MEDICAL literature search (PubMed + Europe PMC). Unlike search_all (generic, ranks high-cited reviews/guidelines above trials), this filters by research type via PubMed Publication-Type tags and re-ranks by the evidence pyramid (meta-analysis / systematic review > RCT > cohort > ...), so the actual clinical trials surface first. Open-access full text is pulled from Europe PMC by PMID. `query` should be English keyword/boolean text (PubMed maps it); do natural-language/multilingual understanding upstream. Returns hits with pmid/doi/study_type/evidence_level/citations/abstract and, when open-access, fulltext.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "study_types": {
      "default": "rct,meta-analysis,systematic-review",
      "title": "Study Types",
      "type": "string"
    },
    "year_from": {
      "default": 0,
      "title": "Year From",
      "type": "integer"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    },
    "fetch_fulltext": {
      "default": true,
      "title": "Fetch Fulltext",
      "type": "boolean"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_medicalArguments"
}
🟢get_paper(paper_id, source)

Fetch one paper by id, with full abstract and PDF link.

入力スキーマ

{
  "type": "object",
  "properties": {
    "paper_id": {
      "title": "Paper Id",
      "type": "string"
    },
    "source": {
      "default": "arxiv",
      "title": "Source",
      "type": "string"
    }
  },
  "required": [
    "paper_id"
  ],
  "title": "get_paperArguments"
}
🟢search_by_author(author, source, max_results, start)

Find papers by a specific author, newest first.

入力スキーマ

{
  "type": "object",
  "properties": {
    "author": {
      "title": "Author",
      "type": "string"
    },
    "source": {
      "default": "arxiv",
      "title": "Source",
      "type": "string"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "title": "Start",
      "type": "integer"
    }
  },
  "required": [
    "author"
  ],
  "title": "search_by_authorArguments"
}
🟢list_recent(category, source, max_results, start)

List the latest papers in a subject category, newest first.

入力スキーマ

{
  "type": "object",
  "properties": {
    "category": {
      "title": "Category",
      "type": "string"
    },
    "source": {
      "default": "arxiv",
      "title": "Source",
      "type": "string"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "title": "Start",
      "type": "integer"
    }
  },
  "required": [
    "category"
  ],
  "title": "list_recentArguments"
}
🟢list_categories(source)

List common subject category codes for filtering/recent.

入力スキーマ

{
  "type": "object",
  "properties": {
    "source": {
      "default": "arxiv",
      "title": "Source",
      "type": "string"
    }
  },
  "title": "list_categoriesArguments"
}
🟢read_paper(paper_id, format, source)

Read a paper's full text. format='markdown' (default, body with formulas as $LaTeX$), 'html' (raw LaTeXML HTML), or 'latex' (the original LaTeX manuscript from the e-print source). arXiv only; id like 2401.01234.

入力スキーマ

{
  "type": "object",
  "properties": {
    "paper_id": {
      "title": "Paper Id",
      "type": "string"
    },
    "format": {
      "default": "markdown",
      "title": "Format",
      "type": "string"
    },
    "source": {
      "default": "arxiv",
      "title": "Source",
      "type": "string"
    }
  },
  "required": [
    "paper_id"
  ],
  "title": "read_paperArguments"
}
🟢list_paper_sources

List available paper corpora.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "title": "list_paper_sourcesArguments"
}
⚪recognize_formula(image_url, image_base64, model)

Recognize a math formula from an image and return LaTeX. Provide image_url (downloaded server-side) OR image_base64. model: deepseek-ocr (default), paddleocr-vl, or texify. Returns {latex, model, elapsed_ms}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "image_url": {
      "default": "",
      "title": "Image Url",
      "type": "string"
    },
    "image_base64": {
      "default": "",
      "title": "Image Base64",
      "type": "string"
    },
    "model": {
      "default": "deepseek-ocr",
      "title": "Model",
      "type": "string"
    }
  },
  "title": "recognize_formulaArguments"
}
⚪recognize_table(image_url, image_base64, model)

Recognize a table from an image and return LaTeX tabular code. Provide image_url OR image_base64. model: deepseek-ocr (default), paddleocr-vl, or texify. Returns {latex, model, elapsed_ms}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "image_url": {
      "default": "",
      "title": "Image Url",
      "type": "string"
    },
    "image_base64": {
      "default": "",
      "title": "Image Base64",
      "type": "string"
    },
    "model": {
      "default": "deepseek-ocr",
      "title": "Model",
      "type": "string"
    }
  },
  "title": "recognize_tableArguments"
}
🟢list_ocr_models

List the OCR models available for recognize_formula / recognize_table.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "title": "list_ocr_modelsArguments"
}
⚪lint_latex(code)

Lint a LaTeX snippet: report errors and return an auto-fixed version. Input `code` (the LaTeX source). Returns {errors, fixed_code, summary_en, summary_zh, elapsed_ms}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "code": {
      "title": "Code",
      "type": "string"
    }
  },
  "required": [
    "code"
  ],
  "title": "lint_latexArguments"
}
🟢extract_pdf(pdf_url, pdf_base64, formula, table)

Extract a PDF to clean Markdown/LaTeX text via MinerU (great for papers behind no open-access full text — give the user's PDF and get readable text back). Provide pdf_url (downloaded server-side, SSRF-guarded) OR pdf_base64. formula/table toggle math/table reconstruction. Returns {task_id, status, cached, content, chars}: a recently-seen (cached) or small PDF comes back with `content` in one call; a fresh PDF (MinerU is GPU-heavy, minutes) returns status='running' + a task_id — then call extract_pdf_result(task_id) to fetch the text.

入力スキーマ

{
  "type": "object",
  "properties": {
    "pdf_url": {
      "default": "",
      "title": "Pdf Url",
      "type": "string"
    },
    "pdf_base64": {
      "default": "",
      "title": "Pdf Base64",
      "type": "string"
    },
    "formula": {
      "default": true,
      "title": "Formula",
      "type": "boolean"
    },
    "table": {
      "default": true,
      "title": "Table",
      "type": "boolean"
    }
  },
  "title": "extract_pdfArguments"
}
🟢extract_pdf_result(task_id)

Fetch the result of an extract_pdf job by task_id. Returns {task_id, status, content, chars}: `content` is the extracted text once status='done'; while still 'running' content is null — call again shortly. Results expire server-side, so fetch reasonably soon.

入力スキーマ

{
  "type": "object",
  "properties": {
    "task_id": {
      "title": "Task Id",
      "type": "string"
    }
  },
  "required": [
    "task_id"
  ],
  "title": "extract_pdf_resultArguments"
}
🟢get_paper_citations(paper_id, max_results, start)

Semantic Scholar: papers that CITE this one (forward citation graph). id accepts S2 id / DOI: / ARXIV: / CorpusId:.

入力スキーマ

{
  "type": "object",
  "properties": {
    "paper_id": {
      "title": "Paper Id",
      "type": "string"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "title": "Start",
      "type": "integer"
    }
  },
  "required": [
    "paper_id"
  ],
  "title": "get_paper_citationsArguments"
}
🟢get_paper_references(paper_id, max_results, start)

Semantic Scholar: papers this one REFERENCES (its bibliography). id accepts S2 id / DOI: / ARXIV: / CorpusId:.

入力スキーマ

{
  "type": "object",
  "properties": {
    "paper_id": {
      "title": "Paper Id",
      "type": "string"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "title": "Start",
      "type": "integer"
    }
  },
  "required": [
    "paper_id"
  ],
  "title": "get_paper_referencesArguments"
}
🟢get_paper_authors(paper_id, max_results, start)

Semantic Scholar: the authors of a paper (with h-index, paper/citation counts).

入力スキーマ

{
  "type": "object",
  "properties": {
    "paper_id": {
      "title": "Paper Id",
      "type": "string"
    },
    "max_results": {
      "default": 100,
      "title": "Max Results",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "title": "Start",
      "type": "integer"
    }
  },
  "required": [
    "paper_id"
  ],
  "title": "get_paper_authorsArguments"
}
🟢match_paper_title(title)

Semantic Scholar: find the single paper whose title best matches the given text (exact-match lookup).

入力スキーマ

{
  "type": "object",
  "properties": {
    "title": {
      "title": "Title",
      "type": "string"
    }
  },
  "required": [
    "title"
  ],
  "title": "match_paper_titleArguments"
}
🟢autocomplete_papers(query)

Semantic Scholar: autocomplete paper titles for a partial query (fast type-ahead).

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "title": "autocomplete_papersArguments"
}
🟢search_papers_bulk(query, sort, fields_of_study, year, venue, ...)

Semantic Scholar: bulk paper search (up to 1000 hits, sortable e.g. 'citationCount:desc' or 'publicationDate:desc', with a continuation token). Filters: fields_of_study, year (e.g. '2020-2024'), venue, publication_types, open_access_pdf.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "sort": {
      "default": "",
      "title": "Sort",
      "type": "string"
    },
    "fields_of_study": {
      "default": "",
      "title": "Fields Of Study",
      "type": "string"
    },
    "year": {
      "default": "",
      "title": "Year",
      "type": "string"
    },
    "venue": {
      "default": "",
      "title": "Venue",
      "type": "string"
    },
    "publication_types": {
      "default": "",
      "title": "Publication Types",
      "type": "string"
    },
    "open_access_pdf": {
      "default": false,
      "title": "Open Access Pdf",
      "type": "boolean"
    },
    "token": {
      "default": "",
      "title": "Token",
      "type": "string"
    },
    "max_results": {
      "default": 100,
      "title": "Max Results",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_papers_bulkArguments"
}
🟢get_papers_batch(ids)

Semantic Scholar: fetch many papers at once by id (S2/DOI:/ARXIV:/CorpusId:), up to ~500 per call.

入力スキーマ

{
  "type": "object",
  "properties": {
    "ids": {
      "items": {
        "type": "string"
      },
      "title": "Ids",
      "type": "array"
    }
  },
  "required": [
    "ids"
  ],
  "title": "get_papers_batchArguments"
}
🟢search_authors(query, max_results, start)

Semantic Scholar: search for authors by name; returns profiles with h-index and paper/citation counts.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "title": "Start",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_authorsArguments"
}
🟢get_author(author_id)

Semantic Scholar: a single author's profile by id.

入力スキーマ

{
  "type": "object",
  "properties": {
    "author_id": {
      "title": "Author Id",
      "type": "string"
    }
  },
  "required": [
    "author_id"
  ],
  "title": "get_authorArguments"
}
🟢get_author_papers(author_id, max_results, start)

Semantic Scholar: all papers by a given author id, newest first.

入力スキーマ

{
  "type": "object",
  "properties": {
    "author_id": {
      "title": "Author Id",
      "type": "string"
    },
    "max_results": {
      "default": 20,
      "title": "Max Results",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "title": "Start",
      "type": "integer"
    }
  },
  "required": [
    "author_id"
  ],
  "title": "get_author_papersArguments"
}
🟢get_authors_batch(ids)

Semantic Scholar: fetch many authors at once by id.

入力スキーマ

{
  "type": "object",
  "properties": {
    "ids": {
      "items": {
        "type": "string"
      },
      "title": "Ids",
      "type": "array"
    }
  },
  "required": [
    "ids"
  ],
  "title": "get_authors_batchArguments"
}
🟢search_snippets(query, max_results)

Semantic Scholar: search INSIDE paper full text and return matching text snippets (not just titles/abstracts).

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_snippetsArguments"
}
⚪recommend_papers_for_paper(paper_id, max_results, pool)

Semantic Scholar: recommend papers similar to one paper. pool='recent' (last open corpus) or 'all-cs' (all of CS). If the 'recent' pool yields nothing (common for older papers), it automatically retries the 'all-cs' pool.

入力スキーマ

{
  "type": "object",
  "properties": {
    "paper_id": {
      "title": "Paper Id",
      "type": "string"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    },
    "pool": {
      "default": "recent",
      "title": "Pool",
      "type": "string"
    }
  },
  "required": [
    "paper_id"
  ],
  "title": "recommend_papers_for_paperArguments"
}
⚪recommend_papers_from_examples(positive_ids, negative_ids, max_results)

Semantic Scholar: recommend papers from positive (and optional negative) example paper ids.

入力スキーマ

{
  "type": "object",
  "properties": {
    "positive_ids": {
      "items": {
        "type": "string"
      },
      "title": "Positive Ids",
      "type": "array"
    },
    "negative_ids": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Negative Ids"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    }
  },
  "required": [
    "positive_ids"
  ],
  "title": "recommend_papers_from_examplesArguments"
}
🟢list_dataset_releases

Semantic Scholar Datasets: list all available release ids (dated snapshots of the full corpus).

入力スキーマ

{
  "type": "object",
  "properties": {},
  "title": "list_dataset_releasesArguments"
}
🟢get_dataset_release(release_id)

Semantic Scholar Datasets: which datasets a release contains (papers, abstracts, citations, embeddings, s2orc, tldrs…). release_id defaults to 'latest'.

入力スキーマ

{
  "type": "object",
  "properties": {
    "release_id": {
      "default": "latest",
      "title": "Release Id",
      "type": "string"
    }
  },
  "title": "get_dataset_releaseArguments"
}
🟢get_dataset_download_links(dataset_name, release_id)

Semantic Scholar Datasets: get download links (presigned URLs) for one dataset in a release. Needs the API key.

入力スキーマ

{
  "type": "object",
  "properties": {
    "dataset_name": {
      "title": "Dataset Name",
      "type": "string"
    },
    "release_id": {
      "default": "latest",
      "title": "Release Id",
      "type": "string"
    }
  },
  "required": [
    "dataset_name"
  ],
  "title": "get_dataset_download_linksArguments"
}
🟢get_dataset_diffs(dataset_name, start_release, end_release)

Semantic Scholar Datasets: incremental diff (added/updated/deleted) for a dataset between two releases. Needs the key.

入力スキーマ

{
  "type": "object",
  "properties": {
    "dataset_name": {
      "title": "Dataset Name",
      "type": "string"
    },
    "start_release": {
      "title": "Start Release",
      "type": "string"
    },
    "end_release": {
      "default": "latest",
      "title": "End Release",
      "type": "string"
    }
  },
  "required": [
    "dataset_name",
    "start_release"
  ],
  "title": "get_dataset_diffsArguments"
}
🟢get_openalex_work(work_id)

OpenAlex: fetch one work's full record (316M-work, all-field corpus). id accepts OpenAlex Wxxxx, a DOI, or an arXiv id.

入力スキーマ

{
  "type": "object",
  "properties": {
    "work_id": {
      "title": "Work Id",
      "type": "string"
    }
  },
  "required": [
    "work_id"
  ],
  "title": "get_openalex_workArguments"
}
🟢get_openalex_citations(work_id, max_results, start)

OpenAlex: papers that CITE this work (forward citation graph), most-cited first.

入力スキーマ

{
  "type": "object",
  "properties": {
    "work_id": {
      "title": "Work Id",
      "type": "string"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "title": "Start",
      "type": "integer"
    }
  },
  "required": [
    "work_id"
  ],
  "title": "get_openalex_citationsArguments"
}
🟢get_openalex_references(work_id, max_results)

OpenAlex: the works this one REFERENCES (its bibliography).

入力スキーマ

{
  "type": "object",
  "properties": {
    "work_id": {
      "title": "Work Id",
      "type": "string"
    },
    "max_results": {
      "default": 25,
      "title": "Max Results",
      "type": "integer"
    }
  },
  "required": [
    "work_id"
  ],
  "title": "get_openalex_referencesArguments"
}
🟢search_openalex_authors(query, max_results, start)

OpenAlex: search authors; returns profiles with h-index, i10-index, works/citation counts and institutions.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "title": "Start",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_openalex_authorsArguments"
}
🟢search_openalex_institutions(query, max_results)

OpenAlex: search institutions (universities, labs) with ROR id, country, works/citation counts.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_openalex_institutionsArguments"
}
🟢search_openalex_works(query, from_year, to_year, is_oa, min_citations, ...)

OpenAlex: advanced filtered work search. Filters: from_year, to_year, is_oa (open access only), min_citations, institution_id. sort_by: relevance|newest|cited.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "default": "",
      "title": "Query",
      "type": "string"
    },
    "from_year": {
      "default": 0,
      "title": "From Year",
      "type": "integer"
    },
    "to_year": {
      "default": 0,
      "title": "To Year",
      "type": "integer"
    },
    "is_oa": {
      "default": false,
      "title": "Is Oa",
      "type": "boolean"
    },
    "min_citations": {
      "default": 0,
      "title": "Min Citations",
      "type": "integer"
    },
    "institution_id": {
      "default": "",
      "title": "Institution Id",
      "type": "string"
    },
    "sort_by": {
      "default": "relevance",
      "title": "Sort By",
      "type": "string"
    },
    "max_results": {
      "default": 25,
      "title": "Max Results",
      "type": "integer"
    }
  },
  "title": "search_openalex_worksArguments"
}
🟢get_openalex_trends(query, group_by)

OpenAlex: publication-trend analytics for a query — counts grouped by year (default), or by 'institutions.id', 'authorships.author.id', 'open_access.is_oa', 'type', 'language'. Returns aggregate counts only (cheap, no rows).

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "group_by": {
      "default": "publication_year",
      "title": "Group By",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "title": "get_openalex_trendsArguments"
}
🟢list_openalex_topics(query, max_results)

OpenAlex: search the topic taxonomy (~4500 topics) to find the right subject term for filtering or recent-work queries.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "max_results": {
      "default": 15,
      "title": "Max Results",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "list_openalex_topicsArguments"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 41 件
検証済みバージョンは記録されていませんツール 41 件
検証済みバージョンは記録されていませんツール 41 件