Skip to main content
Glama

Server Details

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

Ownership verified

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
83.5% over 68 days
Last Tested
Transport
Streamable HTTP
URL
Repository
OpenArx-AI/openarx-core
GitHub Stars
8
Server Listing
OpenArx

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.

Tool Schema Changelog

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

  1. 1 tool update
    • Changedpublish_draft1 field changed
      • addedInput schema / properties / main_file
        Added value: +{
        +  "description": "Optional: which entry INSIDE your uploaded ZIP is the main document, as its path in the archive (e.g. \"main.tex\" or \"paper/main.tex\"). Omit it and the platform takes the single .pdf/.tex/.md at the archive root; a multi-file LaTeX project, or an archive wrapped in a folder, needs it named — the error then lists the candidates. Ignored for a PDF upload. Never the name of the uploaded file itself.",
        +  "type": "string"
        +}
  2. 1 tool update
    • Changedmethodist_document_profile3 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"window over claims_list, default 20"New value: +"window over claims_list, default 200 (the whole list up to 200; claims_truncated only beyond)"
      • changedInput schema / properties / limit / maximum
        Previous value: -100New value: +200
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "start of the claims_list window (0-based) for lists longer than limit; claims_total says how many there are",
        +  "minimum": 0,
        +  "type": "integer"
        +}
  3. 2 tool updates
    • Changedmethodist1 field changed
      • changedInput schema / properties / payload / description
        Previous value: -"Mode fields the routed sub-procedure reads: diagnose → {intent, focus?, parent_run_id?}; checkpoint → {submission{records[],track_note?}, stage, claimed_usage?} (submission_hash is SERVER-derived — do NOT send it); ask → {question, focus?}. Send this as a JSON object; a JSON string of the same object is also accepted, but a string that is not a JSON object is rejected."New value: +"Mode fields the routed sub-procedure reads: diagnose → {intent, focus?, parent_run_id?, target_documents?: string[] (the works this run is ABOUT — arXiv ids, arXiv urls or document ids; the platform writes them on the run as run_state.target and draws TARGETS edges; unresolvable names come back in declared_targets.unresolved), budget?: {protocol: \"A\" | \"B\", frame?: string | number} (A = a frame fixed with the human up front, B = decisions as you go; written on the run as run_state.budget)}; checkpoint → {submission{records[],track_note?}, stage, claimed_usage?} (submission_hash is SERVER-derived — do NOT send it); ask → {question, focus?}. Send this as a JSON object; a JSON string of the same object is also accepted, but a string that is not a JSON object is rejected."
    • Addedmethodist_run
  4. 1 tool update
    • Changedmethodist_document_profile1 field changed
      • addedInput schema / properties / with_metrics
        Added value: +{
        +  "description": "also list the metrics that MEASURE this document (metric.measures_entity names it, in any spelling) — the profile a repeat review starts from (default off)",
        +  "type": "boolean"
        +}
  5. 1 tool update
    • Changedmethodist_find1 field changed
      • changedInput schema / properties / detail / description
        Previous value: -"How much of each connected record to return. Levels DROP WHOLE FIELDS and never cut a string: 'minimal' = identity + supersede state, no claim text; 'standard' = + the claim itself, whole, without evidence; 'full' (default) = everything. Measured ~145 / ~658 / ~1281 characters per record."New value: +"How much of each record to return — applies to `connected` AND to `relations`. Levels DROP WHOLE FIELDS and never cut a string: 'minimal' = identity + supersede state + verification_outcome + a 200-char text_preview (a separate field that names itself a preview, with text_length beside it — never quote from it); 'standard' = + the claim itself, whole, without evidence (relations: + citation_context); 'full' (default) = everything. Measured 2026-09-17 on a 20-edge claim: full 87 270 chars, standard 63 326, minimal 45 431 before relations were levelled — relations were 91 % of minimal, now they are not."
  6. 1 tool update
    • Changedmethodist_document_profile3 fields changed
      • addedInput schema / properties / latest_only
        Added value: +{
        +  "description": "claims_list: chain-heads only (default TRUE); false lists superseded claims too, stamped",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "window over claims_list, default 20",
        +  "exclusiveMinimum": 0,
        +  "maximum": 100,
        +  "type": "integer"
        +}
      • addedInput schema / properties / with_claims
        Added value: +{
        +  "description": "also list the claims derived from this document (default off)",
        +  "type": "boolean"
        +}
  7. 1 tool update
    • Changedmethodist_search_semantic2 fields changed
      • changedInput schema / properties / claim_status_set / description
        Previous value: -"optional filter by KIND of statement instead of by exact value: sourced (what a source asserts) | derived (your own inference) | action (your own decision or commitment) | open (a question or a gap). Expands to that set's values, so you never enumerate them by hand. Ignored if claim_status is also given — the exact value is more specific."New value: +"optional filter by KIND of statement instead of by exact value: sourced (what a source asserts) | derived (your own inference) | action (your own decision or commitment) | open (a question or a gap) | proposed (a hypothesis or forecast put up to be tested). Expands to that set's values, so you never enumerate them by hand. Ignored if claim_status is also given — the exact value is more specific."
      • changedInput schema / properties / claim_status_set / enum
        Previous value: -[
        -  "sourced",
        -  "derived",
        -  "action",
        -  "open"
        -]New value: +[
        +  "sourced",
        +  "derived",
        +  "action",
        +  "open",
        +  "proposed"
        +]
  8. 1 tool update
    • Addedmethodist_components
  9. 1 tool update
    • Addedmethodist_document_profile
  10. 3 tool updates
    • Addedmethodist_citations
    • Addedmethodist_open_unanswered
    • Addedmethodist_significance
  11. 6 tool updates
    • Changedget_document1 field changed
      • addedInput schema / properties / chunkEntities
        Added value: +{
        +  "description": "Soft filter chunks by entity (case-insensitive ANY match). Implies includeChunks=true. Chunks mentioning a listed entity return first; chunks with NO entities recorded are kept (about a quarter of the corpus predates entity extraction, and dropping them would hide real matches); only chunks that HAVE entities, none of them matching, are dropped.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
    • Addedmethodist_hypotheses_for_question
    • Addedmethodist_hypothesis
    • Addedmethodist_moves_by_yield
    • Addedmethodist_unworked
    • Changedsearch_keyword1 field changed
      • addedInput schema / properties / match
        Added value: +{
        +  "description": "How the words are combined. DEFAULT 'all_words' — EVERY word must appear in the chunk, which is why long queries often return nothing. ⚠️ MEASURED 2026-09-11 over archived all_words traffic: 6-10 word queries CAME BACK empty 78% of the time on this door — a figure about that traffic under that mode, which this parameter exists to change. Adding more words makes the default stricter, not broader. ⚠️ Matching happens INSIDE ONE CHUNK, so that figure depends on the CURRENT chunking policy as much as on the mode — re-measure if you need a current one rather than relying on this. stricter, not broader. Use 'any_words' to find chunks matching ANY of them, and 'phrase' for the words adjacent and in order. ⚠️ Writing `or` in the query text does NOT ask for any_words — it is dropped as a stop word; name the mode instead.",
        +  "enum": [
        +    "all_words",
        +    "any_words",
        +    "phrase"
        +  ],
        +  "type": "string"
        +}
  12. 1 tool update
    • Changedmethodist_search_semantic2 fields changed
      • changedInput schema / properties / claim_status / description
        Previous value: -"optional filter on the claim_status payload field"New value: +"optional filter on the exact claim_status value"
      • addedInput schema / properties / claim_status_set
        Added value: +{
        +  "description": "optional filter by KIND of statement instead of by exact value: sourced (what a source asserts) | derived (your own inference) | action (your own decision or commitment) | open (a question or a gap). Expands to that set's values, so you never enumerate them by hand. Ignored if claim_status is also given — the exact value is more specific.",
        +  "enum": [
        +    "sourced",
        +    "derived",
        +    "action",
        +    "open"
        +  ],
        +  "type": "string"
        +}
  13. 1 tool update
    • Changedmethodist_find1 field changed
      • changedInput schema / properties / limit / description
        Previous value: -"Max CONNECTED records to return — the claims, which are 99.96% of this response by measurement; `relations` keeps its own cap. Omit for all of them. The answer always carries total / returned / complete, so a windowed read is never mistaken for an exhausted one."New value: +"Max CONNECTED records to return — the claims, which are 99.96% of this response by measurement; `relations` keeps its own cap. ★ DEFAULT 20, chosen by measurement: 98.9% of documents carry 20 claims or fewer and so arrive complete in one call. It is a default, NOT a ceiling — ask for more and you get more. Every answer carries total / returned / complete (and nextOffset when there is more), so a defaulted read is never mistaken for an exhausted one."
  14. 2 tool updates
    • Changedmethodist_find3 fields changed
      • addedInput schema / properties / detail
        Added value: +{
        +  "description": "How much of each connected record to return. Levels DROP WHOLE FIELDS and never cut a string: 'minimal' = identity + supersede state, no claim text; 'standard' = + the claim itself, whole, without evidence; 'full' (default) = everything. Measured ~145 / ~658 / ~1281 characters per record.",
        +  "enum": [
        +    "minimal",
        +    "standard",
        +    "full"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Max CONNECTED records to return — the claims, which are 99.96% of this response by measurement; `relations` keeps its own cap. Omit for all of them. The answer always carries total / returned / complete, so a windowed read is never mistaken for an exhausted one.",
        +  "exclusiveMinimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Skip the first N connected records. Use nextOffset from the previous answer.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedmethodist_search1 field changed
      • changedInput schema / properties / kind / enum
        Previous value: -[
        -  "claim",
        -  "relation",
        -  "activity",
        -  "metric",
        -  "bundle"
        -]New value: +[
        +  "claim",
        +  "relation",
        +  "activity",
        +  "metric",
        +  "bundle",
        +  "document"
        +]
  15. 1 tool update
    • Changedfind_related_claims2 fields changed
      • changedInput schema / properties / exclude_same_as / description
        Previous value: -"drop members of the ANCHOR's own same_as cluster — they are the same claim (default TRUE)"New value: +"drop members of the ANCHOR's own same_as cluster — they are the same claim (default TRUE). The response reports how many were dropped in excluded.same_as_members."
      • changedInput schema / properties / latest_only / description
        Previous value: -"exclude superseded claims (default TRUE)"New value: +"exclude superseded claims (DEFAULT OFF since A0-3b, aligned with methodist_find / _search / _search_semantic). Every returned claim carries is_superseded, so filtering here is optional: you can always drop stamped records, but you cannot recover records a door hid from you."
  16. 1 tool update
    • Changedfind_evidence1 field changed
      • changedInput schema / properties / mode / description
        Previous value: -"'fast' (~3s): retrieval uses symmetric HyDE pools — top-20 chunks against the supporting-hypothetical plus top-20 against the contradicting-hypothetical, then each chunk is assigned to the bucket whose HyDE-vector it scored higher against. Because the retrieval pool is symmetric and the classification mirrors the retrieval direction, supporting/contradicting counts come out approximately balanced regardless of the actual distribution of evidence in the corpus (a topic that is 90% supported in the literature will still show a ~1:1 split here). Use fast mode for 'is there evidence on either side?', not for 'how is the field actually split?'. May also misclassify chunks that mention the topic but logically point the other way (e.g. a paper explaining 'BN is bad in transformers' may land in the contradicting bucket for an 'LN > BN' claim). 'deep' (~10s): adds an independent per-chunk LLM NLI classification on top of the union pool, so counts reflect actual semantic distribution and can be arbitrarily asymmetric. Use 'deep' whenever classification accuracy or distribution shape matters — including controversy mapping and any analysis that interprets the supporting/contradicting ratio as a signal about the field."New value: +"'fast' (~3s): retrieval uses symmetric HyDE pools — top-20 chunks against the supporting-hypothetical plus top-20 against the contradicting-hypothetical, then each chunk is assigned to the bucket whose HyDE-vector it scored higher against. Because the retrieval pool is symmetric and the classification mirrors the retrieval direction, supporting/contradicting counts come out approximately balanced regardless of the actual distribution of evidence in the corpus (a topic that is 90% supported in the literature will still show a ~1:1 split here). Use fast mode for 'is there evidence on either side?', not for 'how is the field actually split?'. May also misclassify chunks that mention the topic but logically point the other way (e.g. a paper explaining 'BN is bad in transformers' may land in the contradicting bucket for an 'LN > BN' claim). 'deep': adds an independent per-chunk LLM NLI classification on top of the union pool, so counts reflect actual semantic distribution and can be arbitrarily asymmetric. ★ COST IS LINEAR IN POOL SIZE — one LLM call PER CHUNK, up to ~60 per invocation. Measured over 35 real calls: median 52 s end-to-end (the '~10s' this description used to claim was never the general case). That is money as well as time. Use 'deep' whenever classification accuracy or distribution shape matters — including controversy mapping and any analysis that interprets the supporting/contradicting ratio as a signal about the field."

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.