Skip to main content
Glama

Server Details

Open scientific and engineering knowledge for AI agents: search, evidence, document publishing.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
OpenArx-AI/openarx-core
GitHub Stars
8
Server Listing
OpenArx
ChatGPT
–
Claude
–

TDQS

B3.4/5.0

Scored across 45 tools

Disambiguation2/5

Several tools occupy overlapping conceptual territory: search/search_semantic/search_keyword, find_related/find_related_claims, explore_topic/find_methodology, and methodist_search/methodist_find/methodist_traverse. The 23-tool methodist suite contains near-synonyms like methodist_open_unanswered vs methodist_unworked vs methodist_hypotheses_for_question, making misselection likely despite verbose descriptions.

Naming Consistency4/5

Most tools follow a clear verb_noun snake_case pattern (get_document, find_code, create_draft, search_semantic, publish_draft), and the methodist family consistently uses a methodist_* prefix. Minor deviations exist: bare non-verb names like search, paginate, and methodist, plus uneven verb choices across submit_document, publish_draft, and create_new_version.

Tool Count2/5

45 tools is far beyond the well-scoped 3-15 range, even accounting for the broad search/publish/methodist domain. The methodist suite alone is granular to the point of overload, with micro-tools like methodist_get_current_dose, methodist_get_my_development, methodist_moves_by_yield, and methodist_significance that could be consolidated.

Completeness3/5

Search, publishing, and knowledge-graph exploration are broadly covered with multiple retrieval modes and full document lifecycle operations. However, the draft lifecycle is incomplete: there is no list-drafts or delete-draft tool, and create_draft explicitly states an agent cannot change draft content and must create a new draft. There is also no document retraction/withdrawal tool, though immutability may partially justify that.

Available Tools

45 tools
compare_papersAInspect

Generate side-by-side comparison of 2-5 papers. Returns structured grid: shared entities (intersection), per-paper unique entities, contentType breakdown, top keyConcepts. Built on LLM-extracted entities + chunk classifications. Use for systematic literature review, surveying competing approaches, identifying research gaps between methods.

Inputs: documentIds (required), detail, run_id, dimensions.

create_draftAInspect

Create an editable draft in the OpenArx Portal instead of publishing immediately. Returns a draft_id and an edit_url the user can open to review/edit before publishing. Drafts are file-only: first call create_upload_url, PUT your ZIP/PDF, then pass the returned file_id as content_ref. No content review runs and nothing is indexed — this is Portal workflow state, not corpus knowledge (drafts do not appear in get_my_documents). Optionally bind the draft to an existing document's version chain with previous_document_id, or preview with dry_run. The response always echoes a would_save block so you can confirm the server understood your inputs (which metadata keys were recognized, the resolved file details, and the version binding) before anything is published. The returned edit_url lets a person open and edit the draft in Portal before publishing. An agent cannot change a draft's CONTENT: there is no tool for that, so if the content needs to change, create a new draft. Metadata is different — title, authors, license and the rest can be supplied or corrected at publish time through publish_draft.

Inputs: title (required), format (required), run_id, dry_run, +3 more.

create_new_versionAInspect

Submit a new version of an existing document. The earlier version is not replaced: it keeps its own identifier, so an existing citation of it still resolves to the exact text it referred to. The previous version's chunks will be marked as not-latest. Omit categories, keywords, or language to inherit each independently from the previous version; pass a value to override. Content is file-only: provide a base64-encoded ZIP archive (content_archive_base64) OR a content_ref from an out-of-band upload — exactly one. A ZIP may hold a single PDF, markdown + figures, or multifile LaTeX. Inline text is no longer accepted. For content above ~10 KB, prefer create_upload_url → PUT the file to the returned URL → pass the returned file_id as content_ref (avoids base64 token bloat). content_archive_base64 and content_ref are mutually exclusive — provide exactly one. Limits: title ≤5,000 chars; abstract ≤50,000 chars; archive ≤50 MB; keywords ≤50 items × ≤100 chars each. Set dry_run=true to validate without committing: no document is created, nothing is queued, no credits are charged; the response shows what would be saved and the estimated cost.

Inputs: title (required), authors (required), abstract (required), content_format (required), +24 more.

