Skip to main content
Glama
danieltyukov

IEEE Xplore MCP Server

by danieltyukov

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-mcp

That 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 status

From source:

git clone https://github.com/danieltyukov/ieee-mcp.git
cd ieee-mcp && npm ci && npm run build && npm link

Configure

Everything is optional; with no configuration the server searches OpenAlex and reads open-access papers.

Variable

Purpose

OPENALEX_API_KEY

Recommended. Free key from openalex.org/settings/api. Without it OpenAlex rate-limits searches heavily.

IEEE_PROXY_URL

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. https://ieeexplore-ieee-org.tudelft.idm.oclc.org.

IEEE_API_KEY

Optional IEEE Xplore API key. Adds IEEE-native search filters (conference vs journal, early access, index terms) and patent citation counts.

IEEE_MCP_EMAIL

Contact address sent to OpenAlex and doi.org, as they ask of API clients.

IEEE_MCP_PROXY_DAILY_LIMIT

Maximum PDFs fetched through the proxy per day. Default 40.

IEEE_MCP_DOWNLOAD_DIR

Where download_pdf saves files. Default ~/Downloads/ieee-papers.

IEEE_MCP_HOME

Data directory for the session, cache and browser profile. Default ~/.ieee-mcp.

IEEE_MCP_BROWSER

Browser executable for sign-in, if auto-detection picks the wrong one.

IEEE_MCP_DEBUG

Set to 1 to log requests to stderr. Keys are redacted.

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-mcp

Claude 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:

  1. Set IEEE_PROXY_URL as above.

  2. 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.

  3. read_paper and download_pdf now 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 report AUTH_REQUIRED and you run login once more (or ask the assistant to use the sign_in tool).

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

search_papers

Keyword, boolean or semantic search with author, venue, affiliation, year, type and OA filters.

get_paper

Full metadata and abstract for a DOI, IEEE article number, Xplore URL or OpenAlex id.

get_citing_papers

Papers that cite a paper, sortable by citations or date.

get_references

A paper's reference list.

get_related_papers

Closely related papers.

read_paper

Full text in chunks, from an open-access copy or the institutional proxy.

download_pdf

Save one paper's PDF to disk.

cite_paper

BibTeX, RIS, CSL-JSON or formatted references for up to 50 papers.

status

Which keys and access paths are configured and working.

sign_in

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 venue to 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_paper accepts 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_paper flags 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 services

Unit 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 tools
get_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
article_numberYesIEEE article number

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
article_numberNoIEEE article number
doiNoDOI of the paper

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
article_numberNoIEEE article number
doiNoDOI of the paper

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
authorYesAuthor name to search for
start_yearNoStart of year range
end_yearNoEnd of year range
content_typeNoFilter by content type: Conferences, Journals, Early Access, Standards, Books, Courses
publication_titleNoFilter by publication / journal / conference name
max_recordsNoNumber of results (default 25, max 200)
start_recordNoStarting record for pagination

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
publication_titleYesPublication, journal, or conference name
querytextNoAdditional search query within the publication
start_yearNoStart of year range
end_yearNoEnd of year range
max_recordsNoNumber of results (default 25, max 200)
start_recordNoStarting record for pagination
sort_fieldNoSort by: article_title, publication_year, etc.
sort_orderNoSort order: asc or desc

TDQS

A3.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
querytextNoFull-text search query. Supports AND, OR, NOT operators.
authorNoFilter by author name
article_titleNoSearch within article titles
abstractNoSearch within abstracts
affiliationNoFilter by author affiliation
index_termsNoSearch by index terms / keywords
doiNoSearch by DOI
publication_titleNoFilter by publication / journal / conference name
publication_yearNoFilter by publication year (e.g. '2023')
start_yearNoStart of year range (e.g. '2020')
end_yearNoEnd of year range (e.g. '2024')
content_typeNoFilter by content type: Conferences, Journals, Early Access, Standards, Books, Courses
open_accessNoFilter for open access articles only
max_recordsNoNumber of results to return (default 25, max 200)
start_recordNoStarting record number for pagination (default 1)
sort_fieldNoSort by: article_title, article_number, author, publication_title, publication_year
sort_orderNoSort order: asc or desc

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 6 tool updatesv1.0.0
    • First observedget_full_text
    • First observedget_paper_citations
    • First observedget_paper_details
    • First observedsearch_by_author
    • First observedsearch_by_publication
    • First observedsearch_papers

TDQS

A3.8/5.0

Scored across 6 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables searching and retrieving academic paper metadata from Semantic Scholar, including paper details, citations, and author information.
    20
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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 npm
    MIT