Skip to main content
Glama

Servidor MCP de Crossref

Un servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con la API de Crossref.

Características

  • Buscar obras por título

  • Buscar obras por autor

  • Obtener detalles del trabajo por DOI

Related MCP server: Semantic Scholar MCP Server

Instalación

{ "mcpServers": { "crossref": { "command": "npx", "args": [ "-y", "@botanicastudios/crossref-mcp" ] } } }

Uso

El servidor proporciona tres herramientas principales:

1. Buscar por título

Buscar obras en Crossref por título:

// Example: Search for works containing "quantum computing" in the title { "title": "quantum computing", "rows": 5 // Optional, defaults to 5 }

2. Búsqueda por autor

Buscar obras en Crossref por autor:

// Example: Search for works by "Einstein" { "author": "Einstein", "rows": 5 // Optional, defaults to 5 }

3. Obtener trabajo por DOI

Recuperar una obra específica utilizando su DOI:

// Example: Get work with DOI "10.1088/1742-6596/1398/1/012023" { "doi": "10.1088/1742-6596/1398/1/012023" }

Formato de respuesta

Todas las respuestas se devuelven como objetos JSON estructurados con el siguiente formato:

Para búsquedas exitosas:

{ "status": "success", "query": { /* the original query parameters */ }, "count": 5, "results": [ { "title": "Work title", "authors": [ { "given": "First name", "family": "Last name", "name": "First name Last name" } ], "published": { "dateParts": [2023, 1, 15], "dateString": "2023-1-15" }, "type": "journal-article", "doi": "10.xxxx/xxxxx", "url": "https://doi.org/10.xxxx/xxxxx", "container": "Journal Name", "publisher": "Publisher Name", "issue": "1", "volume": "42", "abstract": "This is the abstract of the work, if available." } // additional results... ] }

Para la búsqueda de un solo DOI:

{ "status": "success", "query": { "doi": "10.xxxx/xxxxx" }, "result": { // work details as shown above } }

En caso de errores o falta de resultados:

{ "status": "error" | "no_results" | "not_found", "message": "Error message" | null, "query": { /* the original query parameters */ } }

Pruebas

El servidor incluye un conjunto completo de pruebas con Vitest. Las pruebas abarcan todas las herramientas disponibles e incluyen diversos escenarios, como respuestas correctas, resultados vacíos y gestión de errores.

Ejecución de pruebas

npm test

Estructura de la prueba

Las pruebas utilizan las capacidades de simulación de Vitest para simular las respuestas de la API de Crossref sin realizar solicitudes de red reales. La estructura de la prueba incluye:

  1. Datos simulados : ejemplos de respuestas para búsquedas de títulos, autores y DOI

  2. Controladores simulados : versiones de prueba de las funciones del controlador en mcp-server-test-handlers.js

  3. Casos de prueba : Pruebas para todas las herramientas que cubren:

    • Respuestas de API exitosas

    • Conjuntos de resultados vacíos

    • Manejo de errores y fallas de red

Ampliación de pruebas

Para agregar más casos de prueba:

  1. Agregue nuevos datos simulados al archivo de prueba si es necesario

  2. Cree casos de prueba adicionales en el bloque de descripción correspondiente

  3. Utilice el ayudante mockFetchResponse() para simular respuestas de API

Ejemplo:

it("should handle a new edge case", async () => { // Mock the response mockFetchResponse({ // Your sample response data }); // Call the handler const result = await handlers.searchByTitle({ title: "example" }); // Assert the expected results expect(result).toMatchObject({ // Expected response structure }); });
One-click Deploy
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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/botanicastudios/crossref-mcp'

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