Skip to main content
Glama
adarshrkumar

AI-Scholarly-Mode

by adarshrkumar

AI-Scholarly-Mode

A Model Context Protocol (MCP) Server that enables AI assistants to operate in a specialized "scholarly mode," restricting them to exclusively use scholarly article search and retrieval tools powered by Springer Nature's Open Access API.

Overview

This MCP server allows users to engage in research-driven conversations with AI assistants (like Claude) while ensuring the AI only accesses peer-reviewed academic articles from Springer Nature's open access collection.

Related MCP server: ResearchMCP

Features

  • Scholarly Mode Toggle - Enable/disable scholarly-only mode for AI conversations

  • Article Search - Search Springer Nature's open access collection with custom queries

  • Article Retrieval - Fetch full article content in structured JSON format (converted from JATS XML)

  • MCP Protocol - Seamless integration with Claude and other MCP-compatible AI assistants

Installation

# Clone the repository
git clone https://github.com/adarshrkumar/AI-Scholarly-Mode.git
cd AI-Scholarly-Mode

# Install dependencies
npm install

# Build the project
npm run build

Configuration

API Key Setup

You need a Springer Nature API key to use this server.

  1. Obtain an API key from Springer Nature Developer Portal

  2. Create a .env file in the project root:

    SPRINGER_API_KEY=your_api_key_here

Usage

Running the Server

# Production
npm start

# Development
npm run dev

MCP Client Configuration

Add this server to your MCP client configuration. For Claude Desktop, add to your config:

{
  "mcpServers": {
    "scholarly-mode": {
      "command": "node",
      "args": ["path/to/AI-Scholarly-Mode/dist/index.js"]
    }
  }
}

Available Tools

Tool

Description

scholarly-mode-start

Activates scholarly mode, restricting AI to use only Springer search tools

scholarly-mode-stop

Deactivates scholarly mode, returning AI to normal operation

get_articles_list

Searches Springer for articles matching a query. Parameters: query (required), articles_per_page (optional)

get_springer_article_data

Retrieves full article content by ID. Parameters: id (required)

Tech Stack

  • TypeScript - Type-safe development

  • @modelcontextprotocol/sdk - MCP server framework

  • xml-js - JATS XML to JSON conversion

  • Zod - Schema validation

  • dotenv - Environment variable management

Project Structure

AI-Scholarly-Mode/
├── index.ts              # Main MCP server implementation
├── springer.ts           # Springer API integration
├── ConsoleManagement.ts  # Console output utilities
├── package.json          # Project configuration
├── tsconfig.json         # TypeScript configuration
└── dist/                 # Compiled output

Author

Created by adarshrkumar for Playlab.ai

License

ISC

Available Tools

4 tools
get_articles_listD

Get articles list

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
articles_per_pageNo

TDQS

D1.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It fails to mention whether the operation is read-only, destructive, or what the output format is. The agent has no information about side effects, rate limits, or authorization needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise but achieves this at the cost of all informative content. Under-specification is not conciseness; every sentence should earn its place, and here there is only a single tautological phrase.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has two parameters, no output schema, and no annotations, the description is woefully incomplete. An agent cannot determine the return format, pagination behavior, or how to form a valid query. The description fills none of the gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description adds no information about the parameters. 'query' is unexplained (e.g., search syntax, fields) and 'articles_per_page' lacks constraints (e.g., min, max, default). The description adds zero value beyond the bare schema names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description 'Get articles list' is a tautology that merely restates the tool name. It does not specify the source, type, or criteria for articles, and fails to distinguish from the sibling tool 'get_springer_article_data' which likely provides article data from a specific source.

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 usage guidelines provided. The description does not indicate when to use this tool versus alternatives like 'get_springer_article_data' or the scholarly mode tools. The agent receives no context about prerequisites or appropriate scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_springer_article_dataD

Get Springer article data

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits such as idempotency, side effects, or required authentication. The name suggests a read operation, but this is not confirmed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (5 words) but fails to convey essential information. While not verbose, it is under-specified and does not earn its place because it omits critical details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one required parameter and no output schema, the description is insufficient. It does not explain the input semantics, return type, or any contextual cues, making it hard for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'id' is a string with no further description. Schema description coverage is 0%, and the description adds no meaning such as whether 'id' is a DOI, article number, or other identifier.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get Springer article data' identifies the resource ('Springer article data') and a generic verb ('Get'), but fails to specify what kind of data is retrieved (e.g., metadata, full text). It distinguishes from sibling 'get_articles_list' only by implication, not explicit mention.

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 'get_articles_list' or when it is appropriate to call. The description does not mention any prerequisites or context, leaving the agent to guess.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scholarly-mode-startA

