Lawstronaut MCP

MCP serverDev tools

Your AI can search millions of laws and court cases once Lawstronaut is added. It can use what it finds to answer your questions with real legal material. Lawstronaut is an integration you add to your AI on ahel.

Use Lawstronaut MCP in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Lawstronaut MCP and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use Lawstronaut MCP to list jurisdictions

Details

Available today. Use it from your connected AI after setup.

Add Lawstronaut to your AI on ahel, then ask it a legal question to see it work with laws and court cases in its answer.

Lawstronaut MCPStart free

What your AI can do with it

  • Search millions of laws
  • Look up court cases
  • Find the law or case relevant to a question
  • Use real laws and court cases when answering questions

Install Lawstronaut MCP

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

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

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://mcp.lawstronaut.com

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=lawstronaut-mcp&config=eyJ1cmwiOiJodHRwczovL21jcC5sYXdzdHJvbmF1dC5jb20ifQ==

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://mcp.lawstronaut.com

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add lawstronaut-mcp --url 'https://mcp.lawstronaut.com'

    Run it once, then sign in with codex mcp login lawstronaut-mcp if the server asks for an account.

From the project's README

As published by lawstronaut-fzco/lawstronaut-mcp in README.md.

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!

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.

MethodBest forTool listingTool calls
Bearer tokenCLI, scripts, clients without OAuthNo auth requiredAuthorization: Bearer <token>
OAuth 2.0Cursor, VS Code, Claude, publishing platformsNo auth requiredOAuth 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.

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.

EndpointURL
MCP serverhttps://mcp.lawstronaut.com
Authorizationhttps://mcp.lawstronaut.com/oauth/authorize
Tokenhttps://mcp.lawstronaut.com/oauth/token
OAuth discoveryhttps://mcp.lawstronaut.com/.well-known/oauth-authorization-server
Protected resourcehttps://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:


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.


Tools it offers (16)

What this server listed when Ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.

  • list_jurisdictions
  • list_domains
  • list_subdomains
  • list_categories
  • list_subcategories
  • list_law_types
  • list_portals
  • list_authority_types
  • list_issuing_authorities
  • list_documents
  • get_document_text
  • get_markdown
  • get_source_url
  • get_document_with_version
  • horizon_scan
  • evidence_pull

Signals

GitHub stars
2
Last commit
Sep 2026
Advanced
Delivery
lawstronaut-mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
com-lawstronaut-lawstronaut-mcp
Source
github.com/lawstronaut-fzco/lawstronaut-mcp
Hosted endpoint
https://mcp.lawstronaut.com