Lawstronaut MCP

Lawstronaut MCP

Connects AI agents to 50+ million laws and court cases across 150+ jurisdictions via the Model Context Protocol.

Category
访问服务器

README

<div align="center">

<img src="./assets/lawstronaut-icon.png" width="100" alt="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

</div>


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.

<img src="./assets/generate-client-secret.png" width="800" alt="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:

<img src="./assets/claude-desktop.png" width="790" alt="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.


推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选