Skip to main content
Glama

ArXiv MCP Server

by huanongfish
"""Tests for paper search functionality.""" import pytest import json from unittest.mock import patch from arxiv_mcp_server.tools import handle_search @pytest.mark.asyncio async def test_basic_search(mock_client): """Test basic paper search functionality.""" with patch("arxiv.Client", return_value=mock_client): result = await handle_search({"query": "test query", "max_results": 1}) assert len(result) == 1 content = json.loads(result[0].text) assert content["total_results"] == 1 paper = content["papers"][0] assert paper["id"] == "2103.12345" assert paper["title"] == "Test Paper" assert "resource_uri" in paper @pytest.mark.asyncio async def test_search_with_categories(mock_client): """Test paper search with category filtering.""" with patch("arxiv.Client", return_value=mock_client): result = await handle_search( {"query": "test query", "categories": ["cs.AI", "cs.LG"], "max_results": 1} ) content = json.loads(result[0].text) assert content["papers"][0]["categories"] == ["cs.AI", "cs.LG"] @pytest.mark.asyncio async def test_search_with_dates(mock_client): """Test paper search with date filtering.""" with patch("arxiv.Client", return_value=mock_client): result = await handle_search( { "query": "test query", "date_from": "2022-01-01", "date_to": "2024-01-01", "max_results": 1, } ) content = json.loads(result[0].text) assert content["total_results"] == 1 assert len(content["papers"]) == 1 @pytest.mark.asyncio async def test_search_with_invalid_dates(mock_client): """Test search with invalid date formats.""" with patch("arxiv.Client", return_value=mock_client): result = await handle_search( {"query": "test query", "date_from": "invalid-date", "max_results": 1} ) assert result[0].text.startswith("Error: Invalid date format")

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/huanongfish/arxiv-mcp'

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