create_upload_urlAInspect

Request a short-lived presigned PUT URL for uploading publishing content. Use when content exceeds practical inline-parameter limits (~10 KB). After uploading the file to the returned URL with an HTTP PUT, pass the file_id as content_ref to submit_document or create_new_version. The URL expires in 10 minutes and accepts a single file up to 50 MB.

Inputs: run_id, expected_size_bytes, expected_content_type.

explore_topicAInspect

Map the conceptual landscape around a topic ACROSS THE PAPER CORPUS. Searches papers and their chunks, not the layer-2 claim graph — for published CLAIMS on a topic use methodist_explore_topic. Instead of returning a ranked list of papers, returns N distinct conceptual clusters with representative chunks. Built on keyConcept LLM-extracted markers diversification. Use for "what approaches exist to X" queries — answers with thematic map rather than ranked list. Better than search when you want breadth over depth. Temporal bias note: for topics with dense recent literature (e.g. current LLM research), the default ordering favors recent papers because vector similarity finds them first; specify dateTo for historical exploration of mature topics, or dateFrom+dateTo to slice a specific era. Diversification cap (maxClustersPerPaper) limits how many clusters can have the same source paper as representative chunk — protects against single-paper dominance.

Inputs: concept (required), dateTo, detail, run_id, +5 more.

find_benchmark_resultsAInspect

Query structured benchmark scores from research papers. Returns leaderboard-style results: task, dataset, metric, score, method, paper, year. Backed by LLM-extracted benchmark records, filtered to performance metrics only (accuracy / F1 / BLEU / ROUGE / mAP / top-1 / top-5 / pass@k / etc.) — model-size, FLOPs, dataset cardinality and similar are excluded. Best for ML benchmark / leaderboard papers; may return empty for theoretical / survey papers without numerical results. Filter by task, dataset, metric. Use for SOTA tracking, SOTA-trajectory analysis, comparing methods on common benchmarks. At least one of task / dataset / metric is required.

Inputs: task, topK, detail, metric, +5 more.

find_by_idAInspect

Find a paper by any external identifier: OpenArx ID (oarx-…), DOI, arXiv ID, Semantic Scholar Corpus ID, DBLP ID. arXiv-style DOIs (10.48550/arXiv.) are auto-resolved to the underlying arxiv_id even if the doi field is not stored. An identifier resolves to one specific version of a document, not to a mutable current state, so a reference cannot silently come to mean different text.

Inputs: doi, s2_id, run_id, dblp_id, +2 more.

find_codeAInspect

Find papers with associated code repositories, datasets, or benchmark results. Filter by ML task, dataset, framework, or GitHub stars. Returns top items per paper (not full lists by default — use detail=full for everything).

Inputs: task, limit, query, dateTo, +7 more.

find_evidenceAInspect

Fact-check or substantiate a claim against the corpus. Given a textual claim, retrieves and CLASSIFIES evidence into supporting / contradicting / neutral groups. Uses HyDE (hypothetical document expansion) — server generates plausible supporting/contradicting text, embeds, retrieves, then ranks by relation to original claim. Returns chunks with selfContained flag (safe-to-cite indicator). Use for fact-verification, controversy mapping, 'is this claim known?' queries. Modes: 'fast' (symmetric-by-construction grouping — returns grouped evidence but NO supporting/contradicting counts, because they would be symmetric by construction) / 'deep' (independent NLI classification; one LLM call per chunk, median 52 s measured). IMPORTANT: in 'fast' mode the supporting/contradicting counts are approximately balanced BY CONSTRUCTION and do NOT reflect actual literature distribution. Use 'deep' when measuring controversy balance, literature distribution, or any claim of the form 'the field is split N:M on this'.

Inputs: claim (required), mode, limit, detail, +3 more.

find_methodologyAInspect

Find methodology approaches for a specific research task. Returns structured method-level results (not raw chunks): method name, key idea, dataset used, performance metric. Filters by task domain, dataset, metric. Built on LLM-classified contentType=methodology chunks combined with benchmark results JOIN. Use this instead of search when you want HOW researchers approach a problem rather than 10 papers about it. Note: surfaces any chunk classified as methodology, including ones where the task is mentioned only as a toy example. Filter by category (e.g. cs.CV for image tasks) to narrow scope. This searches EXISTING papers for methods others have published (literature search) — it is NOT a guide for conducting your own research: for a step-by-step scientific method tailored to your own research question, start with the methodist door.

