scholarwright
Provides literature search through PubMed/NCBI E-utilities, with rate limiting designed to comply with NCBI usage policies, for citation health and manuscript auditing.
Offers Scopus literature search integration, though the no-key fallback is currently broken and adaptive-depth or PubMed search should be used instead.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@scholarwrightAudit my manuscript for integrity issues and generate the final report"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ScholarWright MCP — v5.14.20
An MCP (Model Context Protocol) server exposing an academic-integrity and manuscript-preparation system as tools for any MCP-capable client — Claude Desktop, Claude Code, and others.
196 tools · 17 layers · runs entirely on your machine.
sw_status is the authoritative source for version, layer count and the tool
list. It derives the catalogue from the server's own source at call time, so it
cannot go stale. If this README and sw_status disagree, sw_status is right
and this file needs updating.
What it does
Auditing — inspects a manuscript the author already wrote and flags integrity problems: implausible statistics, unverifiable or unsupported citations, publication-ethics issues, formatting violations, figure-resolution failures.
Assisting — searches the literature, positions the work against the published evidence base, formats to a journal's exact specification, builds the submission package.
Gating — refuses to let weak work proceed cheaply. validate_hypothesis gates
writing, build_argument_skeleton gates drafting, and assess_novelty_position
surfaces the crowding problem before submission rather than after rejection.
Learning — the loop is closed. Every audit reads accumulated discipline and
journal profiles before flagging, and writes its surviving findings back
afterwards. Pass discipline to generate_flag_table and
generate_final_audit_report on every run, or nothing accumulates.
Reporting (v5.14.20) — generate_final_audit_report now produces two
structured DOCX reports by default alongside the weighted readiness score:
Report | File | Contents |
Auto-corrections |
| Every flag SW resolved automatically — location, original text, correction applied. Author should verify. |
Author actions |
| Every flag still needing author intervention, grouped CRITICAL → HIGH → MEDIUM → LOW with action instructions. |
Pass split_reports=False to suppress the split. Pass project_slug to control
the filename prefix (derived from manuscript_title if omitted).
Related MCP server: article-mcp
Install
pip install -r requirements.txtRegister in your client's MCP config — exactly one entry:
{
"mcpServers": {
"scholarwright": {
"command": "<path-to-python>",
"args": ["C:/scholarwright_mcp/scholarwright_mcp.py"],
"env": {
"SCHOLARWRIGHT_MAILTO": "you@example.org",
"SCHOLARWRIGHT_MAX_CALLS": "5000",
"SCHOLARWRIGHT_RATE_PER_MIN": "600"
}
}
}
}A ready-to-edit claude_desktop_config.json is included — copy the
scholarwright block into your Claude Desktop claude_desktop_config.json
and adjust the Python path and mailto address.
Restart the client afterwards — environment variables are read only at server
startup. This is not a Claude extension; the .mcpb format is dead and
ScholarWright must not be packaged as one.
Environment variables
Variable | Default | Purpose |
|
| Crossref/OpenAlex polite pool. Set it to a real address. |
|
| Session call cap. |
|
| Global ceiling only — per-host limits do the real work. |
|
| Consecutive failures before a host's circuit opens. |
|
| Seconds the circuit stays open. |
| unset | Set to |
Rate limiting
Four brakes, in order: session cap → global ceiling → per-host per-minute and per-second → per-host circuit breaker.
Per-host limits matter because each upstream differs. NCBI E-utilities allows
about 3 requests/second without an API key and blocks IPs that exceed it,
while OpenAlex allows around 10/second with a mailto. The per-second window is
what prevents a ban — a 60-second window alone would permit 180 calls in three
seconds. Limits live in _HOST_LIMITS.
Do not raise the NCBI limit to 10/sec until an NCBI API key is actually transmitted with requests. It currently is not.
Audit report workflow (v5.14.20)
The standard full-audit chain:
audit_language_and_style
audit_academic_integrity
audit_doi_and_citation_health
└─→ generate_flag_table (discipline="your_field")
└─→ generate_final_audit_report
├─→ <slug>_SW_Auto_Corrections.docx ← verify SW changes
├─→ <slug>_Author_Actions_Required.docx ← act on these
└─→ weighted readiness score + markdown reportgenerate_final_audit_report defaults: output_docx=True, split_reports=True.
The two DOCX files land in the same directory as the flag table output.
Design principles
These are load-bearing. Reversing any of them changes what the product is.
Claim strength may never increase — five-tier scale, no rewrite moves up a tier
Locked spans are never rewritten: p-values, sample sizes, CIs, effect estimates, DOIs, citations, units
Never upsample a figure to meet a DPI threshold — re-export from source
Never cut text to fit a word limit — that is an authorial decision
Flags are evidence for the author, never verdicts on them
Corroboration measures indexing, not quality
A blank "Change made" column means an author decision is required, not missing data
A high score means no flag was raised, not that the science is sound
Honest limits
No plagiarism or text-similarity detection. That is iThenticate's job. ScholarWright does citation integrity.
It audits what is written, not the underlying data. It cannot confirm that a reported p-value came from the test the Methods names.
Citation support is often abstract-level only. Where full text is unavailable, the verdict says so.
The readiness score is not validated. It reports how many outcomes have been recorded against how many are needed.
Novelty positioning measures positional overlap only. It cannot judge whether a contribution matters.
Not built:
generate_results_paper, image manipulation detection, citation cartel analysis, quotation accuracy.Known broken: the Scopus no-key fallback. Use
search_with_adaptive_depthorpubmed_search.
Development
python smoke_test.py # offline, ~12s, exercises majority of tools
python smoke_test.py --network # includes API-calling tools
python backup_to_onedrive.py # mirror the system folder to OneDriveRelease sequence
Bump
_SW_VERSIONfirst and append to_SW_VERSION_HISTORY. Both live at the top ofscholarwright_mcp.py;USER_AGENTderives from the version, and the version is stamped onto generated deliverables.Bump
versioninpyproject.tomlto match.python smoke_test.py --networkRegenerate the skill catalogue:
python regen_skill_catalogue.pyRepackage the skill:
python _package_skill.pypython backup_to_onedrive.pyCommit and push to GitHub.
Rules learned the hard way
The
__main__guard must be the last statement in the file. It once sat mid-file, so 63 tools below it were never registered while three different tool counts appeared from the same source.File order is fixed: all tools → startup diagnostic →
__main__guard.Verify by subprocess, never by import. A direct import skips the guard and over-reports.
Any tool that persists keyed state must be added to
cleanup_test_artefacts()in the same change, or smoke runs will pollute real data.No capability claim in any spec, deck or page until a test proves it.
Version history (recent)
Version | Summary |
v5.14.20 |
|
v5.14.19 | Audit chain stabilisation; DOI verification layer extended. |
v5.14.x | Language audit, academic integrity, and DOI audit layers hardened. |
v5.5.0 | Learning loop introduced — discipline and journal profiles accumulate across runs. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Academic research MCP server for paper search, citation checks, graphs, and deep research.
Auditable MCP server for PubMed, Europe PMC, ClinicalTrials.gov, and bioRxiv/medRxiv queries
Remote MCP for tool license checks, vendor policy review, alternatives, and license receipts.
IEEE Xplore MCP — BYOK wrapper over the IEEE Xplore Metadata Search API
Related MCP Servers
- FlicenseCqualityDmaintenanceExposes a local biomedical literature pipeline as MCP tools for automated research workflows. Enables literature search, open-access paper retrieval, and draft generation for biomedical and pathology domains through standard MCP clients.6-
- AlicenseAqualityDmaintenanceEnables multi-source literature search, full-text retrieval, reference analysis, and journal quality assessment across Europe PMC, PubMed, arXiv, CrossRef, OpenAlex, and EasyScholar via the MCP protocol.5211MIT
- AlicenseAqualityDmaintenanceUnified academic search MCP server that searches open literature (arXiv, bioRxiv, medRxiv, PMC), CNKI, and Web of Science, with browser-backed authentication, local paper library, and export to multiple formats.212MIT
- AlicenseAqualityAmaintenanceComprehensive MCP server for academic research workflows, enabling paper searching across multiple sources, manuscript processing with citation placeholders, search caching, and citation export.11MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rajendrieg/scholarwright_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server