Skip to main content
Glama
ispyridis

OpenArchives.gr MCP Server

by ispyridis

OpenArchives.gr MCP Server

A Model Context Protocol (MCP) server for accessing the OpenArchives.gr Greek scientific content aggregator. This server allows AI assistants to search and retrieve academic documents, theses, articles, and other scholarly content from Greek institutions.

Features

  • Search Archives: Search through OpenArchives.gr's extensive collection of Greek scientific content

  • Document Metadata: Retrieve full metadata for documents in JSON, XML, or HTML formats

  • Document Types: Get available document types for filtering searches

  • Collection Browsing: Browse available collections and data providers

  • Multilingual Support: Support for both Greek and English interfaces

  • Pagination: Handle large result sets with pagination support

Related MCP server: academic-search-mcp

Prerequisites

  1. API Key: You need an API key from OpenArchives.gr. Request one at: https://www.openarchives.gr/aggregator-openarchives/portal/interoperability

  2. Node.js: Version 18 or higher

  3. MCP-compatible client: Such as Claude Desktop, Cline, or any other MCP client

Installation

  1. Navigate to the project directory:

cd "F:\MCP servers\openarchives-gr-mcp-server"
  1. Install dependencies:

npm install
  1. Set up your API key as an environment variable:

set OPENARCHIVES_API_KEY=your-api-key-here

Or create a .env file:

echo OPENARCHIVES_API_KEY=your-api-key-here > .env
  1. Build the project:

npm run build

Configuration

For Claude Desktop

Add the server to your Claude Desktop configuration file:

Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "openarchives-gr": {
      "command": "node",
      "args": ["F:/MCP servers/openarchives-gr-mcp-server/dist/index.js"],
      "env": {
        "OPENARCHIVES_API_KEY": "your-api-key-here"
      }
    }
  }
}

For other MCP clients

Refer to your MCP client's documentation for configuration instructions.

Available Tools

1. search_archives

Search for documents in the OpenArchives.gr collection.

Parameters:

  • query (optional): Search term

  • ekt_type (optional): Document type filter (e.g., "Άρθρο", "Διδακτορική διατριβή")

  • page (optional): Page number for pagination (default: 1)

  • preferredLanguage (optional): "el" for Greek or "en" for English (default: "el")

  • enableURITypeValues (optional): Use URI values for document types (default: false)

  • limit (optional): Maximum results to return (default: 50)

Example:

{
  "query": "μηχανική μάθηση",
  "ekt_type": "Διδακτορική διατριβή",
  "preferredLanguage": "el",
  "limit": 10
}

2. get_document_metadata

Get full metadata for a specific document.

Parameters:

  • uri (required): Document URI from search results

  • format (optional): "json", "xml", or "html" (default: "json")

Example:

{
  "uri": "https://www.openarchives.gr/aggregator-openarchives/edm/eureka/000008-10184_8264",
  "format": "json"
}

3. get_document_types

Get available document types for filtering.

Parameters:

  • language (optional): "el" for Greek or "en" for English (default: "el")

4. browse_collections

Browse available collections and data providers.

Parameters:

  • provider (optional): Filter by specific provider name

Usage Examples

Here are some example queries you can ask an AI assistant using this MCP server:

"Search for articles about artificial intelligence in OpenArchives.gr"

"Find doctoral dissertations about machine learning written in Greek"

Specific Document

"Get the full metadata for this document: [URI] in JSON format"

Browse by Institution

"Show me collections from the National Technical University of Athens"

Document Types

The server supports searching for various document types including:

