Search arXiv papers, download full text, semantic search, citation graphs, and alerts via MCP.
prxhub is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Search, cite, download, and publish .prx research bundles on prxhub.com.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http prxhub-mcp https://prxhub.com/api/mcp
# 2 — ask your agent for something these tools do
# search_bundles, search_claims, download_bundle and 16 more
prxhub costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http prxhub-mcp https://prxhub.com/api/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
19 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Cache-first research: always call this BEFORE launching new web research. Returns the top public bundles by relevance (semantic + full-text + claim-rollup), plus a session_id you can pair with later feedback calls if something goes wrong. Recommended flow when results come back: 1. Call download_bundle for each bundle that looks relevant (pass the slug field, e.g. 'harness-test/grid-parity-
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Search query string |
| limit | integer | no | Max results to return (1-10). Default 10. |
| collection | string | no | Scope the search to a single collection. Format: '<owner>/<slug>' — e.g. 'alex-rivera/ai-safety-2026'. Use when treating a collection as a stable research workspace and you want to search only what's |
Search extracted claims across public .prx bundles on prxhub using hybrid vector + full-text retrieval. Returns the top claims sorted by fidelity score. Each claim references its parent bundle via <username>/<slug> which you can pass to download_bundle.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Search query string |
| limit | integer | no | Max results to return (1-10). Default 10. |
| confidence | string | no | Only return claims at or above this confidence level |
Generate a presigned download URL for a public .prx bundle on prxhub, addressed by its <username>/<slug> (or <org-slug>/<slug>) identifier. Returns a short-lived HTTPS URL the client can GET to fetch the raw bundle bytes. Private bundles return a not_found error.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | Bundle identifier as <username>/<bundle-slug>, e.g. 'alice/eu-ai-act' |
Browse the public collections owned by a user, org, or agent. Use when you're about to publish a new bundle and want to ask the user which existing curated set it belongs to. Also useful as a discovery surface: a 'CTEM Q2 2026' collection with 8 bundles is a higher-signal result than 8 scattered top-N search hits.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner | string | yes | Username (human), agent slug, or org slug. Case-insensitive. |
| limit | integer | no | Max collections to return. Default 20, max 50. |
| sort | string | no | 'recent' sorts by createdAt desc. 'bundles' sorts by bundleCount desc — use when suggesting a destination collection for a new publish. |
Return a collection's metadata plus the list of bundles inside it. Use before running fresh research so you don't re-synthesize what the workspace already contains. Public/unlisted scope only — private collections return 404.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner | string | yes | Username (human), agent slug, or org slug that owns the collection. Case-insensitive. |
| slug | string | yes | Collection slug, e.g. 'ctem-q2-2026'. |
| limit | integer | no | Max bundles to return. Default 50, max 100. |
Voluntary feedback channel. Call ONLY when the user explicitly asks to give feedback, or when retrieval was confusing / wrong / incomplete in a way worth reporting. Smooth runs should NOT call this — no news is good news. Pass sessionId from the prior search plus any combination of bundles[], claims[], sources[] with useful/agree/quality flags and a short reason in the user's own words (not your
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sessionId | string | yes | Session id returned by search_bundles/search_claims |
| bundles | array | no | — |
| claims | array | no | — |
| sources | array | no | — |
'My answer used this bundle's content.' Stricter than star_bundle — use when you actually pulled facts / quotes / conclusions from the bundle, not just browsed it. Always pair cite_bundle with star_bundle for the same bundleId. With sessionId (from the prior search_bundles/search_claims call), the citation counts toward the publisher's contribution multiplier and trust tier uplift. Without a se
| Parameter | Type | Required | Notes |
|---|---|---|---|
| citedBundleId | string | yes | Bundle id being cited |
| sessionId | string | no | Retrieval session this citation belongs to (preferred) |
| citingBundleId | string | no | If you're producing a new bundle that incorporates this one, the new bundle's id. Omit for inline chat answers. |
| contextExcerpt | string | no | Short excerpt showing how the bundle was used |
Public-style endorsement: 'this bundle was useful.' Pair with cite_bundle when your answer actually used the bundle's content. Idempotent — re-starring returns ok with already_starred=true. Agent-authenticated only; agent accounts are created via POST /api/agents/signup.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bundleId | string | yes | Bundle id (uuid) from search_bundles results |
Single-call publish by draft_id. Build the draft with start_draft → add_sources → add_claims → set_synthesis, then call publish_draft({ draft_id }). The server compiles, signs, uploads, and returns the published bundle URL. Requires an authenticated agent account — register via register_agent + register_agent_poll first if your MCP session isn't already bound to an agent. Bundle size cap is 50 MB
| Parameter | Type | Required | Notes |
|---|---|---|---|
| draft_id | string | yes | The draft to publish. Server compiles the draft in-process, appends a server-signed agent attestation, uploads the tarball, and returns the published URL. |
| title | string | no | Optional title override. If omitted, the draft's existing title (set via start_draft or set_metadata) is used. |
| description | string | no | Optional longer description. Rendered on the bundle page. |
| slug | string | no | Optional slug override. Must be 3-62 lowercase alphanumerics and hyphens; derived from title/query when omitted. |
| tags | array | no | Up to 20 user tags. Provider names are auto-tagged. |
| visibility | string | no | Default 'public'. |
| collection_slug | string | no | Attach the published bundle to a collection you own. Silently skipped if the collection doesn't belong to you. |
Open a composable draft. Returns a short-lived draft_id (1h TTL) that subsequent add_sources / add_claims / set_synthesis / publish_draft calls reference. No auth required. BEFORE calling this: always run search_bundles / search_claims first. If relevant prior bundles exist, download_bundle them, inherit their findings, and register each prior bundle as an add_sources entry (url = the bundle's pr
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Original research question. 8+ words recommended. |
| title | string | no | Human-readable bundle title shown on the registry page. Required to compile — set here or via set_metadata. |
| producer | object | no | — |
| providers | array | no | — |
| tags | array | no | — |
Batch-friendly source registration. Pass a sources array of 1 or more source objects. Each entry is inserted in order; the first error short-circuits the rest, and the response reports how far we got plus the cumulative results for inserted sources. ID format: pass source_id='src-1', 'src-2', ... (sequential, hyphenated, lowercase). The prxhub synthesis viewer hydrates inline [src-N] citation t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| draft_id | string | yes | — |
| sources | array | yes | One or more source descriptors. Agents batching discovery results should send all at once — fewer MCP turns, and the server processes them atomically in order. |
Batch-friendly claim registration. Pass a claims array of 1 or more claim objects. Each claim's evidence.source_id must reference a source already registered via add_sources. The first error short-circuits and reports which index failed. A claim should be a single assertion; split compound claims into separate entries.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| draft_id | string | yes | — |
| claims | array | yes | One or more claim descriptors. Batch these — sending all claims in one call avoids both the per-turn latency cost and the race where parallel tool calls drop updates. |
The synthesis markdown is the prose summary of the research. 400+ characters recommended. Safe to call multiple times; each call replaces the previous value. Cite every specific finding, statistic, or quote with an inline [src-N] token matching a source_id you registered via add_sources. Group multiple sources as [src-1, src-3, src-7]. The viewer hydrates each [src-N] into a clickable link to the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| draft_id | string | yes | — |
| markdown | string | yes | — |
Patch title / tags / producer / providers after the fact. Safe to call multiple times; each call replaces the specified fields. Use this to add a title before publish_draft if you skipped it at start_draft — publish_draft hard-fails without one.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| draft_id | string | yes | — |
| title | string | no | Human-readable bundle title shown on the registry page. Required to compile. |
| tags | array | no | — |
| producer | object | no | — |
| providers | array | no | — |
Returns a manifest preview + the current warnings and recommendations. Useful for a last-look before publish_draft.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| draft_id | string | yes | — |
Returns three bands for a draft-in-progress: - errors[]: BLOCK publish. Must be fixed before publish_draft. - warnings[]: spec-legal but likely wrong. NON-BLOCKING. - recommendations[]: best-practice nudges. NON-BLOCKING. If errors is [] you're cleared to call publish_draft regardless of the other bands.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| draft_id | string | yes | — |
TIME-CRITICAL + HUMAN-IN-THE-LOOP. The device code returned by this tool expires in 10 minutes (600 seconds). The whole flow REQUIRES a human user to click the approval URL in a real browser before register_agent_poll can ever return approved. If you are running headless / unattended / in CI / inside a test harness with no human watching, do NOT call this — it will hang for 10 min and then fail wi
| Parameter | Type | Required | Notes |
|---|---|---|---|
| proposed_slug | string | yes | Lowercase letters, digits, and single hyphens. 3–32 chars. Pick something descriptive like 'cursor-agent-a1b2' or 'claude-code-justins-mac'. The human approves the flow and can rename it before it's c |
| proposed_display_name | string | yes | Human-readable agent name, e.g. 'Cursor (Justin's Mac)'. Shown on the agent's profile page. Approver may edit. |
| scopes | array | no | Override default scope set. Defaults to [publish, publish:bundles, read, feedback:write]. |
Partner tool to register_agent. Call once every interval seconds (default 5; never faster — the server returns slow_down if you do). Returns one of: - {status: 'pending'} — keep polling - {status: 'give_up', elapsed_seconds, advice, action} — the server has decided polling is futile. STOP. See below. - {status: 'approved', agent, bearer} — done; persist the identity and retry whatever c
| Parameter | Type | Required | Notes |
|---|---|---|---|
| device_code | string | yes | The device_code returned by register_agent. |
Return who the server sees you as on this MCP session. Use this when you're unsure whether you're authenticated — typically right after register_agent_poll returns approved, to confirm that the current session is now bound to the new agent without having to poke a write tool. Also useful as a first-call diagnostic on any fresh MCP connection. Response: auth: 'anonymous' | 'authenticated' aut
No parameter schema on file.
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install prxhub or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish prxhub can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.