Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Lawstronaut

FreeNot checked

Connect AI to millions of laws and court cases with the Lawstronaut MCP.

GitHubEmbed

About

Connect AI to millions of laws and court cases with the Lawstronaut MCP.

README

lawstronaut logo

Lawstronaut MCP

Connect lawstronaut to Claude, ChatGPT, Cursor, and any AI agent that speaks the Model Context Protocol. Connect your AI to 50+ million laws and court cases!

Model Context Protocol Auth Documentation License: Proprietary

Authentication . Setup · Tools


What is this?

Lawstronaut is the infrastructure layer that connects AI agents and software to millions of legal documents across 150+ jurisdictions, structured legal data, continuously updated, and ready to use via MCP.

Authentication

Production MCP server: https://mcp.lawstronaut.com

Transport: MCP over Streamable HTTP (POST /).

Public server card (tool listing, no auth):
https://mcp.lawstronaut.com/.well-known/mcp/server-card.json


Lawstronaut MCP supports Bearer token and OAuth 2.0 (client_id + client_secret). A paid subscription is required.

Method Best for Tool listing Tool calls
Bearer token CLI, scripts, clients without OAuth No auth required Authorization: Bearer <token>
OAuth 2.0 Cursor, VS Code, Claude, publishing platforms No auth required OAuth access token (auto-managed by client)

Get client ID, secret, or bearer token

  1. Visit lawstronaut.com and purchase a subscription.
  2. Log in to the developer portal.
  3. Open MCP server access from the Home menu.
  4. Create a client ID + client secret (OAuth) or a bearer token.
lawstronaut logo

Option A — Bearer token

Use the bearer token from MCP server access:

Authorization: Bearer <your-token>

Set it in your environment:

export LAWSTRONAUT_MCP_BEARER_TOKEN="your-token-here"

Example configs: cursor-mcp.json, vscode-mcp.json, claude-code.mcp.json.

Option B — OAuth 2.0 (client_id + client_secret)

Use the client_id and client_secret created under MCP server access in the developer portal.

Endpoint URL
MCP server https://mcp.lawstronaut.com
Authorization https://mcp.lawstronaut.com/oauth/authorize
Token https://mcp.lawstronaut.com/oauth/token
OAuth discovery https://mcp.lawstronaut.com/.well-known/oauth-authorization-server
Protected resource https://mcp.lawstronaut.com/.well-known/oauth-protected-resource

Flow: response_type=code → redirect with code → exchange at /oauth/token with grant_type=authorization_code, client_id, client_secret, code, and redirect_uri.

Clients that support MCP OAuth discovery only need the server URL — they handle the flow using your registered client_id / client_secret.

Example configs: cursor-mcp-oauth.json, vscode-mcp-oauth.json.


Setup

Pick your client, paste the config, and authenticate with your lawstronaut account. Most clients open a browser window for OAuth the first time an agent uses a lawstronaut tools.

Cursor

Bearer token

  1. Copy cursor-mcp.json to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global).
  2. Export LAWSTRONAUT_MCP_BEARER_TOKEN.
  3. Restart Cursor. Check Output → MCP Logs if connection fails.

OAuth

  1. Copy cursor-mcp-oauth.json to .cursor/mcp.json.
  2. Complete the OAuth sign-in when Cursor prompts you (uses your registered client_id / client_secret).

Docs: Cursor MCP.


VS Code (GitHub Copilot agent / MCP)

Bearer token

  1. Copy vscode-mcp.json to .vscode/mcp.json, or merge into your user MCP config.
  2. Run MCP: List Servers and enter your bearer token when prompted.

OAuth

  1. Copy vscode-mcp-oauth.json to .vscode/mcp.json.
  2. Sign in through VS Code when prompted.

Docs: MCP configuration reference.


Claude Code (CLI)

Bearer token — CLI

export LAWSTRONAUT_MCP_BEARER_TOKEN="your-token-here"

claude mcp add --transport http lawstronaut-mcp https://mcp.lawstronaut.com \
  --header "Authorization: Bearer $LAWSTRONAUT_MCP_BEARER_TOKEN"

Bearer token — project file

Copy claude-code.mcp.json to .mcp.json in your project root.

OAuth

Add the server URL only and complete OAuth when prompted:

claude mcp add --transport http lawstronaut-mcp https://mcp.lawstronaut.com

Docs: Connect Claude Code to tools via MCP.


Claude Desktop (Anthropic app)

Claude Desktop is oriented toward stdio MCP servers. For this HTTP server, use Cursor, VS Code, or Claude Code, or any host that supports remote Streamable HTTP MCP.

Go to Customize, Connectors, click "+", Add Custom Connector, and fill the dialog:

claude

