Skip to main content
Glama
ispyridis

OpenArchives.gr MCP Server

by ispyridis
README.md
# 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

## 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:
```bash
cd "F:\MCP servers\openarchives-gr-mcp-server"
```

2. Install dependencies:
```bash
npm install
```

3. Set up your API key as an environment variable:
```bash
set OPENARCHIVES_API_KEY=your-api-key-here
```

Or create a `.env` file:
```bash
echo OPENARCHIVES_API_KEY=your-api-key-here > .env
```

4. Build the project:
```bash
npm run build
```

## Configuration

### For Claude Desktop

Add the server to your Claude Desktop configuration file:

**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`

```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:**
```json
{
  "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:**
```json
{
  "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:

### Basic Search
*"Search for articles about artificial intelligence in OpenArchives.gr"*

### Filtered Search  
*"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:
```bash
npm run dev
```

To build:
```bash
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.

TDQS

A3.7/5.0

Scored across 4 tools

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
ResponsivenessNo issues