doaj-discovery-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@doaj-discovery-mcpfind diamond OA journals in biology"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
🎯 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.
Public beta. Free to use, no uptime SLA. Verify important results on DOAJ and the journal's own website.
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.
Related MCP server: nara-mcp-server
🧰 Tools
Eight read-only tools. None performs editorial review, acceptance prediction, compliance checking, or publishing decisions.
Tool | Key inputs | What it does |
|
| Journal search with DOAJ-side metadata filters and local lexical ranking |
|
| Article search with local lexical ranking |
|
| Manuscript-fit discovery candidates from an abstract |
|
| No-fee journals via the |
|
| Articles similar to a given abstract |
|
| Direct lookup by print or electronic ISSN |
|
| Direct lookup by DOI |
|
| 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/mcpClient | 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 devOpen 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.
Available Tools
8 toolsexplain_doaj_metadataExplain DOAJ metadataARead-onlyIdempotent
Explain DOAJ metadata terms such as APC, license, language, ISSN, or diamond OA.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | The metadata term to explain, e.g. "APC", "diamond OA", "license", "ISSN", or "language". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description confirms it is explanatory, but adds no additional behavioral context beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One succinct sentence, front-loaded with the core action and examples. No unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple: it explains a term. The single parameter is well-defined, and no output schema is needed for an explanatory response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the parameter 'term' with examples. The tool description repeats those examples without adding new semantic information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool explains DOAJ metadata terms and gives specific examples (APC, license, etc.), distinguishing it from the sibling search and retrieval tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose strongly implies when to use it, but it does not explicitly contrast with alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_diamond_oa_journalsFind diamond OA journalsARead-onlyIdempotent
Find no-fee or diamond open-access DOAJ journals.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1-25). Defaults to 10. | |
| query | Yes | Search text: keywords, a topic, or a short phrase (e.g. "diamond open access economics"). Longer text is automatically broadened if a narrow match returns nothing. | |
| strict | No | If true, require every query term to match (AND) instead of relaxing to a broader OR match when the strict search returns nothing. Use for a well-defined, narrow query. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint) already fully disclose the behavioral profile. The description is consistent with these annotations and adds no contradictory or additional side-effect information, but also does not go beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that communicates the essential purpose without any fluff or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is clear on its own, but given the presence of sibling tools like search_doaj_journals, it could be more complete by noting that this tool is a specialized subset (filtering for no-fee or diamond OA). Still, the core context is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters (query, limit, strict) are fully described in the schema: types, defaults, and purpose. The strict parameter's behavior (AND vs OR) is explicitly explained, and limit has clear bounds. Schema description coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Find' and the specific resource: no-fee or diamond open-access DOAJ journals. It is unambiguous and directly conveys the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly indicate when to use this tool versus the sibling search_doaj_journals or other related tools. While the purpose is specific, guidance on when to prefer this over a general search is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_similar_doaj_articlesFind similar DOAJ articlesBRead-onlyIdempotent
Find similar articles using local lexical and metadata similarity.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1-25). Defaults to 10. | |
| title | No | The reference article's title, if available. Improves matching alongside the abstract. | |
| abstract | Yes | The reference abstract or topic description to find similar articles for. Pass the full text, not keywords. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions the use of 'local lexical and metadata similarity,' giving some insight into the matching method. However, it does not describe any side effects or return behavior beyond the read-only nature already indicated by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that avoids redundancy. It is appropriately brief for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (three parameters, no output schema), the description provides the core idea but omits details about the returned data format or how similarity is scored. This is a minor gap but not critical for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides detailed descriptions for all three parameters, covering limit, title, and abstract. The description adds no additional semantic information beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: finding similar articles. It is distinct from search because it focuses on similarity, but it does not explicitly differentiate itself from sibling tools like search_doaj_articles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as search_doaj_articles or get_doaj_article_by_doi. It does not mention any conditions or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_doaj_article_by_doiGet DOAJ article by DOIARead-onlyIdempotent
Look up a single DOAJ-indexed article by its DOI.
| Name | Required | Description | Default |
|---|---|---|---|
| doi | Yes | The article's DOI, e.g. "10.1234/example.2024.001", with or without a "https://doi.org/" prefix. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, openWorld, and idempotent behavior, so the bar for additional disclosure is lower. The description is consistent with these annotations but adds no extra details (e.g., error handling, return format). It neither contradicts nor enriches the behavioral contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundant words or extraneous information. It is well-structured and immediately conveys the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward lookup tool, the description is complete enough. It identifies the input (DOI) and the expected outcome (looking up an article). While it does not explicitly state what happens if the DOI is not found, this is a common expectation and not a critical gap given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'doi' is fully described in the schema with format examples, yielding 100% schema coverage. The tool description does not add any additional semantic information about the parameter beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('look up'), the resource ('single DOAJ-indexed article'), and the identifier ('by its DOI'). This is specific and distinguishes it from sibling tools like search_doaj_articles (which searches) and get_doaj_journal_by_issn (which retrieves a journal).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any explicit guidance on when to use this tool instead of alternatives. It does not mention that this is the preferred choice when a DOI is already known, nor does it contrast with search-based retrieval. The context of sibling tools is not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_doaj_journal_by_issnGet DOAJ journal by ISSNARead-onlyIdempotent
Look up a single DOAJ-indexed journal by its print or electronic ISSN.
| Name | Required | Description | Default |
|---|---|---|---|
| issn | Yes | The journal's print (pISSN) or electronic (eISSN) ISSN, e.g. "1234-5678". Either form is checked. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context such as error handling, rate limits, or what happens if the ISSN is not found. Given the strong annotation coverage, a 3 is appropriate – the description does not contradict annotations but also does not enrich beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with zero wasted words. It front-loads the action ('Look up a single journal') and the essential constraint (by ISSN). Perfectly concise and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup tool with no output schema and complete parameter documentation, the description is adequate. It does not explain the return format or absence behavior, but given the simplicity and the sibling context, nothing critical is missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and already explains that the parameter is a print or electronic ISSN with format example. The description's mention of 'print or electronic ISSN' merely restates the schema, adding no new meaning. Baseline 3 applies because the schema carries the full parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('Look up'), a precise resource ('a single DOAJ-indexed journal'), and the exact lookup key (ISSN). It clearly distinguishes this tool from the sibling search_doaj_journals and others by specifying a single-record lookup by identifier rather than a broad search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly states the usage condition: you must have an ISSN (print or electronic). It does not explicitly mention alternatives or when-not-to-use, but the clarity of the required input makes the context clear. A mention of 'use search_doaj_journals if you don't have an ISSN' would earn a 5, but the current phrasing is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_doaj_journals_for_manuscriptRecommend DOAJ journals for manuscript fitARead-onlyIdempotent
Suggest discovery candidates for a manuscript abstract or topic; not an acceptance prediction.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1-25). Defaults to 10. | |
| title | No | The manuscript's title, if available. Improves matching alongside the abstract. | |
| abstract | Yes | The manuscript's abstract or a description of its topic. Pass the full text, not keywords. | |
| noApcOnly | No | If true, only recommend journals with no article processing charge. | |
| preferredCountry | No | Preferred publisher country as a name, e.g. "Turkey" (not an ISO code). | |
| preferredLanguage | No | Preferred journal language as a name, e.g. "English" (not an ISO code). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, and non-destructive behavior, so no side-effect disclosure is needed. The description adds the meaningful caveat that output is discovery suggestions rather than acceptance predictions, which helps set expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action and object. It contains no redundant filler and leaves detailed parameter information to the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description gives a general sense that results are discovery candidates, and the title clarifies they are journals. It does not specify the result structure such as journal names or metadata, but for a recommendation tool this is mostly sufficient; slightly more detail could improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 6 parameters with descriptive comments, including guidance like 'Pass the full text, not keywords' and 'not an ISO code', so schema description coverage is 100%. The main description adds no extra per-parameter semantics beyond this, warranting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool suggests discovery candidates for a manuscript abstract or topic and explicitly disclaims acceptance prediction. It is somewhat less explicit about the resource being DOAJ journals, though the title and name make that unambiguous; it does not fully differentiate from sibling search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides use context ('for a manuscript abstract or topic') and an explicit when-not ('not an acceptance prediction'). It does not name sibling tools or specify when to prefer structured search or diamond-OA filters, so it falls slightly short of fully explicit alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_doaj_articlesSearch DOAJ articlesARead-onlyIdempotent
Find DOAJ-indexed articles using lexical relevance and metadata preferences.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1-25). Defaults to 10. | |
| query | Yes | Search text: keywords, a topic, or a short phrase (e.g. "diamond open access economics"). Longer text is automatically broadened if a narrow match returns nothing. | |
| strict | No | If true, require every query term to match (AND) instead of relaxing to a broader OR match when the strict search returns nothing. Use for a well-defined, narrow query. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive) and open-world behavior. The description adds a note about lexical relevance but does not elaborate on result ordering, pagination, or empty-result behavior, which is acceptable given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no redundant information. It efficiently conveys the purpose without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a straightforward search with no output schema and no nested objects, so the description is largely complete. It does not explicitly mention that results are a list of articles, but this is inferred from the tool name and purpose; minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters (query, limit, strict) with clear descriptions. The tool description adds no extra parameter context beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Find), the resource (DOAJ-indexed articles), and the method (lexical relevance and metadata preferences). It distinguishes this tool from siblings like search_doaj_journals and get_doaj_article_by_doi.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. While the lexical relevance hint implies keyword search, it does not differentiate from search_doaj_journals or other article-related tools, leaving the selection largely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_doaj_journalsSearch DOAJ journalsARead-onlyIdempotent
Find DOAJ-indexed journals using lexical relevance and metadata preferences.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1-25). Defaults to 10. | |
| query | Yes | Search text: keywords, a topic, or a short phrase (e.g. "diamond open access economics"). Longer text is automatically broadened if a narrow match returns nothing. | |
| strict | No | If true, require every query term to match (AND) instead of relaxing to a broader OR match when the strict search returns nothing. Use for a well-defined, narrow query. | |
| country | No | Publisher country as a name, e.g. "Turkey" or "Brazil" (not an ISO code). Narrows results to that country when recognized; otherwise only affects ranking. | |
| license | No | License substring to filter by, e.g. "CC BY" or "CC BY-NC". | |
| language | No | Journal language as a name, e.g. "English" or "Turkish" (not an ISO code). Narrows results to that language when recognized; otherwise only affects ranking. | |
| noApcOnly | No | If true, only return journals with no article processing charge (diamond/no-fee open access). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description does not contradict these and adds useful context about lexical relevance and metadata filtering. No side effects or destructive behavior are implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant wording. It conveys the essential purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for a simple search tool with well-documented parameters and no output schema. It clearly indicates what is found, though it does not spell out exact return fields or explicitly contrast with article-level search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with rich parameter descriptions explaining behavior such as country/language fallback ranking and strict OR/AND matching. The one-sentence tool description adds little beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Find'), the resource ('DOAJ-indexed journals'), and the method ('using lexical relevance and metadata preferences'). This distinguishes it from sibling tools that search articles or focus on diamond OA journals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly say when to use this tool versus alternatives such as search_doaj_articles or find_diamond_oa_journals. The purpose is clear, but there is no direct guidance on selection criteria among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.3.0-beta.1- First observed
explain_doaj_metadata - First observed
find_diamond_oa_journals - First observed
find_similar_doaj_articles - First observed
get_doaj_article_by_doi - First observed
get_doaj_journal_by_issn - First observed
recommend_doaj_journals_for_manuscript - First observed
search_doaj_articles - First observed
search_doaj_journals
TDQS
Scored across 8 tools
Tools are mostly distinct, but find_diamond_oa_journals and search_doaj_journals both find journals, and search_doaj_articles vs find_similar_doaj_articles could be confused; descriptions clarify, but some overlap remains.
All tool names follow the verb_noun pattern with snake_case, using descriptive and consistent nouns (doaj_journals, doaj_articles, doaj_metadata, etc.).
8 tools is a well-scoped set for a discovery service, covering search, retrieval, recommendation, and explanation without excess.
The surface covers the full discovery workflow: searching journals and articles, retrieving by ISSN/DOI, finding similar content, recommending journals, and explaining metadata terms.
Maintenance
Related MCP Connectors
Multi-engine scholarly research server for search, traversal, full text, and reading lists.
Scholarly search: OpenAlex, Crossref, arXiv, OpenCitations and PubMed in one endpoint.
Auditable MCP server for PubMed, Europe PMC, ClinicalTrials.gov, and bioRxiv/medRxiv queries
Search 150M+ academic works, journals, and funders via Crossref API.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables querying the Crossref API to search for academic publications by title, author, or DOI, returning structured metadata about scholarly works.323 npm4MIT
- AlicenseAqualityCmaintenanceRead-only Model Context Protocol server for the US National Archives Catalog API, enabling search and retrieval of archival records, child records, extracted text, comments, and tags.71MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server for scholarly tools, enabling AI assistants to interact with scholarly data and services via discoverable tools.MIT
- AlicenseBqualityCmaintenanceA Model Context Protocol server for searching and downloading academic papers from multiple free and public sources, enabling LLM-driven academic research workflows.57MIT