doaj-discovery-mcp
Costless-first Model Context Protocol server for discovering DOAJ-indexed journals and articles.
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
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
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。