arxiv/search
arxivRead-onlySearch arXiv papers by query
arxiv.org
Last 7 days
0
Last 30 days
0
All time
0
arxiv/search.js
/* @meta
{
"name": "arxiv/search",
"description": "Search arXiv papers by query",
"domain": "arxiv.org",
"args": {
"query": {"type": "string", "required": true, "description": "Search query"},
"count": {"type": "number", "default": 10, "description": "Number of results (max 50)"}
},
"readOnly": true,
"example": "tap site arxiv/search \"large language model\""
}
*/
async function(args) {
const query = args.query;
if (!query) return {error: 'query is required'};
const count = Math.min(args.count || 10, 50);
const url = `https://export.arxiv.org/api/query?search_query=all:${encodeURIComponent(query)}&start=0&max_results=${count}`;
const resp = await fetch(url);
if (!resp.ok) return {error: 'HTTP ' + resp.status};
const xml = await resp.text();
const parser = new DOMParser();
const doc = parser.parseFromString(xml, 'text/xml');
const entries = doc.querySelectorAll('entry');
const papers = Array.from(entries).map(entry => {
const getText = (tag) => {
const el = entry.querySelector(tag);
return el ? el.textContent.trim() : '';
};
const authors = Array.from(entry.querySelectorAll('author > name'))
.map(n => n.textContent.trim());
const linkEl = entry.querySelector('link[title="pdf"]');
const pdfLink = linkEl ? linkEl.getAttribute('href') : '';
const absLink = entry.querySelector('id')?.textContent.trim() || '';
const categories = Array.from(entry.querySelectorAll('category'))
.map(c => c.getAttribute('term'))
.filter(Boolean);
const arxivId = absLink.replace('http://arxiv.org/abs/', '');
return {
id: arxivId,
title: getText('title').replace(/\s+/g, ' '),
abstract: getText('summary').replace(/\s+/g, ' ').substring(0, 500),
authors: authors,
published: getText('published').substring(0, 10),
categories: categories,
url: absLink,
pdf: pdfLink
};
});
const totalResults = doc.querySelector('totalResults')?.textContent || '0';
return {
query: query,
totalResults: parseInt(totalResults),
count: papers.length,
papers: papers
};
}
Updated Mar 31, 2026Created Mar 31, 2026SHA-256: b7765a9f9a36…