doaj-discovery-mcp

doaj-discovery-mcp

Costless-first Model Context Protocol server for discovering DOAJ-indexed journals and articles.

Category
访问服务器

README

<div align="center">

<img src="https://doaj-discovery-mcp-hbyczavkfq-ew.a.run.app/icon.svg" width="72" height="72" alt="">

DOAJ Discovery MCP

Search the Directory of Open Access Journals from any AI client — no account, no API key, no payment

Claude Code compatible Node MCP SDK Tools Transport License

Problem · Tools · Quick Start · Local · Docker · Privacy · Development · Deployment

</div>


🎯 The Problem

The DOAJ indexes over 23,000 peer-reviewed open access journals, but finding the right one is manual work. Its API speaks Elasticsearch query syntax — bare multi-word searches are AND-ed together, so a natural-language question or a pasted abstract silently returns nothing. Filtering by article processing charge, licence, publisher country, or language means knowing field paths like bibjson.apc.has_apc and that DOAJ stores "NL" rather than "Netherlands".

Meanwhile, an AI assistant asked "which no-fee journals publish Syriac manuscript studies?" will answer from training data — plausible journal names, stale APC policies, no verifiable links.

This server closes that gap. It translates plain-language questions and manuscript abstracts into valid DOAJ queries, applies real metadata filters server-side, ranks candidates locally, and returns source links for verification.

[!NOTE] Public beta. Free to use, no uptime SLA. Verify important results on DOAJ and the journal's own website.

[!IMPORTANT] Independent project. DOAJ Discovery MCP is an independent, unofficial open-source project. It is not affiliated with, endorsed by, sponsored by, or operated by DOAJ.


🧰 Tools

Eight read-only tools. None performs editorial review, acceptance prediction, compliance checking, or publishing decisions.

Tool Key inputs What it does
search_doaj_journals query, country, language, license, noApcOnly, strict Journal search with DOAJ-side metadata filters and local lexical ranking
search_doaj_articles query, limit, strict Article search with local lexical ranking
recommend_doaj_journals_for_manuscript abstract, title, preferredLanguage, preferredCountry, noApcOnly Manuscript-fit discovery candidates from an abstract
find_diamond_oa_journals query, limit No-fee journals via the bibjson.apc.has_apc:false filter
find_similar_doaj_articles abstract, title Articles similar to a given abstract
get_doaj_journal_by_issn issn Direct lookup by print or electronic ISSN
get_doaj_article_by_doi doi Direct lookup by DOI
explain_doaj_metadata term Explains APC, licence, language, ISSN, diamond OA — fully local, no network call

Every search response includes the effective DOAJ query it ran, the upstream total, and how many results were returned, so you can see and audit what was actually asked.

Why connect this instead of asking directly?

An AI client can query current DOAJ metadata rather than relying on model memory. It can find journal or article candidates, identify no-APC records, rank results for a topic, and preserve links for verification. The connection exposes no private DOAJ data.


🚀 Quick Start

Remote (Streamable HTTP)

No account, API key, or payment required. Add this URL:

https://doaj-discovery-mcp-hbyczavkfq-ew.a.run.app/mcp
Client Where to add it
Claude (paid plans) Settings → Connectors → Add custom connector
ChatGPT (Business, Enterprise, Edu) Settings → Apps, developer mode enabled, created by an authorized admin or developer
Codex / other MCP clients Add as a remote Streamable HTTP MCP server

Client availability and menu names change. See the current Claude connector guide and ChatGPT developer mode guide.

Local (stdio)

For clients that launch MCP servers as a subprocess:

npm ci && npm run build
{
  "mcpServers": {
    "doaj-discovery": {
      "command": "node",
      "args": ["/absolute/path/to/doaj-discovery-mcp/dist/src/stdio.js"]
    }
  }
}

💻 Run Locally

Requires Node.js 22 or newer.

npm ci
cp .env.example .env
npm run dev

Open http://localhost:3000/. The MCP endpoint is http://localhost:3000/mcp; health is http://localhost:3000/health. For the stdio transport instead, run npm run dev:stdio.

Configuration is documented in .env.example. The public DOAJ API is used without an API key.


🐳 Docker

docker build -t doaj-discovery-mcp .
docker run --rm -p 3000:3000 --env-file .env doaj-discovery-mcp

🔒 Privacy

Do not send confidential, unpublished, personal, or sensitive manuscript text to the public service. Requests pass through Google Cloud and the public DOAJ API. Query text and abstracts are not intentionally persisted by the application, and production caching is disabled. Read PRIVACY.md for details.


🛠 Development

npm run check                 # tests, build, lint, format check
DOAJ_LIVE_TEST=1 npm test     # additionally hit the real DOAJ API
docker build -t doaj-discovery-mcp:local .

The live tests are skipped by default so CI stays hermetic. They exist as a regression guard: a DOAJ query can be syntactically valid and still match zero records, which unit tests with a stubbed fetch cannot detect.

See CONTRIBUTING.md and the MIT License.


☁️ Deployment

Pushes to main are verified by CI and then deployed to Google Cloud Run through keyless Workload Identity Federation. See docs/CLOUD_RUN.md.

  • Landing page: https://doaj-discovery-mcp-hbyczavkfq-ew.a.run.app/
  • Health: https://doaj-discovery-mcp-hbyczavkfq-ew.a.run.app/health
  • Issues: https://github.com/ramiramirez-nl/doaj-discovery-mcp/issues

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选