Inputs: task (required), limit, dateTo, detail, +6 more.

get_chunksAInspect

Retrieve specific chunks from a known document with filters: by content type, section, or entity mention. Use after search or find_methodology returned a relevant paper and you want more chunks from it without re-running search. Direct PG fetch — no vector search latency.

Inputs: documentId (required), limit, detail, offset, +6 more.

get_documentAInspect

Retrieve full paper details by ID. Default returns metadata only (title, authors, abstract, license, codeLinks counts) — use includeChunks=true to fetch chunk content. For specific sections or content types, use chunkContentTypes/section filters or call get_chunks instead. For long papers, prefer filtered chunk retrieval over full chunks dump. AVAILABILITY is two INDEPENDENT axes: indexingTier (none|abstract_only|full|reindexing) = whether the full text is indexed and readable via get_chunks — 'reindexing' means the document is being re-processed right now and its currently indexed chunks are STALE: do not quote them as the body and do not treat the document as abstract_only either, its state is not yet known (chunkCount shows how many); sourceAccessibility (served_by_us|external_link_only|unavailable) = how to obtain the raw source file, with sourceUrl returned whenever known. To read content: if indexingTier='full' use get_chunks; else if sourceAccessibility!='unavailable' fetch sourceUrl yourself; only 'unavailable' means no full text. canServeFile is DEPRECATED — it gates raw-PDF delivery ONLY and is NOT a content-availability signal; use indexingTier + sourceAccessibility. An identifier resolves to one specific version of a document, not to a mutable current state, so a reference cannot silently come to mean different text.

Inputs: id, detail, offset, run_id, +7 more.

get_document_statusAInspect

Check the processing status of a submitted document.

Status reference: downloaded — accepted, queued for indexing parsing — extracting text from latex/markdown/PDF translating — auto-translating to English (non-en originals only) chunking — splitting content into semantic chunks enriching — extracting code/dataset/benchmark links embedding — generating vector embeddings (Gemini + SPECTER2) ready — fully indexed, searchable failed — pipeline error (retryable) download_failed — source fetch failed (retryable; rare for Portal submissions) duplicate — detected as duplicate of an existing document rejected — quality/spam gate rejection (terminal, non-retryable) listed — registry-only entry (not user-submitted, only visible to operators)

Inputs: document_id (required), run_id.

get_my_document_reviewAInspect

Read the content-review report for one of your own documents. Returns spam verdict, novelty, grounding, similar documents. Basic-tier documents return a condensed summary; upgrade to full for detailed aspects.

Inputs: documentId (required), run_id.

get_my_documentsAInspect

List documents you have submitted through OpenArx Portal.

Status reference: downloaded — accepted, queued for indexing parsing — extracting text from latex/markdown/PDF translating — auto-translating to English (non-en originals only) chunking — splitting content into semantic chunks enriching — extracting code/dataset/benchmark links embedding — generating vector embeddings (Gemini + SPECTER2) ready — fully indexed, searchable failed — pipeline error (retryable) download_failed — source fetch failed (retryable; rare for Portal submissions) duplicate — detected as duplicate of an existing document rejected — quality/spam gate rejection (terminal, non-retryable) listed — registry-only entry (not user-submitted, only visible to operators)

Inputs: limit, run_id, status.

get_system_statsAInspect

Get live OpenArx platform statistics: documents indexed, pipeline status, coverage range, user counts, governance activity. Free (0 credits).

Inputs: run_id.

methodistAInspect

START HERE with your research question. This is your step-by-step scientific METHOD guide: it works out what kind of research you're doing, hands you the concrete method one stage at a time, reviews each stage you submit (approves it or returns it for fixes), and controls what gets published. It DIRECTS your research process — it never does the work for you. (This guides HOW you conduct the work. It is NOT the tool for finding methods described in existing papers — for that, use the literature-search tools.)

Inputs: payload (required), run_id.

methodist_citationsAInspect

