IEEE Xplore MCP Server
Summary: This server lets an AI assistant search, read, cite and explore IEEE Xplore literature — no IEEE API key required, with paywalled full text via your university's proxy.
Search IEEE papers — keyword/Boolean (AND, OR, NOT) or semantic search with filters for author, affiliation, venue/publication, year range, content type (journals, conferences, standards, books), index terms and open-access status; paginated and sortable.
Get full paper metadata — authors with affiliations, venue, identifiers (DOI, IEEE article number), citation counts, keywords, abstracts, open-access status and URLs.
Follow the citation graph — papers citing a paper, a paper's reference list, and closely related papers.
Read full text — retrieve paper text in chunks, either from an open-access copy or through an institutional proxy; optionally save the PDF to disk (one paper per request, rate-limited, cached).
Produce citations — BibTeX, RIS, CSL-JSON or formatted IEEE, APA, Chicago, Harvard and MLA references for up to 50 papers.
Check and manage access —
statusreports which keys and access paths are configured;sign_inopens the library proxy sign-in window when paywalled access is needed (tools reportAUTH_REQUIREDwhen the session expires).Structured literature review — a
literature_reviewprompt walks the assistant through a survey of a topic.
Note: the provided schema describes the legacy 1.x tool set (get_paper_details, get_full_text, search_by_author, search_by_publication), which the README says are now consolidated into search_papers, get_paper, read_paper, get_citing_papers and others in 2.0.
Enables retrieval of detailed metadata for academic publications using Digital Object Identifiers (DOI).
Wraps the IEEE Xplore API to provide tools for searching papers, retrieving metadata, tracking citation counts, and accessing full-text content.
Supports identifying and retrieving the full text of academic papers published under Open Access licenses.
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., "@IEEE Xplore MCP ServerSearch for recent papers on large language models and their efficiency"
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.
What it does
ieee-xplore-mcp is an MCP server that runs on your machine and lets Claude Code, Claude Desktop, Cursor, VS Code, Codex or any other MCP client work with IEEE literature:
search IEEE journals, conferences, standards and books with boolean queries, author, venue, affiliation and year filters, or by meaning (semantic search)
get full metadata: authors with affiliations, venue, identifiers, citation counts, open-access status, abstract
follow the citation graph: papers citing a paper, its reference list, related papers
read the full text of a paper, from an open-access copy or through your institution's proxy, and save the PDF
produce BibTeX, RIS, CSL-JSON or formatted IEEE, APA, Chicago, Harvard and MLA references
Things you can ask once it is connected:
Find the most cited IEEE papers on chopper-stabilised amplifiers since 2018.
What has Kofi Makinwa published in JSSC in the last three years?
Read the second result and summarise its architecture section.
Which recent papers cite this one, and what did they improve?
Give me BibTeX for these five DOIs.
Related MCP server: Scholar MCP
Quick start
npm install -g https://github.com/danieltyukov/ieee-mcp/releases/latest/download/ieee-xplore-mcp.tgz
claude mcp add ieee-xplore -s user -- ieee-xplore-mcpThat is enough to search, follow citations, cite and read open-access papers. Add a free OpenAlex key for reliable search and your library's proxy for paywalled full text (see Configure and Institutional access).
Install
Requires Node 20 or newer.
npm install -g https://github.com/danieltyukov/ieee-mcp/releases/latest/download/ieee-xplore-mcp.tgz
ieee-xplore-mcp statusFrom source:
git clone https://github.com/danieltyukov/ieee-mcp.git
cd ieee-mcp && npm ci && npm run build && npm linkConfigure
Everything is optional; with no configuration the server searches OpenAlex and reads open-access papers.
Variable | Purpose |
| Recommended. Free key from openalex.org/settings/api. Without it OpenAlex rate-limits searches heavily. |
| Your library's proxied IEEE Xplore address, for paywalled full text. Open IEEE Xplore through your library's website and copy the address, e.g. |
| Optional IEEE Xplore API key. Adds IEEE-native search filters (conference vs journal, early access, index terms) and patent citation counts. |
| Contact address sent to OpenAlex and doi.org, as they ask of API clients. |
| Maximum PDFs fetched through the proxy per day. Default 40. |
| Where |
| Data directory for the session, cache and browser profile. Default |
| Browser executable for sign-in, if auto-detection picks the wrong one. |
| Set to |
Connect a client
Claude Code, available in every project:
claude mcp add ieee-xplore -s user \
-e OPENALEX_API_KEY=your-key \
-e IEEE_PROXY_URL=https://ieeexplore-ieee-org.tudelft.idm.oclc.org \
-- ieee-xplore-mcpClaude Desktop, Cursor and most other clients take the same JSON block (claude_desktop_config.json, ~/.cursor/mcp.json, ...):
{
"mcpServers": {
"ieee-xplore": {
"command": "ieee-xplore-mcp",
"env": {
"OPENALEX_API_KEY": "your-key",
"IEEE_PROXY_URL": "https://ieeexplore-ieee-org.tudelft.idm.oclc.org"
}
}
}
}VS Code, Codex and troubleshooting are covered in docs/clients.md.
Institutional access
If your university subscribes to IEEE Xplore through a proxy (EZproxy or OCLC), the server can read paywalled papers the way you would in a browser:
Set
IEEE_PROXY_URLas above.Run
ieee-xplore-mcp login. A browser window opens on your library's sign-in page. Sign in as usual, including MFA. The window closes once IEEE Xplore loads.read_paperanddownload_pdfnow fetch PDFs through the proxy. When the proxy session expires, the server renews it silently from the saved browser profile; if your university asks for a password again, tools reportAUTH_REQUIREDand you runloginonce more (or ask the assistant to use thesign_intool).
Your library licence allows personal use and forbids systematic downloading. The server fetches one paper per request, spaces proxy downloads at least 10 seconds apart, caps them per day, and caches every paper so rereading costs nothing. It has no bulk download tool. Please keep it that way; excessive downloading can get your whole institution blocked.
Tools
Tool | What it does |
| Keyword, boolean or semantic search with author, venue, affiliation, year, type and OA filters. |
| Full metadata and abstract for a DOI, IEEE article number, Xplore URL or OpenAlex id. |
| Papers that cite a paper, sortable by citations or date. |
| A paper's reference list. |
| Closely related papers. |
| Full text in chunks, from an open-access copy or the institutional proxy. |
| Save one paper's PDF to disk. |
| BibTeX, RIS, CSL-JSON or formatted references for up to 50 papers. |
| Which keys and access paths are configured and working. |
| Open the proxy sign-in window. |
There is also a literature_review prompt that walks the assistant through a structured survey of a topic. Input fields for every tool are listed in docs/tools.md.
Where the data comes from
Source | Used for |
OpenAlex, restricted to IEEE | Search, metadata, abstracts, citations, references, related work, open-access locations. |
IEEE Xplore API, if a key is set | Search with IEEE's own filters, IEEE index terms, patent citations. |
doi.org | IEEE article numbers for DOIs, and citation formatting. |
Your institution's proxy | PDFs of paywalled papers. |
Only documented public APIs are used for metadata; the server does not scrape IEEE Xplore pages. Every search result says which source answered. When the IEEE key is rejected (IEEE deactivates idle keys with 403 Developer Inactive) or its daily quota is used up, the server switches to OpenAlex for the rest of the session and tells you.
Known limits without an IEEE key:
OpenAlex files most IEEE conference proceedings as journals, so the conference/journal filter is only available with an IEEE key. Use
venueto target a specific conference or journal.A bare IEEE article number can only be turned into metadata with an IEEE key. DOIs, Xplore URLs with a DOI, and OpenAlex ids work without one, and
read_paperaccepts article numbers either way.OpenAlex occasionally attaches another work's abstract or PDF to a record. Open-access PDFs are checked against the paper's title before use, and
get_paperflags abstracts that do not match the title.
Privacy
Everything runs locally; there is no hosted service. The proxy session cookies and the browser profile live under ~/.ieee-mcp with owner-only permissions and never reach the model. Your password and MFA are only ever typed into your university's own sign-in page; decline if the sign-in window offers to save the password, since that profile is protected only by file permissions. download_pdf writes only inside your home directory, never into hidden folders, and never overwrites a file. ieee-xplore-mcp logout removes the session and profile; ieee-xplore-mcp cache clear removes cached papers.
Upgrading from 1.x
2.0 is a rewrite. Tool names changed (search_by_author and search_by_publication are now filters of search_papers; get_paper_details is get_paper; get_paper_citations is get_citing_papers; get_full_text is read_paper), IEEE_API_KEY is optional, and IEEE_AUTH_TOKEN is replaced by institutional proxy access. See CHANGELOG.md.
Development
npm ci
npm run check # typecheck, lint, tests, build
npm run dev -- status # run the CLI from source
npm run test:live # talk to the real servicesUnit tests use recorded fixtures and a mocked fetch, so they run offline. The design is described in docs/design.md. Contributions are welcome; see CONTRIBUTING.md. Security issues go through SECURITY.md.
License
MIT. See LICENSE. Not affiliated with IEEE, OpenAlex or any university.
Available Tools
6 toolsget_full_textA
Retrieve the full text of an IEEE paper by article number. Works for Open Access articles. For paywalled articles, set IEEE_AUTH_TOKEN env var. Output is truncated at ~50K characters.
| Name | Required | Description | Default |
|---|---|---|---|
| article_number | Yes | IEEE article number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: authentication requirements for paywalled content and output truncation at ~50K characters, which are critical for agent decision-making. It doesn't cover all possible behaviors (e.g., error handling), but adds substantial value beyond basic purpose.
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 front-loaded with the core purpose, followed by essential constraints and behavioral notes in three concise sentences. Every sentence earns its place by adding critical information without redundancy or fluff, making it highly efficient.
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 tool's moderate complexity (single parameter, no output schema, no annotations), the description is largely complete: it covers purpose, usage guidelines, key behaviors, and output constraints. Minor gaps exist (e.g., no explicit mention of error cases), but it provides sufficient context for effective agent use.
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%, so the schema already documents the 'article_number' parameter. The description implies the parameter's role but doesn't add syntax or format details beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
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 specific action ('Retrieve the full text'), resource ('IEEE paper'), and key constraint ('by article number'), distinguishing it from sibling tools that handle citations, details, or searches. It provides precise differentiation without being vague or tautological.
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?
It explicitly states when to use this tool ('Works for Open Access articles') and when-not/alternatives ('For paywalled articles, set IEEE_AUTH_TOKEN env var'), providing clear context and prerequisites. This directly addresses usage scenarios without leaving room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_paper_citationsC
Get citation counts (papers and patents) for an IEEE paper.
| Name | Required | Description | Default |
|---|---|---|---|
| article_number | No | IEEE article number | |
| doi | No | DOI of the paper |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe how it behaves—no information about response format, error handling, rate limits, authentication requirements, or whether it's a read-only operation. For a tool with zero annotation coverage, this leaves significant gaps.
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, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information, making it easy for an agent to parse quickly.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain what the return value looks like (e.g., citation counts format, potential fields), error conditions, or behavioral traits. For a tool with 2 parameters and no structured output documentation, the description should provide more context about the operation's results and limitations.
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%, so the schema already fully documents both parameters (article_number and doi). The description doesn't add any parameter-specific information beyond what's in the schema, such as format examples or usage constraints. Baseline 3 is appropriate when the schema does all the heavy lifting.
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 ('Get') and resource ('citation counts for an IEEE paper'), specifying it includes both papers and patents. However, it doesn't differentiate from sibling tools like 'get_paper_details' which might also provide citation information, so it lacks explicit sibling distinction.
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 like 'get_paper_details' or 'search_papers'. It doesn't mention prerequisites, exclusions, or contextual factors that would help an agent choose between similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_paper_detailsA
Get detailed metadata for a single IEEE paper by article number or DOI. Returns full author affiliations, abstract, keywords, citation counts, and URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| article_number | No | IEEE article number | |
| doi | No | DOI of the paper |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return content (author affiliations, abstract, etc.) and that it's a read operation ('Get'), but lacks details on error handling, rate limits, authentication needs, or response format. It adds some behavioral context but is incomplete.
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 front-loaded with the core purpose, followed by specifics on returns. It uses two efficient sentences with zero waste, making it easy to parse and understand quickly.
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 no annotations, no output schema, and a simple input schema, the description is adequate for a read-only tool but lacks details on error cases, response structure, or limitations. It covers the basics but could be more complete for agent 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?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds that these are identifiers for retrieving metadata, but does not provide additional syntax, format, or usage details beyond what the schema provides. Baseline 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 specific action ('Get detailed metadata'), resource ('a single IEEE paper'), and scope ('by article number or DOI'). It distinguishes from siblings like 'get_full_text' (which likely retrieves content) and 'search_papers' (which searches multiple papers).
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 implies usage for retrieving detailed metadata of a single paper, but does not explicitly state when to use this tool versus alternatives like 'search_by_author' or 'get_paper_citations'. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_authorA
Search IEEE Xplore for papers by a specific author. Convenience wrapper around search_papers with author as the primary filter.
| Name | Required | Description | Default |
|---|---|---|---|
| author | Yes | Author name to search for | |
| start_year | No | Start of year range | |
| end_year | No | End of year range | |
| content_type | No | Filter by content type: Conferences, Journals, Early Access, Standards, Books, Courses | |
| publication_title | No | Filter by publication / journal / conference name | |
| max_records | No | Number of results (default 25, max 200) | |
| start_record | No | Starting record for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but provides minimal information. It mentions this is a 'convenience wrapper' which implies it's a specialized version of search_papers, but doesn't describe what the tool actually returns (paper metadata? full results?), pagination behavior, rate limits, authentication requirements, or error conditions. For a search tool with 7 parameters, this is insufficient behavioral context.
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 perfectly concise with just two sentences that each earn their place. The first sentence states the core purpose, and the second provides important contextual information about its relationship to sibling tools. There's zero wasted language or redundancy.
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 tool's moderate complexity (7 parameters, no output schema, no annotations), the description is adequate but incomplete. It explains the tool's purpose and relationship to siblings well, but lacks information about what the tool returns, error handling, or behavioral characteristics. Without annotations or output schema, the description should provide more complete context for effective tool use.
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 description coverage is 100%, so all parameters are documented in the schema itself. The description doesn't add any meaningful parameter semantics beyond what's already in the schema - it only mentions 'author as the primary filter' which is already clear from the required parameter. This meets the baseline expectation when schema coverage is complete.
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 with specific verb ('Search') and resource ('IEEE Xplore for papers by a specific author'), and explicitly distinguishes it from sibling tool 'search_papers' by noting it's a 'convenience wrapper' with author as the primary filter. This provides excellent differentiation from alternatives.
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 clear context by stating this is a 'convenience wrapper around search_papers with author as the primary filter,' which helps understand when to use this versus the more general search_papers. However, it doesn't explicitly state when NOT to use this tool or compare it to other siblings like search_by_publication, which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_publicationA
Search IEEE Xplore for papers in a specific publication (journal/conference). Convenience wrapper around search_papers with publication_title as the primary filter.
| Name | Required | Description | Default |
|---|---|---|---|
| publication_title | Yes | Publication, journal, or conference name | |
| querytext | No | Additional search query within the publication | |
| start_year | No | Start of year range | |
| end_year | No | End of year range | |
| max_records | No | Number of results (default 25, max 200) | |
| start_record | No | Starting record for pagination | |
| sort_field | No | Sort by: article_title, publication_year, etc. | |
| sort_order | No | Sort order: asc or desc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While it mentions being a 'convenience wrapper,' it doesn't disclose important behavioral traits like rate limits, authentication requirements, pagination behavior beyond parameters, error conditions, or what format results return. For a search tool with 8 parameters and no annotations, this is insufficient.
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?
Two concise sentences that are front-loaded with the core purpose. Every word earns its place: first sentence states what it does, second sentence clarifies its relationship to sibling tool and primary parameter. No wasted words or redundancy.
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 search tool with 8 parameters, no annotations, and no output schema, the description is adequate but has clear gaps. It explains the purpose and relationship to alternatives well, but doesn't address behavioral aspects like result format, limitations, or error handling that would be important for an agent to use it effectively.
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%, so the schema already documents all 8 parameters thoroughly. The description adds minimal value beyond the schema, only mentioning 'publication_title as the primary filter' which is already clear from the required parameter and schema description. Baseline 3 is appropriate when schema does the heavy lifting.
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 searches IEEE Xplore for papers in a specific publication, distinguishing it from sibling tools like search_papers (general search) and search_by_author (author-focused). It specifies 'journal/conference' scope and mentions it's a convenience wrapper with publication_title as primary filter.
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?
Explicitly states when to use this tool ('Search IEEE Xplore for papers in a specific publication') and provides clear alternatives ('Convenience wrapper around search_papers with publication_title as the primary filter'), distinguishing it from the more general search_papers tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_papersB
Search IEEE Xplore for papers. Supports full-text search with Boolean operators (AND, OR, NOT) and multiple filters. Returns metadata, abstracts, and links.
| Name | Required | Description | Default |
|---|---|---|---|
| querytext | No | Full-text search query. Supports AND, OR, NOT operators. | |
| author | No | Filter by author name | |
| article_title | No | Search within article titles | |
| abstract | No | Search within abstracts | |
| affiliation | No | Filter by author affiliation | |
| index_terms | No | Search by index terms / keywords | |
| doi | No | Search by DOI | |
| publication_title | No | Filter by publication / journal / conference name | |
| publication_year | No | Filter by publication year (e.g. '2023') | |
| start_year | No | Start of year range (e.g. '2020') | |
| end_year | No | End of year range (e.g. '2024') | |
| content_type | No | Filter by content type: Conferences, Journals, Early Access, Standards, Books, Courses | |
| open_access | No | Filter for open access articles only | |
| max_records | No | Number of results to return (default 25, max 200) | |
| start_record | No | Starting record number for pagination (default 1) | |
| sort_field | No | Sort by: article_title, article_number, author, publication_title, publication_year | |
| sort_order | No | Sort order: asc or desc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions what the tool does (search with filters) and what it returns (metadata, abstracts, links), but lacks details on permissions, rate limits, pagination behavior, or error handling. For a tool with 17 parameters and no annotation coverage, this is insufficient.
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 front-loaded and efficient: two sentences that cover purpose, capabilities, and return values without waste. Every sentence earns its place by adding distinct information (search scope and output).
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 tool's complexity (17 parameters, no annotations, no output schema), the description is adequate but incomplete. It covers the basic purpose and output but lacks behavioral context (e.g., pagination, limits) and usage guidelines relative to siblings. Without an output schema, it should ideally describe return format more thoroughly.
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%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by mentioning Boolean operators and filters, but doesn't provide additional syntax, examples, or constraints. Baseline 3 is appropriate when the schema does the heavy lifting.
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 specific action ('Search IEEE Xplore for papers'), resource ('papers'), and scope ('full-text search with Boolean operators and multiple filters'). It distinguishes from siblings like 'search_by_author' or 'search_by_publication' by emphasizing comprehensive search capabilities.
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?
No guidance on when to use this tool versus alternatives like 'search_by_author' or 'search_by_publication' is provided. The description mentions filters but doesn't specify scenarios where this tool is preferred over sibling tools, leaving usage context implied rather than explicit.
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.
6 tool updates
v1.0.0- First observed
get_full_text - First observed
get_paper_citations - First observed
get_paper_details - First observed
search_by_author - First observed
search_by_publication - First observed
search_papers
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: get_full_text retrieves full text, get_paper_citations gets citation counts, get_paper_details fetches metadata, search_papers performs general searches, and search_by_author and search_by_publication are specialized search wrappers. The descriptions explicitly differentiate them, with no overlap in functionality that could cause misselection.
All tool names follow a consistent verb_noun pattern using snake_case: get_full_text, get_paper_citations, get_paper_details, search_by_author, search_by_publication, and search_papers. The naming is predictable and readable throughout, with no deviations or mixed conventions.
With 6 tools, the count is well-scoped for an IEEE Xplore server, covering core operations like retrieving papers, getting details, and searching. Each tool earns its place by addressing specific needs without being too thin or overwhelming, fitting typical server scopes of 3-15 tools.
The tool set provides strong coverage for searching and retrieving IEEE papers, including metadata, citations, and full text. Minor gaps exist, such as no explicit tools for updating or deleting data (though likely not needed for this read-heavy domain) or advanced features like filtering by date or citation trends, but agents can work around these with the available search capabilities.
Maintenance
Related MCP Connectors
IEEE Xplore MCP — BYOK wrapper over the IEEE Xplore Metadata Search API
Academic paper search, scientific literature, citation analysis, arXiv & semantic related-work.
Search and download academic papers from arXiv, PubMed, bioRxiv, medRxiv, Google Scholar, Semantic…
Federated search of books and papers, BibTeX/RIS citations, open-access retrieval and reading.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables academic paper search and analysis through the AMiner API. Supports keyword, author, and venue-based searches with advanced filtering and citation data for research assistance.410 npm13MIT
- AlicenseNot gradedqualityDmaintenanceEnables searching and retrieving academic papers from arXiv and DBLP databases with advanced filtering options. Supports downloading PDFs and provides detailed paper information including titles, authors, abstracts, and publication dates.126 npm3MIT
- AlicenseNot gradedqualityDmaintenanceEnables searching and retrieving academic paper metadata from Semantic Scholar, including paper details, citations, and author information.20MIT
- AlicenseNot gradedqualityDmaintenanceEnables users to search and analyze academic papers from multiple sources, fetch metadata and full text, and build structured outputs like literature maps and paper comparisons.8 npmMIT