Skip to main content
Glama
hajifkd

inspirehep-mcp

by hajifkd
README.md
## inspirehep-mcp

INSPIRE-HEP (`https://inspirehep.net`) の文献検索を提供する、Python 製の MCP サーバーです。

## Features

- `inspirehep_search_by_title`: タイトル文字列で論文検索
- `inspirehep_search_by_fulltext`: 本文(full text)キーワードで論文検索
- `inspirehep_search_by_author`: 著者名で論文検索
- どちらのツールもデフォルトで巨大コラボ論文を除外(`large_collaboration=false`)
- 返却項目を最小化してコンテキスト消費を抑制
  - `title`
  - `authors`
  - `abstract`
  - `year`
  - `citation_count`
  - `arxiv_url` (存在する場合のみ)

## Setup

```bash
uv sync
```

## Run (stdio MCP server)

```bash
uv run inspirehep-mcp
```

or 

```bash
uvx --from git+https://github.com/hajifkd/inspirehep-mcp inspirehep-mcp
```

## Run with MCP Inspector

```bash
npx -y @modelcontextprotocol/inspector uv run inspirehep-mcp
```

ターミナルに表示される URL をブラウザで開いてテストできます。

## Tool Inputs

共通:

- `large_collaboration` (default: `false`)
- `sort_by_citation` (default: `true`)
  - `true`: citation数順
  - `false`: 日付の新しい順
- `year` (optional, 例: `2020`)
- `limit` (default: `20`)

タイトル検索:

- `title` (required)

本文検索:

- `fulltext` (required)

著者検索:

- `author` (required, string配列)

## Test

```bash
uv run pytest
```

TDQS

B3.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: searching by author, full text, or title. There is no overlap in functionality, and an agent can easily tell them apart based on the search parameter.

Naming Consistency5/5

All tool names follow a consistent pattern: 'inspirehep_search_by_' followed by the search parameter (author, fulltext, title). This verb_noun structure is uniform and predictable throughout the set.

Tool Count3/5

With only 3 tools, the server feels thin for a literature search domain. While the tools cover basic search methods, the scope is limited, and more operations (e.g., filtering, sorting, or retrieving specific records) might be expected for a comprehensive search interface.

Completeness2/5

The tool surface is severely incomplete for a literature search server. It only offers search functionality without any way to retrieve, update, or manage records (e.g., get_by_id, list_results, or advanced filtering). This creates significant gaps that could lead to agent failures when trying to perform full workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues