JSON Contracts vs Ris

A side-by-side look at the JSON Contracts and Ris MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

JSON Contracts logoJSON ContractsLegal · Local subprocess (stdio)JSON contract registry and validator for structured LLM and agent outputs.57GoodAuth: not declaredRis logoRisLegal · Local subprocess (stdio)Access Austrian laws, court decisions & legal documents via the RIS API.63GoodAuth: not declared

Verdict: choose JSON Contracts for legal work as a local process; choose Ris for legal as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

JSON Contracts logoChoose JSON Contracts when

  • You need dedicated capabilities in the Legal domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: JSON_CONTRACTS_DIR.
  • You want tools like list_contracts, read_contract, get_json_contract.
Explore JSON Contracts

Ris logoChoose Ris when

  • You need dedicated capabilities in the Legal domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like ris_bundesrecht, ris_landesrecht, ris_judikatur.
Explore Ris

Feature & specification comparison

Rows where the two servers differ are marked.

SpecJSON Contracts logoJSON ContractsRis logoRis
CategoryLegalLegal
Quality signal57/100 · Good63/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredNot declared
PricingNot declaredNot declared
Required env varsJSON_CONTRACTS_DIRNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars119
Directory activity 3 views 0 installs 0 upvotes 1 views 0 installs 0 upvotes
Tools813

Tools & capabilities

JSON Contracts tools 8

  • list_contractsList currently loaded JSON contracts.
  • read_contractRead a loaded JSON contract.
  • get_json_contractReturn schema, rules, examples, instructions, and input so the agent/model can produce JSON.
  • get_edit_contractReturn schema, rules, current JSON, edit instructions, and input so the agent/model can edit existing JSON.
  • validate_jsonValidate agent-produced JSON against a contract schema.
  • get_repair_contractReturn schema, rules, previous invalid JSON, validation errors, and repair instructions.
  • statusReturn json-contracts MCP server status and loaded contract metadata.
  • reload_contractsRescan the JSON contracts directory and reload valid contracts.