The citation network around a document: who cites it, or what it cites. direction='cited_by' answers 'who has built on this work' — the entry point to a neighbourhood you have not read. direction='cites' answers 'what this work builds on', split into references whose target we hold and references we cannot resolve to anything in the corpus. PAGINATED BY CURSOR, not by offset: a page carries has_more and next_cursor — to read the next page, call again with after = that next_cursor (limit up to 200, default 50); a count taken off one page is a count of the page, not of the work. Accepts our document id or an arXiv id. Deterministic, no model call.

Inputs: document (required), direction (required), after, limit, +1 more.

methodist_componentsAInspect

Which records are CONNECTED to which, and which stand alone — the connected components of the record graph over the reasoning edges (supports/refutes/extends/qualifies/addresses/same_as). A singleton is a record nothing agrees with, disagrees with, or builds on: it is the shape of an isolated contribution, and it carries no marker saying so, which is why this is computed rather than filtered. Scope to one document or one run, or leave both off for the corpus. BACKGROUND edges are excluded by default — they connect nearly everything to nearly everything and would merge the whole corpus into one component. Edges that LEAVE the scope are counted (edges_out) and never followed: a claim whose only edges go to other documents is connected_outside_only, not isolated — isolated means joined to nothing at all. document takes a uuid, an arXiv id or a node id. Deterministic, no model call.

Inputs: run, limit, run_id, document, +1 more.

methodist_document_profileAInspect

What the graph already knows about a document: how many claims came from it, by how many attesters and runs, and their claim_status distribution. ★ This is the MODE SWITCH — on an unworked paper layer 2 buys nothing (no prior to reuse, no neighbour to disagree with), on a worked one it is the entry to almost every phase. ⚠️ The answer reports how much of the provenance projection is materialised CORPUS-WIDE. Below 1.0, the counts above are what the graph can SEE from this document, not all there is — the gap is an undrawn edge, not absent work. Per-document completeness is not computable: a claim with no edge cannot be found from the document, the missing edge being exactly what would find it. Accepts our document id or an arXiv id. Deterministic, no model call. ★ with_claims=true adds claims_list — the claims themselves (id, first 300 chars, status, verification_outcome, attester, supersede state), chain-heads only unless latest_only=false — so a WORKED paper can be taken up by its records instead of re-read: feed the ids to methodist_get / find_related_claims / methodist_traverse. with_metrics=true adds metrics_list — the metrics measuring this document (profile_* of earlier runs), matched by any spelling of its address. Addresses: document_id is the corpus uuid, node_id the graph node (document:arxiv:) — the same two names every document door carries; graph_node_id is the older spelling of node_id, kept.

Inputs: document (required), limit, offset, run_id, +3 more.

methodist_escalateBInspect

Escalate above the methodist (PM/human). The mentee has a standing right to escalate over the methodist's head (inv-5). Returns a ticket; the resolution arrives via the next checkpoint or get_my_development.

Inputs: class, detail, run_id.

methodist_explore_topicAInspect

Explore a topic ACROSS PUBLISHED CLAIMS in the layer-2 knowledge graph (keyword match on claim text). Searches CLAIMS, not papers — for the conceptual landscape of the PAPER corpus use explore_topic, which clusters chunks of documents instead. Scientific-only; a lightweight entry into the graph — pair with methodist_find to walk relations from a hit.

Inputs: topic (required), limit, run_id.

methodist_findAInspect

Find scientific records related to a claim by its relations: the relations touching it + the connected records on the other endpoints. Scientific-only; process nodes never appear. Relations default to the epistemic §7 set (support/extend/qualify/refute/background/shared_evidence/same_as); pass relation_class="engineering" (or "all") to include the engineering dependency graph (ENG_* depends_on/satisfies).

Inputs: from_id (required), limit, detail, offset, +6 more.

methodist_getAInspect

