ARC 1 vs Overleaf MCP
A side-by-side look at the ARC 1 and Overleaf MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose ARC 1 for developer tools work as a local process; choose Overleaf MCP for developer tools as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose ARC 1 when
- You need dedicated capabilities in the Developer Tools domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: other.
- You want tools like
SAPRead, SAPSearch, SAPNavigate.
Choose Overleaf MCP when
- You need dedicated capabilities in the Developer Tools domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: API key required.
- You have the keys it needs:
OVERLEAF_PROJECT_ID, OVERLEAF_GIT_TOKEN, OVERLEAF_GIT_TOKEN_FILE, OVERLEAF_PROJECT_NAME, OVERLEAF_PROJECTS_CONFIG. - You want tools like
list_projects, list_files, read_file.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Developer Tools | Developer Tools |
| Quality signal | 63/100 · Good | 65/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | other | API key required |
| Pricing | Free | Not declared |
| Required env vars | None listed | OVERLEAF_PROJECT_IDOVERLEAF_GIT_TOKENOVERLEAF_GIT_TOKEN_FILEOVERLEAF_PROJECT_NAMEOVERLEAF_PROJECTS_CONFIG |
| Verified owner | Community listing | Community listing |
| GitHub stars | 238 | 329 |
| Directory activity | 0 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 9 | 8 |
| Full listing | View ARC 1 | View Overleaf MCP |
Tools & capabilities
ARC 1 tools 9
SAPReadRead SAP ABAP source, metadata and syntax results. For source purpose, explanations, specs, reviews or pre-change context, prefer SAPContext first. DDIC metadata: omit format (default text); structured is CLAS-only for ordinary reads. TABLE_QUERY: multi-column filters, data preview required; CDS needs SAP_BASIS 752+. TABLE_CONTENTS: single-column filter. INACTIVE_OBJECTS: no name. TABL/DTT: technical settings. SYNTAX: read-only SAP check (objectType+name, optional source for unsaved text). CLAS: method="*" for signatures, method="NAME" for one body, or grep. Global class declaration/implementation: MAIN (omit include). definitions/implementations contain local helpers.SAPSearchSearch for ABAP objects, exact object-directory entries, or source code. Modes: 1. Object search (default): name pattern with wildcards (*); returns type, name, package, description, ADT URI. 2. TADIR lookup (searchType="tadir_lookup"): exact cross-package lookup of one or more names (prefer over long SAPQuery TADIR IN-lists). 3. Source code search (searchType="source_code"): full-text search across source (SAP_BASIS ≥ 7.51). Tips: BOR objects appear as SOBJ; the uri field feeds SAPNavigate, objectType feeds SAPRead/SAPWrite/SAPActivate. Searches object NAMES only — for field names use SAPRead(type='DDLS', include='elements') or SAPQuery on DD03L.SAPNavigateNavigate code: definitions, references, completion, hierarchy. references: where-used objects by default; detail=positions/snippets adds bounded native usages; objectType filters results (e.g. CLAS/OC, PROG/P); type+name replaces uri. hierarchy queries SEOMETAREL for superclass/interfaces/direct subclasses: requires data/SQL opt-in + matching scope; otherwise inspect class MAIN with SAPRead. CDS (DDLS) impact: SAPContext(action="impact") classifies where-used into RAP buckets. Experimental relations: dependency maps or package neighborhoods, then selected reads. Consumer locations: references; objectType="CLAS/OC" for class-only; otherwise omit. Active metadata, not source-call/runtime proof. Coverage unknown. type+name required, no uri/source.SAPLintRun local abaplint rules on ABAP/CDS source (auto-selects cloud or on-prem rules by system type). Actions: - "lint": check source (errors+warnings) for ABAP (PROG/CLAS/INTF/FUNC) and CDS (DDLS). - "lint_and_fix": lint + auto-fix fixable issues (keyword case, obsolete statements); returns fixed source. - "list_rules": list rules + current config (no source). - "format": pretty-print via SAP's ADT formatter (needs source). - "get_formatter_settings" / "set_formatter_settings": read/update the system's global PrettyPrinter (indentation bool, style keywordUpper|keywordLower|keywordAuto|none; set is blocked read-only). lint/lint_and_fix/list_rules run locally; format/*_formatter_settings call SAP. Syntax: SAPRead(type="SYNTAX"); ATC/unit tests: SAPDiagnose.SAPDiagnoseABAP diagnostics: - "syntax": check objects[] (CLAS/INTF/PROG/DDLS; version active/inactive). Single: prefer SAPRead SYNTAX. - "unittest": harmless ABAP Unit for CLAS/PROG/FUGR or DEVC (exact; includeSubpackages recurses). - "unittest_ci": harmless package tests with source reconciliation; empty/incomplete runs fail. - "atc": ATC (name+type or objects [{type,name}], max 20). Omit variant for system default; unknown variant errors. "atc_variants": read variants/default, optional variant name filter. - "atc_ci": package ATC CI; requires available API and verified selection. - "cds_testcases": read suggested CDS Unit tests (name; SAP_BASIS 8.16+). - "object_state": active/inactive ETags/hashes/divergence (name+type; CLAS includes). No server-driven types. - "quickfix": proposals: name+type+source+line; optional column/sourceUri. - "apply_quickfix": text deltas, no save; quickfix inputs + proposalUri/proposalUserContent. - "dumps": ST22, newest: user/from/to/maxResults/filters; id=detail. - "feed_schema": optional dump filters; action only. - "traces": list profiler traces; id+analysis analyzes one. - "trace_start": arm NEXT matching execution (write; defaults HTTP, SQL on); reproduce, then read "traces". - "trace_requests": list armed traces. "trace_cancel": cancel by id (write). - "system_messages": list SM02 messages. "gateway_errors": list /IWFND/ERROR_LOG (on-prem; detailUrl or id+errorType for detail). - "odata_perf": read OData timing (url: host-relative; DB/ABAP/framework/auth); needs allowDataPreview. - "authorization_trace": read STUSERTRACE/SUAUTHVALTRC (on-prem; needs SAP_ALLOW_DATA_PREVIEW). - "cds_sql": read CDS native SQL (name). - "sql_trace_state" / "set_sql_trace_state" (sqlOn; needs SAP_ALLOW_WRITES) / "sql_trace_directory": ST05 SQL-trace control. Quickfix: syntax/ATC → quickfix → apply_quickfix → SAPWrite.SAPContextPrimary tool for understanding ABAP/CDS objects before specs, reviews, explanations, or changes — use instead of SAPRead when the user asks what an object does. Returns intent first (the object KTD when available) then compressed dependency contracts. Use SAPRead after SAPContext for exact source/method bodies/grep/drafts. Decision rule — pick the action from the user's question: - "What breaks if I change <CDS>?" / "Who consumes <I_*>?" / "Blast radius" → action="impact" (DDLS only). - "Which includes/appends extend <TABL>?" → action="structure", type="TABL". - "What does <object> do?" / "Explain" / "deps before editing" → action="deps" (default); type+name required. - "Find all callers of <object>" → action="usages" (live SAP where-used lookup). impact (CDS blast-radius): upstream AST deps + downstream where-used, classified into RAP buckets (projectionViews, bdefs, serviceDefinitions, serviceBindings, accessControls, metadataExtensions, abapConsumers, documentation, tables, other) + sibling-consistency hints. Use this instead of text-scanning DDDDLSRC/ACMDCLSRC with SAPQuery (it filters the noise). Optional includeIndirect, siblingCheck, siblingMaxCandidates. deps: target KTD when available + selected dependency contracts, derived from source (not SAP-native relationships or a complete inventory). Counts distinguish root candidates from recursive attempts. Standard helper names are filtered. For CDS, includes dependency DDL/field catalogs for cl_cds_test_environment. structure (TABL only): the DDIC include/append tree. Non-CDS reverse-lookup: SAPNavigate(references); CDS: impact. Full detail: docs_page SAPContext.SAPManageProbe and report SAP system capabilities. Use BEFORE operations that depend on optional features (abapGit, RAP/CDS, AMDP, HANA, UI5/Fiori, CTS transports, FLP). Also handles package (DEVC) lifecycle. Actions: - "features": cached feature status (fast, no round-trip; id, available, mode, probedAt). "probe": re-probe now (feature probes + auth + discovery refresh). "cache_stats": object cache health. - "create_package" / "delete_package" / "change_package": DEVC lifecycle via ADT packages API. - FLP read: flp_list_catalogs, flp_list_groups, flp_list_tiles (catalogId). FLP write: flp_create_catalog, flp_create_group, flp_create_tile, flp_add_tile_to_group, flp_delete_catalog. Classic designer tile/target-mapping model, deprecated since S/4HANA 2023; Work Zone exposure v2 needs LADIs (SAPRead type=UIAD). - "set_api_state": release/revoke an object's API release contract (objectUri, or name+objectType; apiState defaults RELEASED, contract defaults C1 — C0 for SRVD, C3 for classic views). Write counterpart of SAPRead(type="API_STATE"). Returns features + systemType ("onprem"/"btp"); "available: false" means do NOT attempt dependent operations.SAPTransportManage CTS transport requests (SE09/SE10). Actions: list (current user, modifiable), get (tasks + objects), create (always a Workbench (K) request — the package/target sets target & layer, not the request category; optional explicit target), release, delete, remove_object (keep the request), reassign (change owner), release_recursive (tasks then parent), check (does a package need a transport — type, name, package), history (legacy name: current object lock plus assignment candidates — type, name; not complete transport history; read-only, no write scope needed). IDs look like A4HK900123. Status: D/L=modifiable, O/P=releasing, R/N=released.SAPGitGit reads and gated abapGit workflows. gCTS mutations are quarantined. abapGit mutations need write/Git gates and allowedPackages ROOT/** or *; clone/pull evidence is unverified. external_info is gated HTTPS SAP egress.
Overleaf MCP tools 8
list_projectsList all configured Overleaf projectslist_filesList files in an Overleaf projectread_fileRead a file from an Overleaf projectget_sectionsGet all sections from a LaTeX fileget_section_contentGet content of a specific sectionstatus_summaryGet a comprehensive project status summarywrite_fileWrite content to a file in an Overleaf project and push to Overleafwrite_sectionReplace a single section in a LaTeX file and push to Overleaf. Safer than write_file for targeted edits — only the named section is replaced, leaving the rest of the file untouched.
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
ARC 1
{
"mcpServers": {
"arc-1-2": {
"command": "npx",
"args": [
"-y",
"arc-1@latest"
]
}
}
}
Overleaf MCP
{
"mcpServers": {
"mjyoo2-overleaf-mcp": {
"command": "npx",
"args": [
"-y",
"@mjyoo2/overleaf-mcp"
],
"env": {
"OVERLEAF_PROJECT_ID": "YOUR_OVERLEAF_PROJECT_ID_HERE",
"OVERLEAF_GIT_TOKEN": "YOUR_OVERLEAF_GIT_TOKEN_HERE",
"OVERLEAF_GIT_TOKEN_FILE": "YOUR_OVERLEAF_GIT_TOKEN_FILE_HERE",
"OVERLEAF_PROJECT_NAME": "YOUR_OVERLEAF_PROJECT_NAME_HERE",
"OVERLEAF_PROJECTS_CONFIG": "YOUR_OVERLEAF_PROJECTS_CONFIG_HERE"
}
}
}
}
Frequently asked questions
ARC 1 is categorized under Developer Tools and uses a local stdio subprocess. Overleaf MCP belongs to Developer Tools and uses a local stdio subprocess. Pick ARC 1 for developer tools work and Overleaf MCP for developer tools.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
ARC 1 is listed as free. Auth: other. Overleaf MCP has no declared pricing — check the project's own site. Auth: api key required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add arc-1-2 and mjyoo2-overleaf-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, ARC 1 has a quality signal of 63/100 (Good) with 0 views, 0 installs and 238 GitHub stars. Overleaf MCP has 65/100 (Great) with 0 views, 0 installs and 329 GitHub stars.