Greek Terms:

  • Άρθρο (Article)

  • Διπλωματική εργασία (Master's thesis)

  • Διδακτορική διατριβή (Doctoral dissertation)

  • Βιβλίο (Book)

  • Κεφάλαιο βιβλίου (Book chapter)

  • Πρακτικά συνεδρίου (Conference proceedings)

English Terms:

  • Article

  • Master thesis

  • Doctoral thesis

  • Book

  • Book chapter

  • Conference proceedings

Data Providers

OpenArchives.gr aggregates content from major Greek institutions including:

  • National Documentation Centre (EKT)

  • National Library of Greece

  • National Technical University of Athens

  • University of Athens

  • Aristotle University of Thessaloniki

  • And many more academic institutions

Error Handling

The server includes comprehensive error handling for:

  • Missing API key

  • Network connectivity issues

  • Invalid document URIs

  • API rate limiting

  • Malformed requests

Development

To run in development mode:

npm run dev

To build:

npm run build

License

MIT License - feel free to modify and distribute as needed.

Support

For issues related to:

  • This MCP server: Open an issue in the project repository

  • OpenArchives.gr API: Contact the OpenArchives.gr team

  • API key requests: Use their official form at the interoperability page

Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.

Available Tools

4 tools
browse_collectionsB

Browse available collections and providers in OpenArchives.gr

ParametersJSON Schema
NameRequiredDescriptionDefault
providerNoFilter by specific data provider

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states 'Browse,' implying a read-only operation, but does not explain output format, pagination, data freshness, or authentication requirements. Critical traits are omitted.

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

Conciseness4/5

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

The description is a single sentence with no waste. It is concise and to the point, but could include more information (e.g., output hint) without becoming verbose. The brevity does not harm comprehension but limits completeness.

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 simple schema (1 optional param), no output schema, and presence of related sibling tools, the description fails to explain what the output looks like (list of collections? providers? both?) or how it relates to search and metadata tools. An agent lacks sufficient context for correct invocation.

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 input schema covers the only parameter 'provider' with a clear description ('Filter by specific data provider'). The tool description does not add additional meaning beyond the schema, but since schema description coverage is 100%, a score of 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 action ('Browse'), the resource ('available collections and providers'), and the scope ('OpenArchives.gr'). It distinguishes itself from sibling tools like search_archives (search) and get_document_metadata (metadata), as browsing collections/providers is a distinct operation.

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 (e.g., when to browse vs search). The description does not mention any prerequisites, use cases, or exclusions. An agent would have no context to choose this tool over search_archives or get_document_types.

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

get_document_metadataB

Get full metadata for a specific document using its URI

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYesThe HTTP URI of the document from search results
formatNoMetadata format to retrievejson

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavior. It only states the function without indicating read-only nature, side effects, permissions, or performance implications. The lack of transparency leaves the agent uninformed about safety.

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

Conciseness4/5

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

The description is a single sentence, efficiently conveying the core purpose. However, it could include more useful information without being verbose, so it's slightly above average but not perfect.

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 no output schema and the need for the agent to understand what 'full metadata' entails, the description is incomplete. It does not explain the return structure, potential limitations, or what data fields to expect, leaving significant gaps.

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 explains both parameters fully. The description adds no semantic value beyond what the schema provides, meeting the baseline of 3.

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 action 'get full metadata' and specifies the resource 'a specific document using its URI'. This distinguishes it from sibling tools like 'browse_collections' which are for browsing, and 'search_archives' which are for searching.

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. It does not mention prerequisites, exclusions, or scenarios. The description is too minimal to help an agent choose this tool over siblings.

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

get_document_typesA

Get available document types for filtering searches

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoLanguage for type names (el for Greek, en for English)el

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description should fully disclose behavior. It only states the basic function, omitting details like authentication, rate limits, or output format.

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?

Single sentence with no wasted words; front-loaded with the core action and context.

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?

Minimally adequate for a simple tool with one optional parameter, but lacks details about return structure or behavior when language is unsupported.

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 coverage is 100% with a clear parameter description in the schema. The tool description adds no additional meaning beyond the schema's explanation of the language parameter.

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 retrieves document types and specifies their use for filtering searches, distinguishing it from sibling tools like browse_collections or search_archives.

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?

Implicitly indicates use for filtering searches, but no explicit guidance on when to use vs alternatives or exclusions for specific contexts.

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

search_archivesB

Search for documents in OpenArchives.gr Greek scientific content aggregator

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (default: 1)
limitNoMaximum number of results to return (default: 50)
queryNoSearch query term (optional - if not provided, returns all results)
ekt_typeNoDocument type filter (e.g., "Άρθρο", "Διπλωματική εργασία", "Διδακτορική διατριβή")
preferredLanguageNoPreferred language for results (el for Greek, en for English)el
enableURITypeValuesNoWhether to use URI values for ekt_type parameter

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as pagination behavior, default sorting, or whether the search is free-text or filtered. The agent gets minimal insight into what happens beyond the parameter descriptions.

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

Conciseness4/5

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

The single-sentence description is concise and front-loaded with the core action. However, it could be slightly more structured to include usage context, but overall it earns its brevity.

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?

With 6 parameters, no output schema, and no annotations, the description is minimally adequate. It names the aggregator but does not explain expected response format, language handling, or how pagination interacts with queries. Some gaps remain.

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?

All 6 parameters have schema descriptions (100% coverage), so the description adds no additional semantic value beyond the schema. Per rules, baseline is 3.

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 for documents in a specific Greek scientific content aggregator (OpenArchives.gr). It directly differentiates from sibling tools which focus on collections, metadata, or types.

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 browse_collections or get_document_metadata. The description does not specify use cases or exclusions, leaving the agent without decision support.

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

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: browsing collections, searching archives, getting document types, and retrieving metadata. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., browse_collections, get_document_metadata). No deviations.

Tool Count5/5

With 4 tools, the server is well-scoped for its purpose of searching and exploring Greek scientific content. Each tool serves a necessary function without redundancy.

Completeness4/5

Covers key operations: browsing collections, searching, filtering by document type, and retrieving metadata. Missing a tool to list documents within a collection, but search can compensate. Minor gap.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ispyridis/openarchives-gr-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server