Start scholarly mode. This tool returns a systemPrompt for you to use while you are in scholarly mode.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool returns a systemPrompt for use in scholarly mode, which is the key behavioral output. Although no annotations exist, the description offers clear state information. It could be more explicit about side effects like state reset on repeated calls, but is adequate for a simple toggle.

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 two sentences, front-loaded with the action and followed by the return value. Every word earns its place; no wasted text.

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 no parameters and no output schema, the description explains the tool's purpose and return value. It adequately covers the basic context, though mentioning that the prompt should be used as a system message would improve completeness. Overall, it is sufficient for a simple mode switch.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the baseline is 4. The description correctly reflects this by not mentioning any parameters, and schema coverage is 100%. No additional clarification is needed.

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 starts scholarly mode and distinguishes it from the sibling tool scholarly-mode-stop. The verb 'start' and resource 'scholarly mode' are specific and unambiguous.

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_articles_list or scholarly-mode-stop. It lacks context about prerequisites or conditions for starting scholarly mode.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scholarly-mode-stopA

Stop scholarly mode. This tool returns a systemPrompt for you to use while you are not in scholarly mode.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 must fully disclose behavior. It reveals that the tool returns a systemPrompt, which is a key behavioral detail. However, it does not explain what 'scholarly mode' entails, what side effects occur (e.g., losing scholarly context), or whether the tool requires any permissions. Transparency is adequate but could be richer.

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 extremely concise with only two sentences. The first sentence front-loads the core purpose, and the second adds essential information about the return value. No extraneous words, every sentence is valuable.

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?

The tool is simple with no parameters, so the description sufficiently covers its purpose and output. However, it does not explain the concept of 'scholarly mode' or how it relates to sibling tools like 'scholarly-mode-start'. For a complete context, some reference to the start tool or mode semantics would be helpful, but the description is still adequate for a minimal tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema coverage is 100% (empty). The description adds meaning beyond the schema by specifying the return value (systemPrompt). This helps an agent understand the tool's output, which the schema does not address. Scores above baseline 3 due to added value.

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 tool's function: 'Stop scholarly mode'. It uses a specific verb 'stop' and resource 'scholarly mode', and distinguishes itself from its sibling 'scholarly-mode-start' by being the inverse operation. No confusion about its purpose.

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 provides some usage context by mentioning the returned systemPrompt to use when not in scholarly mode. However, it does not explicitly state when to use this tool versus alternatives (e.g., just ignoring scholarly mode) or mention any prerequisites or conditions. More explicit guidance would improve clarity.

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. 4 tool updatesv1.0.0
    • First observedget_articles_list
    • First observedget_springer_article_data
    • First observedscholarly-mode-start
    • First observedscholarly-mode-stop

TDQS

C2.6/5.0

Scored across 4 tools

Disambiguation4/5

The mode toggling tools (start/stop) and article tools (list/data) are clearly distinct in purpose. However, without detailed descriptions, an agent might confuse 'get_articles_list' with 'get_springer_article_data' if it needs a general list but picks the Springer-specific one.

Naming Consistency2/5

Naming styles are inconsistent: 'scholarly-mode-start' uses hyphens and verb-noun order, while 'get_articles_list' and 'get_springer_article_data' use underscores and get-prefix. This mixed convention reduces predictability.

Tool Count5/5

With 4 tools, the set is well-scoped for a scholarly mode server: two for mode management and two for article retrieval. No unnecessary tools, and the count is appropriate for the domain.

Completeness4/5

The tool set covers the essential lifecycle: enabling/disabling the mode and retrieving article data. Minor gaps exist, such as no search or query refinement tools, but core workflows are supported.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search across multiple academic databases (PubMed, arXiv, bioRxiv, medRxiv, Semantic Scholar) through a unified interface. Supports advanced filtering, metadata retrieval, PDF downloads, and comprehensive research workflows with citation analysis.
    5
    -
  • F
    license
    A
    quality
    D
    maintenance
    Enables AI-powered academic research by searching and retrieving research papers from OpenAlex database. Supports searching by keywords/topics and fetching full abstracts for detailed paper analysis.
    6
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables comprehensive academic research through the Semantic Scholar API, including paper search, author discovery, citation network analysis, and full-text access from arXiv and Wiley sources.
    23 npm
    28
    ISC
  • A
    license
    A
    quality
    C
    maintenance
    Searches and retrieves academic papers from open access sources like arXiv, Semantic Scholar, and PubMed, with full text access via arXiv PDFs, PubMed Central, and Unpaywall.
    2
    MIT