arXiv
The io.b3os/arxiv pack: 2 actions with call snippets, fixture outputs, connection setup and error codes, generated from version 1.0.0.
io.b3os/arxiv 1.0.0 · research, science, search · MIT
Search arXiv preprints in physics, mathematics, computer science, quantitative biology, finance, statistics and economics, and fetch papers by id, through the official arXiv API. Keyless and read-only. Results are Atom XML (the API's only format). arXiv asks clients to make at most one request every 3 seconds. Thank you to arXiv for use of its open access interoperability.
Every call's result carries upstream_status and timing: validate_ms, inject_ms, render_ms, upstream_ms, map_ms and total_ms. upstream is the service's time; the others are B3OS's own (call actions). The snippets below show no timing values, because a fixture records none.
Connection
No credential: a keyless public API. Calls name no connection.
Hosts it reaches: export.arxiv.org.
Actions
| Action | Effect | MCP tool | Title |
|---|---|---|---|
search | read | arxiv__search | Search papers |
get-papers | read | arxiv__get-papers | Get papers by id |
search
Search papers. Search arXiv with its query syntax: field prefixes ti: (title), au: (author), abs: (abstract), cat: (category such as cs.AI), all:, combined with AND, OR and ANDNOT, phrases in double quotes. Sort by relevance, submission date or last update; page with start. Returns the Atom feed (XML) with title, authors, abstract, dates, categories and PDF link per paper.
Ref io.b3os/arxiv/search@1.0.0 · effect read · no connection · MCP tool arxiv__search
bashcurl -s https://beta-api.b3os.org/v1/actions/call \ -H "Authorization: Bearer $B3OS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "ref": "io.b3os/arxiv/search@1", "input": {"query": "ti:\"firecracker\" AND abs:serverless", "max_results": 1} }'
tsimport { B3OS } from "@b3os/sdk";const b3os = new B3OS();const result = await b3os.actions.call({ ref: "io.b3os/arxiv/search@1", input: { query: "ti:\"firecracker\" AND abs:serverless", max_results: 1 },});console.log(result.output);
pythonfrom b3os import B3OSb3os = B3OS()result = b3os.actions.call({ "ref": "io.b3os/arxiv/search@1", "input": { "query": "ti:\"firecracker\" AND abs:serverless", "max_results": 1, },})print(result["output"])
json{ "method": "tools/call", "params": { "name": "arxiv__search", "arguments": { "query": "ti:\"firecracker\" AND abs:serverless", "max_results": 1 } }}
Expose the pack as tools with --packs arxiv on the local server or ?packs=arxiv on the remote URL, and the agent calls arxiv__search with the action's input. The tool needs no connection. Without exposing the pack, actions_call takes the same input with ref.
Output, labeled fixture: Search papers (response recorded 2026-10-26). From the bundle's fixtures/search.json, not a live call.
json{ "atom": "<?xml version='1.0' encoding='UTF-8'?>\n<feed xmlns:opensearch=\"http://a9.com/-/spec/opensearch/1.1/\" xmlns:arxiv=\"http://arxiv.org/schemas/atom\" xmlns=\"http://www.w3.org/2005/Atom\">\n <id>https://arxiv.org/api/6uh+O3mDggNIqiYMXVGgSAZcskI</id>\n <title>arXiv Query: search_query=ti:\"firecracker\" AND abs:serverless&id_list=&start=0&max_results=1</title>\n <updated>2026-10-26T07:28:41Z</updated>\n <link href=\"https://arxiv.org/api/query?search_query=ti:%22firecracker%22+AND+abs:serverless&start=0&max_results=1&id_list=\" type=\"application/atom+xml\"/>\n <opensearch:itemsPerPage>1</opensearch:itemsPerPage>\n <opensearch:totalResults>1</opensearch:totalResults>\n <opensearch:startIndex>0</opensearch:startIndex>\n <entry>\n <id>http://arxiv.org/abs/2311.15999v1</id>\n <title>Microarchitectural Security of AWS Firecracker VMM for Serverless Cloud Platforms</title>\n <updated>2023-11-27T16:46:03Z</updated>\n <link href=\"https://arxiv.org/abs/2311.15999v1\" rel=\"alternate\" type=\"text/html\"/>\n <link href=\"https://arxiv.org/pdf/2311.15999v1\" rel=\"related\" type=\"application/pdf\" title=\"pdf\"/>\n <summary>Firecracker is a virtual machine manager (VMM) built by Amazon Web Services (AWS) for serverless cloud platforms, services that run code for end users on a per-task basis, automatically managing server infrastructure. Firecracker provides fast and lightweight VMs and promises a combination of the speed of containers, typically used to isolate small tasks, and the security of VMs, which tend to provide greater isolation at the cost of performance. This combination of security and efficiency, AWS claims, makes it not only possible but safe to run thousands of user tasks from different users on the same hardware, with the host system frequently switching between active tasks. Though AWS states that microarchitectural attacks are included in their threat model, this class of attacks directly relies on shared hardware, just as the scalability of serverless computing relies on sharing hardware between unprecedented numbers of users. In this work, we investigate how secure Firecracker is against microarchitectural attacks. First, we review Firecracker's stated isolation model and recommended best practices for deployment, identify potential threat models for serverless platforms, and analyze potential weak points. Then, we use microarchitectural attack proof-of-concepts to test the isolation provided by Firecracker and find that it offers little protection against Spectre or MDS attacks. We discover two particularly concerning cases: 1) a Medusa variant that threatens Firecracker VMs but not processes running outside them, and is not mitigated by defenses recommended by AWS, and 2) a Spectre-PHT variant that remains exploitable even if recommended countermeasures are in place and SMT is disabled in the system. In summary, we show that AWS overstates the security inherent to the Firecracker VMM and provides incomplete guidance for properly securing cloud systems that use Firecracker.</summary>\n <category term=\"cs.CR\" scheme=\"http://arxiv.org/schemas/atom\"/>\n <published>2023-11-27T16:46:03Z</published>\n <arxiv:comment>14 pages, 5 figures, 4 tables</arxiv:comment>\n <arxiv:primary_category term=\"cs.CR\"/>\n <author>\n <name>Zane Weissman</name>\n <arxiv:affiliation>Worcester Polytechnic Institute</arxiv:affiliation>\n </author>\n <author>\n <name>Thore Tiemann</name>\n <arxiv:affiliation>University of Lübeck</arxiv:affiliation>\n </author>\n <author>\n <name>Thomas Eisenbarth</name>\n <arxiv:affiliation>University of Lübeck</arxiv:affiliation>\n </author>\n <author>\n <name>Berk Sunar</name>\n <arxiv:affiliation>Worcester Polytechnic Institute</arxiv:affiliation>\n </author>\n </entry>\n</feed>\n"}
When the service answers with an error, the call fails with upstream_error and pack_error.code is one of:
pack_error.code | Service status | Retryable | Message |
|---|---|---|---|
rate_limited | 503, 429 | yes | arXiv asks for at most one request every 3 seconds; retry later. |
invalid_request | 400 | no | arXiv rejected the query; check the search_query syntax. |
get-papers
Get papers by id. Fetch up to 50 papers by arXiv id (2106.15928, or with a version, 2106.15928v2; old-style ids like hep-th/9901001 work too). Returns the Atom feed (XML) with one entry per id: title, authors, abstract, dates, categories, DOI and journal reference when present, and the PDF link.
Ref io.b3os/arxiv/get-papers@1.0.0 · effect read · no connection · MCP tool arxiv__get-papers
bashcurl -s https://beta-api.b3os.org/v1/actions/call \ -H "Authorization: Bearer $B3OS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "ref": "io.b3os/arxiv/get-papers@1", "input": {"ids": ["1706.03762"]} }'
tsimport { B3OS } from "@b3os/sdk";const b3os = new B3OS();const result = await b3os.actions.call({ ref: "io.b3os/arxiv/get-papers@1", input: { ids: ["1706.03762"] } });console.log(result.output);
pythonfrom b3os import B3OSb3os = B3OS()result = b3os.actions.call({ "ref": "io.b3os/arxiv/get-papers@1", "input": {"ids": ["1706.03762"]},})print(result["output"])
json{ "method": "tools/call", "params": {"name": "arxiv__get-papers", "arguments": {"ids": ["1706.03762"]}}}
Expose the pack as tools with --packs arxiv on the local server or ?packs=arxiv on the remote URL, and the agent calls arxiv__get-papers with the action's input. The tool needs no connection. Without exposing the pack, actions_call takes the same input with ref.
Output, labeled fixture: Get papers by id (response recorded 2026-10-26). From the bundle's fixtures/get-papers.json, not a live call.
json{ "atom": "<?xml version='1.0' encoding='UTF-8'?>\n<feed xmlns:opensearch=\"http://a9.com/-/spec/opensearch/1.1/\" xmlns:arxiv=\"http://arxiv.org/schemas/atom\" xmlns=\"http://www.w3.org/2005/Atom\">\n <id>https://arxiv.org/api/yw4w33C8e9wXTwBqkFUYhY2XrTY</id>\n <title>arXiv Query: search_query=&id_list=1706.03762&start=0&max_results=1</title>\n <updated>2026-10-26T06:52:08Z</updated>\n <link href=\"https://arxiv.org/api/query?search_query=&start=0&max_results=1&id_list=1706.03762\" type=\"application/atom+xml\"/>\n <opensearch:itemsPerPage>1</opensearch:itemsPerPage>\n <opensearch:totalResults>1</opensearch:totalResults>\n <opensearch:startIndex>0</opensearch:startIndex>\n <entry>\n <id>http://arxiv.org/abs/1706.03762v7</id>\n <title>Attention Is All You Need</title>\n <updated>2023-08-02T00:41:18Z</updated>\n <link href=\"https://arxiv.org/abs/1706.03762v7\" rel=\"alternate\" type=\"text/html\"/>\n <link href=\"https://arxiv.org/pdf/1706.03762v7\" rel=\"related\" type=\"application/pdf\" title=\"pdf\"/>\n <summary>The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely. Experiments on two machine translation tasks show these models to be superior in quality while being more parallelizable and requiring significantly less time to train. Our model achieves 28.4 BLEU on the WMT 2014 English-to-German translation task, improving over the existing best results, including ensembles by over 2 BLEU. On the WMT 2014 English-to-French translation task, our model establishes a new single-model state-of-the-art BLEU score of 41.8 after training for 3.5 days on eight GPUs, a small fraction of the training costs of the best models from the literature. We show that the Transformer generalizes well to other tasks by applying it successfully to English constituency parsing both with large and limited training data.</summary>\n <category term=\"cs.CL\" scheme=\"http://arxiv.org/schemas/atom\"/>\n <category term=\"cs.LG\" scheme=\"http://arxiv.org/schemas/atom\"/>\n <published>2017-06-12T17:57:34Z</published>\n <arxiv:comment>15 pages, 5 figures</arxiv:comment>\n <arxiv:primary_category term=\"cs.CL\"/>\n <author>\n <name>Ashish Vaswani</name>\n </author>\n <author>\n <name>Noam Shazeer</name>\n </author>\n <author>\n <name>Niki Parmar</name>\n </author>\n <author>\n <name>Jakob Uszkoreit</name>\n </author>\n <author>\n <name>Llion Jones</name>\n </author>\n <author>\n <name>Aidan N. Gomez</name>\n </author>\n <author>\n <name>Lukasz Kaiser</name>\n </author>\n <author>\n <name>Illia Polosukhin</name>\n </author>\n </entry>\n</feed>\n"}
When the service answers with an error, the call fails with upstream_error and pack_error.code is one of:
pack_error.code | Service status | Retryable | Message |
|---|---|---|---|
rate_limited | 503, 429 | yes | arXiv asks for at most one request every 3 seconds; retry later. |
invalid_request | 400 | no | arXiv rejected the query; check the search_query syntax. |