Ris tools 13

  • ris_bundesrechtSearch Austrian federal laws (Bundesrecht). Use this tool to find Austrian federal legislation like ABGB, StGB, UGB, etc. Search strategy: "titel" and "paragraph" are the precise entry points — prefer them whenever the law or the section is known ("paragraph" is ignored for applikation="Erv", the English translations). "suchworte" runs a broad full-text search and the RIS API returns those hits ordered alphabetically by law title, not by relevance, so a common term buries the relevant law under thousands of results. Austrian law often splits one topic across several statutes, so look for a companion law: warranty, for example, is covered both by the VGG (consumer sales, B2C, in force since 2022) and by §§ 922 ff ABGB (general warranty law, including B2B). Example queries: - suchworte="Mietrecht" -> Find laws mentioning rent law - titel="ABGB", paragraph="1295" -> Find specific ABGB section - titel="B-VG", paragraph="7", abschnitt_typ="Artikel" -> Article-based laws - titel="ABGB", fassung_vom="2015-01-01" -> Consolidated version as of a date - applikation="Begut" -> Search draft legislation
  • ris_landesrechtSearch Austrian state/provincial laws (Landesrecht). Use this tool to find laws enacted by Austrian federal states (Bundeslaender). Search strategy: "titel" and "paragraph" (together with "bundesland") are the precise entry points — prefer them whenever the law or the section is known. "suchworte" runs a broad full-text search and the RIS API returns those hits ordered alphabetically by law title, not by relevance, so a common term buries the relevant law under thousands of results. Austrian law often splits one topic across several statutes and across the federal/state divide — when the topic turns out to be federal rather than state law (warranty, for example, sits in the VGG and in §§ 922 ff ABGB), search it with ris_bundesrecht instead. Example queries: - suchworte="Bauordnung", bundesland="Salzburg" -> Find state building law - titel="Bauordnung", bundesland="Wien", paragraph="1" -> Specific section - suchworte="Naturschutz", bundesland="Tirol", fassung_vom="2020-01-01" -> Version as of a date
  • ris_judikaturSearch Austrian court decisions (Judikatur). Use this tool to find court decisions from Austrian courts. Choose the jurisdiction via "gerichtsbarkeit" (which court system to search). RIS distinguishes two document kinds, controlled by "dokumenttyp": - Rechtssatz: abstract legal principle / headnote (Leitsatz) distilled from a decision - Entscheidungstext: the full decision text including reasoning (Begruendung) The default "beide" searches both for the most complete results. Example queries: - gerichtsbarkeit="Vfgh", suchworte="Grundrecht" -> Constitutional Court decisions - suchworte="Schadenersatz", gericht="OGH" -> Only Supreme Court (OGH) decisions - norm="1295 ABGB" -> Which decisions cite §1295 ABGB? - gerichtsbarkeit="Justiz", fachgebiet="Arbeitsrecht", sortierung="datum_ab" -> Newest labor-law decisions
  • ris_bundesgesetzblattSearch Austrian Federal Law Gazettes (Bundesgesetzblatt). Use this tool for historical research and tracking when laws were enacted. Contains official publications of federal laws, ordinances, and treaties. Example queries: - bgblnummer="120", jahrgang="2023", teil="1" -> Find specific gazette - suchworte="Klimaschutz" -> Full-text search in gazettes
  • ris_landesgesetzblattSearch Austrian State Law Gazettes (Landesgesetzblatt). Use this tool to find official publications of state/provincial laws. Covers all 9 federal states (Bundeslaender). Example queries: - lgblnummer="50", jahrgang="2023", bundesland="Wien" - suchworte="Bauordnung", bundesland="Salzburg"
  • ris_regierungsvorlagenSearch Austrian Government Bills (Regierungsvorlagen). Use this tool for legislative history and parliamentary materials. Contains government proposals submitted to parliament. Example queries: - suchworte="Klimaschutz" -> Full-text search in bills - einbringende_stelle="BMF (Bundesministerium für Finanzen)" -> Bills from Finance Ministry - beschlussdatum_von="2024-01-01", beschlussdatum_bis="2024-12-31" -> Bills from 2024
  • ris_dokumentRetrieve full text of a legal document. Use this after searching to load the complete text of a specific law or decision. Note: For long documents, content may be truncated. Use specific searches to narrow down.
  • ris_dokument_abschnittReturn one section of a document already open in the RIS document viewer. Intended for the viewer widget, not for direct use — for the full text of a document use `ris_dokument`.
  • ris_bezirkeSearch Austrian district administrative authority announcements (Kundmachungen der Bezirksverwaltungsbehörden). Use this tool to find announcements and ordinances from district administrative authorities. Note: Only certain states publish here: Niederösterreich, Oberösterreich, Tirol, Vorarlberg, Burgenland, Steiermark. Example queries: - bundesland="Niederösterreich", suchworte="Bauordnung" - bezirksverwaltungsbehoerde="Bezirkshauptmannschaft Innsbruck"
  • ris_gemeindenSearch Austrian municipal law (Gemeinderecht). Use this tool to find municipal regulations and local ordinances. Applications: - Gr: Municipal law (Gemeinderecht) - default - GrA: Cross-border municipal law (Gemeinderecht Authentisch/Amtsblätter) Example queries: - gemeinde="Graz", suchworte="Parkgebuehren" - bundesland="Tirol", titel="Gebuehrenordnung" - applikation="Gr", index="Baurecht" - applikation="GrA", bezirk="Bregenz"
  • ris_sonstigeSearch miscellaneous Austrian legal collections (Sonstige). Use this tool for specialized legal documents and historical materials. Available applications: - PruefGewO: Trade licensing examinations (Gewerbeordnung) - Avsv: Social insurance announcements (Sozialversicherung) - Spg: Health structure plans (Strukturpläne Gesundheit) - Avn: Official veterinary notices (Amtliche Veterinärnachrichten) - KmGer: Court announcements (Kundmachungen der Gerichte) - Upts: Party transparency decisions (Parteien-Transparenz-Senat) - Mrp: Council of Ministers protocols (Ministerratsprotokolle) - Erlaesse: Ministerial decrees (Erlässe der Bundesministerien) Example queries: - applikation="Mrp", suchworte="Budget", einbringer="BMF..." - applikation="Erlaesse", bundesministerium="Bundesministerium für Finanzen" - applikation="Upts", partei="SPÖ - Sozialdemokratische Partei Österreichs" - applikation="KmGer", kmger_typ="Geschaeftsordnung" - applikation="Avsv", dokumentart="Richtlinie"
  • ris_historySearch document change history (Aenderungshistorie). Use this tool to track changes to legal documents over time. Shows when documents were created, modified, or deleted. Available applications (30 total): - Bundesrecht: Bundesnormen, BgblAuth, BgblAlt, BgblPdf, RegV - Landesrecht: Landesnormen, LgblAuth, Lgbl, LgblNO, Vbl, Gemeinderecht, GemeinderechtAuth - Judikatur: Justiz, Vfgh, Vwgh, Bvwg, Lvwg, Dsk, Gbk, Pvak, AsylGH - Sonstige: Bvb, Mrp, Erlaesse, PruefGewO, Avsv, Spg, KmGer, Dok, Normenliste Example queries: - applikation="Bundesnormen", aenderungen_von="2024-01-01", aenderungen_bis="2024-01-31" - applikation="Justiz", aenderungen_von="2024-06-01"
  • +1 more on the listing page

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.

JSON Contracts

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "json-contracts": {
      "command": "npx",
      "args": [
        "-y",
        "json-contracts@latest"
      ],
      "env": {
        "JSON_CONTRACTS_DIR": "YOUR_JSON_CONTRACTS_DIR_HERE"
      }
    }
  }
}

Ris

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "ris": {
      "command": "npx",
      "args": [
        "-y",
        "ris-mcp-ts"
      ]
    }
  }
}

Frequently asked questions

JSON Contracts is categorized under Legal and uses a local stdio subprocess. Ris belongs to Legal and uses a local stdio subprocess. Pick JSON Contracts for legal work and Ris for legal.

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.

JSON Contracts has no declared pricing — check the project's own site. Ris has no declared pricing — check the project's own site. 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 json-contracts and ris as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, JSON Contracts has a quality signal of 57/100 (Good) with 3 views, 0 installs and 1 GitHub stars. Ris has 63/100 (Good) with 1 views, 0 installs and 19 GitHub stars.