Skip to main content
Glama
README.md
# jstage-mcp-server

An MCP server for searching Japanese scientific articles and publications on **J-STAGE** (the JST platform — Japan Science and Technology Agency).

- Unlike NCBI, J-STAGE does not require an API key
- It has only ۳ types of services (journal search, issue list, article search), not ۱۱
- It returns **metadata only**, not full text — for full text, you need to go to the publisher's site using the `link`/`doi` field of each result

---

## Step ۰: Prerequisites

- Node.js version ۱۸ or higher (because of global `fetch`)
- npm

## Step ۱: Installation

```bash
git clone <download or copy this folder>
cd jstage-mcp-server
npm install
```

## Step ۲: Compilation

```bash
npm run build
```

This creates the `build/` folder with the compiled JavaScript files.

## Step ۳: Local testing with MCP Inspector

Before connecting it to Claude, it's better to make sure the server works correctly with the official MCP testing tool:

```bash
npx @modelcontextprotocol/inspector node build/index.js
```

This opens a local web interface where you can directly call the `jstage_search_articles`, `jstage_search_journals`, `jstage_list_volumes` tools and see the actual J-STAGE response — without Claude being involved at all.

Sample input for testing `jstage_search_articles`:
```json
{ "keyword": "人工知能", "count": 5 }
```
(“人工知能” means “artificial intelligence” — since most J-STAGE content is Japanese, searching in Japanese usually gives better results)

## Step ۴: Connecting to Claude Desktop (stdio mode — local)

Open the Claude Desktop configuration file (usually `claude_desktop_config.json`) and add this:

```json
{
  "mcpServers": {
    "jstage": {
      "command": "node",
      "args": ["/full/path/to/jstage-mcp-server/build/index.js"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio"
      }
    }
  }
}
```

After saving, restart Claude Desktop. Now you can say: “Find an article about such-and-such topic on J-STAGE”.

## Step ۵: Connecting to Claude Code

```bash
claude mcp add --transport stdio jstage node /full/path/to/jstage-mcp-server/build/index.js
```

Then you can check that the server is connected with `/mcp`.

## Step ۶: Deploying for remote access (Claude.ai web)

To allow Claude.ai (the web version) to connect to it as well, you need to run the HTTP server at a public address.

### Local HTTP testing
```bash
MCP_TRANSPORT_TYPE=http npm run start:http
# the server listens on http://localhost:3011/mcp
```

### Actual deployment
Since this server uses Express (rather than just an API route like the Next.js example), the simplest options are:
- **Docker** on any VPS (for example, a simple `Dockerfile` with `CMD ["node", "build/index.js"]` and `ENV MCP_TRANSPORT_TYPE=http`)
- **Railway / Render / Fly.io** — these directly deploy ordinary Node.js apps from a repository

After deployment, in **Claude.ai → Settings → Connectors → Add custom connector**, provide the address `https://your-domain.com/mcp`.

---

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation4/5

The tools are broadly distinct: search articles, search journals, list volumes, and fetch article details. There is slight overlap because jstage_search_articles already returns abstracts, while jstage_fetch_article_abstract_and_references also fetches abstracts in addition to references.

Naming Consistency5/5

All tool names consistently use the jstage_ prefix followed by a clear verb_noun pattern: search_articles, search_journals, list_volumes, fetch_article_abstract_and_references. Naming is unambiguous and easy to predict.

Tool Count5/5

Four tools is a well-scoped size for a specialized J-STAGE metadata and journal navigation server. Each tool has a meaningful role and the count does not feel padded or insufficient.

Completeness3/5

The set covers journal discovery, article search, volume listing, and fetching article-level details, but there is a notable gap: after listing volumes, there is no tool to retrieve the articles within a specific volume or issue. Full-text access is explicitly out of scope, but the volume browsing workflow is left incomplete.

Maintenance

ActivityMaintained
ResponsivenessNo issues