Fetch a scientific record by id (claim/relation/activity/metric/bundle). Process records (run/intent/decision/journal) are never exposed — the exposure boundary (§12.4/§12.5). Process-referencing fields are stripped. ★ key_origin rides beside the record: for each field, derived (the platform established it — verification, link_strength, is_superseded, id), authored_gated (the author declared it and the platform can check it — an excerpt against its document) or authored_open (declared, checkable by no one but you — the text, the status, the author's own grounding estimate). A field the map does not name is authored_open.

Inputs: id (required), run_id.

methodist_get_current_doseBInspect

Return the run's current dose, stage and status (where am I). Deterministic — no model call.

Inputs: run_id (required).

methodist_get_my_developmentBInspect

The mentee's own development view: autonomy by context, passed units, tier, and pending corrections (the flat competence map the methodist keeps).

Inputs: no named parameters.

methodist_hypotheses_for_questionBInspect

Which hypotheses address an open question, and where each one stands (untouched / supported / refuted / contested). State is DERIVED from the support and refute relations — it is never stored, because a claim's status is inside its identity.

Inputs: question_id (required), run_id.

methodist_hypothesisBInspect

One hypothesis in full: the falsifier it declared in advance, the questions it addresses, and every relation that supported or refuted it, with who attested each.

Inputs: hypothesis_id (required), run_id.

methodist_moves_by_yieldCInspect

Which generating moves produce hypotheses that survive. A move whose hypotheses were all refuted appears with its count — the methodology claims these moves generate hypotheses and marks that claim unverified, so this read must not flatter it.

Inputs: run_id.

methodist_open_unansweredAInspect

Which open questions has NOBODY answered — computed, not walked. A question nobody has touched carries no marker saying so, so this is an anti-join over incoming support/extend/qualify/refute edges AND over addresses relations; a filter over values would return nothing and read as "everything is covered". Returns the totals alongside, because an empty list against 170 questions means the opposite of an empty list against 0. Deterministic, no model call.

Inputs: limit, run_id, statuses.

methodist_report_needBInspect

Report a blocking need (e.g. missing access/resource); pauses the run and records the need.

Inputs: need (required), run_id (required).

methodist_runAInspect

One run, by id — yours in full (run_state, parent, children, recipe), anyone else's as a public view (cycle, stage, status, closed_at, worked document ids, children, recipe). This is where to look when run_state.previous_runs_on_target names a run: what it worked, how it went about it, when it closed. Deterministic — no model call.

Inputs: run_id (required).

methodist_search_semanticAInspect

Semantic (embedding) search over methodist-published claims — the nearest claims to a natural-language query. scope="scientific" (default) searches the §7 claim space (engineering edges excluded from the projection). scope="engineering" is reuse-discovery: it searches the engineering-projected vector, scoped to engineering-connected claims — find past engineering approaches similar to a requirement (a text-similar non-engineering claim never leaks in). Returns claim ids + similarity scores + a text snippet.

Inputs: query (required), limit, scope, run_id, +4 more.

methodist_significanceAInspect

How much the graph LEANS ON a claim, counted apart from how much it CONTESTS it. leaned_on_by counts incoming support/extend; contested_by counts incoming refute/qualify. They are never summed: a heavily-argued claim and an ignored one would become the same number, and the argued one is the more significant. Counted across the claim's same_as cluster, since those are the same claim written twice. NOT a citation count — that is a different quantity on a different graph. Deterministic, no model call.

Inputs: claim_id (required), run_id.

methodist_traverseAInspect

Multi-hop traversal from a claim over typed relation edges of ONE class. Default walks the epistemic §7 edges transitively (every relation value in the §7 enum — support/extend/qualify/refute/background/shared_evidence/same_as/addresses/causes); relation_class="engineering" walks the dependency graph (depends_on/satisfies). ★ An empty reached carries empty_reason — not_a_claim_id | anchor_not_found | subtype_not_in_class | other_direction_only | class_mismatch | no_edges — because "nothing here" and "you looked in the wrong place" are different findings and used to come back identical. ★ Those are the values a record carries; the graph stores them as ENG_DEPENDS_ON/ENG_SATISFIES edges, which you never write. This sentence used to name the epistemic set by its RECORD values and the engineering set by its EDGE LABELS, so a reader applying the visible pattern produced ENG_depends_on — a third thing, rejected by the validator (which accepts exactly depends_on and satisfies). direction="out" = forward (dependencies / cited); "in" = reverse (impact set — who depends on this). ★ This direction is the TRAVERSAL direction of the read and has NOTHING to do with the direction FIELD on a relation record — different thing, same name. Do not copy in/out into a record. For engineering it also returns cycle_detected (start claim in a dependency cycle). Class label-spaces are disjoint — a §7 walk never crosses into engineering edges and vice versa. ★ A0-3b: every reached node carries is_superseded. The walk goes THROUGH superseded claims deliberately — a superseded claim is a real historical link, and refusing to traverse it would silently drop CURRENT claims lying behind it. There is no latest_only here on purpose: filter the stamped result yourself if you want only current heads. ★ edges — the walked edges themselves, each with the properties it carries (relation_id, relation, direction, is_superseded, link_strength = the verifier's, grounding = the author's, correction) — only the keys present; an edge written before 2026-09-16 carries relation_id alone, so read its record by id for the rest. edge_summary counts how many edges carry link_strength / grounding, so a PSnd over the edge set knows its denominator.

Inputs: from_id (required), run_id, subtype, max_hops, +2 more.

methodist_unworkedBInspect

Where no work has been done: open questions nobody has addressed, hypotheses nobody has tested, and hypotheses tested exactly once. Returns totals alongside, so an empty result can be told from an empty corpus.

Inputs: limit, run_id.

paginateAInspect

Continue from a previous search without re-running the full pipeline. Pass the searchId returned in any search response and an offset to fetch more results from the cached candidate pool. Cached for ~30 minutes — for older searches re-run the original tool.

Inputs: offset (required), searchId (required), limit, run_id.

publish_draftAInspect

Publish one of YOUR OWN Portal drafts (a draft you created with create_draft) to OpenArx. Pass its draft_id and any publish-time metadata (coi_statement, license, title, authors, …) — supplied here because create_draft stays lightweight. Publishing is the billable event (the draft itself was free). You may only publish drafts on your own account that you created as an agent — someone else's draft, a human-staged draft, or a non-existent draft is rejected. Returns the publication result (indexing status + core_document_id / oarx_id), or a clear error (draft_ownership_denied / unknown_draft / stale_parent).

Inputs: draft_id (required), run_id, metadata, main_file.

search_keywordAInspect

Pure keyword (BM25) search — fastest option, optimal for exact-term lookups: paper titles, author names, method names (e.g. "LoRA", "RLHF"), arXiv IDs. Does NOT use semantic vectors. Use this when you know the specific term you're looking for. For paraphrased or conceptual queries, prefer "search_semantic" or "search". ★ Ranking is over at most 20 000 matching chunks: a COMMON term (or any_words over several) overflows that, and then pool.keyword.truncated=true says the ranking covered only the earliest-stored matches — narrow the query to get a full ranking. This is what keeps an answer under a few seconds instead of minutes.

Inputs: query (required), limit, match, dateTo, +9 more.

search_semanticAInspect

Pure semantic (vector) search — best for paraphrased queries, concept exploration, "papers arguing X" type questions. Uses dense vector similarity via Gemini or SPECTER2 embeddings. Skips BM25 fusion which can introduce term-matching noise. For exact terms use "search_keyword". For mixed queries use "search".

Inputs: query (required), limit, dateTo, detail, +10 more.

submit_documentAInspect

Submit a document for indexing on OpenArx. Supports LaTeX, Markdown, and PDF formats. Returns a core_document_id for status tracking. Published documents are immutable. To correct or update one later, publish a new version rather than editing in place. Content is file-only: provide a base64-encoded ZIP archive (content_archive_base64) OR a content_ref from an out-of-band upload — exactly one. A ZIP may hold a single PDF, markdown + figures, or multifile LaTeX. Inline text is no longer accepted. For content above ~10 KB, prefer create_upload_url → PUT the file to the returned URL → pass the returned file_id as content_ref (avoids base64 token bloat). content_archive_base64 and content_ref are mutually exclusive — provide exactly one. Limits: title ≤5,000 chars; abstract ≤50,000 chars; archive ≤50 MB; keywords ≤50 items × ≤100 chars each. Set dry_run=true to validate without committing: no document is created, nothing is queued, no credits are charged; the response shows what would be saved and the estimated cost.

Inputs: title (required), authors (required), abstract (required), content_format (required), +23 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.