Other hosts (Continue, Zed, custom agents, etc.)

Any client that supports MCP Streamable HTTP can connect with:

  • URL: https://mcp.lawstronaut.com
  • Bearer: Authorization: Bearer <token>
  • OAuth: use discovery at /.well-known/oauth-authorization-server with your client_id / client_secret

Tools

  • list_jurisdictions - List all jurisdictions (countries/states) in the Lawstronaut corpus — call first to get valid ISO codes for other tools

  • list_domains - List legal domains with optional name filter and pagination

    • domain: Filter domains by name (string, optional)
    • limit: Number of results to return (number, optional)
    • offset: Number of results to skip (number, optional)
  • list_subdomains - List subdomains for a domain ID — filter by name, paginate results

    • domain_id: Filter by Domain ID (string, required)
    • subdomain: Filter subdomains by name (string, optional)
    • limit: Number of results to return (number, optional)
    • offset: Number of results to skip (number, optional)
  • list_categories - List legal categories for a subdomain — filter by name, paginate results

    • subdomain_id: Filter by Subdomain ID (string, optional)
    • category_name: Filter categories by name (string, optional)
    • limit: Number of results to return (number, optional)
    • offset: Number of results to skip (number, optional)
  • list_subcategories - List subcategories for a category ID — filter by name, paginate results

    • category_id: Filter by Category ID (string, required)
    • subcategory_name: Filter subcategories by name (string, optional)
    • limit: Number of results to return (number, optional)
    • offset: Number of results to skip (number, optional)
  • list_law_types - List law types for a subcategory ID — filter by name, paginate results

    • subcategory_id: Filter by Subcategory ID (string, required)
    • law_type: Filter law types by name (string, optional)
    • limit: Number of results to return (number, optional)
    • offset: Number of results to skip (number, optional)
  • list_portals - List legal portals for a jurisdiction — filter by name, language, or tag

    • iso: Filter by Jurisdiction ISO code (e.g. 'US') (string, required)
    • name: Filter portals by name (string, optional)
    • tag: Filter by tag (string, optional)
    • lang: Filter by language (string, optional)
  • list_authority_types - List authority types for a jurisdiction — filter by portal or authority type

    • iso: Filter by Jurisdiction ISO code (e.g. 'US') (string, required)
    • limit: Number of results to return (number, optional)
    • offset: Number of results to skip (number, optional)
    • portal_name: Filter by portal name (string, optional)
    • authority_type: Filter by authority type (string, optional)
  • list_issuing_authorities - List issuing authorities for a jurisdiction — filter by portal or authority name

    • iso: Filter by Jurisdiction ISO code (e.g. 'US') (string, required)
    • limit: Number of results to return (number, optional)
    • offset: Number of results to skip (number, optional)
    • portal_name: Filter by portal name (string, optional)
    • issuing_authority: Filter by issuing authority (string, optional)
  • list_documents - List legal documents in a jurisdiction — filter by title, dates, portal, status, tags, and more

    • iso: Filter by Jurisdiction ISO code (e.g. 'US') (string, required)
    • portal: Filter by portal name (string, optional)
    • version: Document version (string, optional)
    • limit: Number of results to return (number, optional)
    • offset: Number of results to skip (number, optional)
    • document_id: Document ID (string, optional)
    • repealed: Filter by repealed status (boolean, optional)
    • title: Filter by title (string, optional)
    • section_title: Filter by section title (string, optional)
    • url: Filter by URL (string, optional)
    • status: Filter by status (string, optional)
    • crawling_date: Filter by crawling date (string, optional)
    • last_updated: Filter by last updated date (string, optional)
    • last_amendment: Filter by last amendment date (string, optional)
    • publication_date: Filter by publication date (string, optional)
    • expiration_date: Filter by expiration date (string, optional)
    • effective_date: Filter by effective date (string, optional)
    • date_of_enactment: Filter by date of enactment (string, optional)
    • date_of_decision: Filter by date of decision (string, optional)
    • file_data_only: Return only file-related data (boolean, optional)
    • issuing_authority: Filter by issuing authority (string, optional)
    • type_of_authority: Filter by type of authority (string, optional)
    • source_identifier: Filter by source identifier (string, optional)
    • source_secondary_identifier: Filter by secondary source identifier (string, optional)
    • tag: Filter by tag (string, optional)
    • lang: Filter by language (string, optional)
  • get_document_text - Get full text of documents matching jurisdiction and filter criteria

    • iso: Filter by Jurisdiction ISO code (e.g. 'US') (string, required)
    • portal: Filter by portal name (string, optional)
    • version: Document version (string, optional)
    • limit: Number of results to return (number, optional)
    • offset: Number of results to skip (number, optional)
    • document_id: Document ID (string, optional)
    • repealed: Filter by repealed status (boolean, optional)
    • title: Filter by title (string, optional)
    • section_title: Filter by section title (string, optional)
    • url: Filter by URL (string, optional)
    • status: Filter by status (string, optional)
    • crawling_date: Filter by crawling date (string, optional)
    • last_updated: Filter by last updated date (string, optional)
    • last_amendment: Filter by last amendment date (string, optional)
    • publication_date: Filter by publication date (string, optional)
    • expiration_date: Filter by expiration date (string, optional)
    • effective_date: Filter by effective date (string, optional)
    • date_of_enactment: Filter by date of enactment (string, optional)
    • date_of_decision: Filter by date of decision (string, optional)
    • file_data_only: Return only file-related data (boolean, optional)
    • issuing_authority: Filter by issuing authority (string, optional)
    • type_of_authority: Filter by type of authority (string, optional)
    • source_identifier: Filter by source identifier (string, optional)
    • source_secondary_identifier: Filter by secondary source identifier (string, optional)
    • tag: Filter by tag (string, optional)
    • lang: Filter by language (string, optional)
  • get_markdown - Get document body as markdown for matching jurisdiction and filters

    • iso: Filter by Jurisdiction ISO code (e.g. 'US') (string, required)
    • portal: Filter by portal name (string, optional)
    • version: Document version (string, optional)
    • limit: Number of results to return (number, optional)
    • offset: Number of results to skip (number, optional)
    • document_id: Document ID (string, optional)
    • repealed: Filter by repealed status (boolean, optional)
    • title: Filter by title (string, optional)
    • section_title: Filter by section title (string, optional)
    • url: Filter by URL (string, optional)
    • status: Filter by status (string, optional)
    • crawling_date: Filter by crawling date (string, optional)
    • last_updated: Filter by last updated date (string, optional)
    • last_amendment: Filter by last amendment date (string, optional)
    • publication_date: Filter by publication date (string, optional)
    • expiration_date: Filter by expiration date (string, optional)
    • effective_date: Filter by effective date (string, optional)
    • date_of_enactment: Filter by date of enactment (string, optional)
    • date_of_decision: Filter by date of decision (string, optional)
    • file_data_only: Return only file-related data (boolean, optional)
    • issuing_authority: Filter by issuing authority (string, optional)
    • type_of_authority: Filter by type of authority (string, optional)
    • source_identifier: Filter by source identifier (string, optional)
    • source_secondary_identifier: Filter by secondary source identifier (string, optional)
    • tag: Filter by tag (string, optional)
    • lang: Filter by language (string, optional)
  • get_source_url - Get a time-limited signed URL to the original source file (PDF, etc.)

    • document_id: Document ID (integer, required)
  • get_document_with_version - Get a specific document at a specific version with full metadata

    • document_id: Document ID (integer, required)
    • version: Version (integer, required)
  • horizon_scan - Scan recent legal changes in a jurisdiction — filter by topic, date window, and authority

    • iso: One ISO code e.g. "IE", "NL", "US", etc (string, required)
    • since: Start of date window for the scan (string, optional)
    • topic: Topic or keyword to focus the scan (string, optional)
    • date_field: Which date field to use for the window (string, optional)
    • status: Filter by status (string, optional)
    • issuing_authority: Filter by issuing authority (string, optional)
    • type_of_authority: Filter by type of authority (string, optional)
    • include_repealed: Include repealed documents (boolean, optional)
    • max_per_jurisdiction: Maximum results per jurisdiction (integer, optional)
  • evidence_pull - Get full citation chain for a document — metadata, legal link, source URL, and body text

    • iso: Document's jurisdiction ISO code, e.g. 'IE', 'NL', 'US', etc (string, required)
    • document_id: Numeric document_id from any listing/search tool (integer, required)
    • include_text: Include document body text (boolean, optional)
    • include_source_url: Include signed source URL (boolean, optional)
    • text_format: Format for included text (e.g. markdown or plain) (string, optional)

All tools are read-only. OAuth tokens are issued with scope mcp:tools:read. Tool listing is public; tool calls require authentication.


from github.com/Lawstronaut-FZCO/lawstronaut-mcp

Installing Lawstronaut

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/Lawstronaut-FZCO/lawstronaut-mcp

FAQ

Is Lawstronaut MCP free?

Yes, Lawstronaut MCP is free — one-click install via Unyly at no cost.

Does Lawstronaut need an API key?

No, Lawstronaut runs without API keys or environment variables.

Is Lawstronaut hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Lawstronaut in Claude Desktop, Claude Code or Cursor?

Open Lawstronaut on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Lawstronaut with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs