{
  "markdown": "<div align=\"center\">\n\n<img src=\"./assets/lawstronaut-icon.png\" width=\"100\" alt=\"lawstronaut logo\" />\n\n# Lawstronaut MCP\n\nConnect [lawstronaut](https://mcp.lawstronaut.com) to Claude, ChatGPT, Cursor, and any AI agent that speaks the [Model Context Protocol](https://modelcontextprotocol.io). Connect your AI to 50+ million laws and court cases!\n\n[![Model Context Protocol](https://img.shields.io/badge/MCP-compatible-7137FF)](https://modelcontextprotocol.io)\n[![Auth](https://img.shields.io/badge/auth-OAuth_2.0_-10A37F)](#authentication--scopes)\n[![Documentation](https://img.shields.io/badge/documentation-latest-7137FF)](https://lawstronaut.com/products/lawstronaut-mcp)\n[![License: Proprietary](https://img.shields.io/badge/license-Proprietary-red)](./LICENSE)\n\n [Authentication](#Authentication) . [Setup](#setup) · [Tools](#tools)\n\n</div>\n\n---\n\n## What is this?\n\nLawstronaut 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.\n\n## Authentication\n\nProduction MCP server: **`https://mcp.lawstronaut.com`**\n\nTransport: **MCP over Streamable HTTP** (`POST /`).\n\nPublic server card (tool listing, no auth):  \n`https://mcp.lawstronaut.com/.well-known/mcp/server-card.json`\n\n---\n\n\n\nLawstronaut MCP supports **Bearer token** and **OAuth 2.0** (`client_id` + `client_secret`). A paid subscription is required.\n\n| Method | Best for | Tool listing | Tool calls |\n|--------|----------|--------------|------------|\n| Bearer token | CLI, scripts, clients without OAuth | No auth required | `Authorization: Bearer <token>` |\n| OAuth 2.0 | Cursor, VS Code, Claude, publishing platforms | No auth required | OAuth access token (auto-managed by client) |\n\n### Get client ID, secret, or bearer token\n\n1. Visit [lawstronaut.com](https://lawstronaut.com) and purchase a subscription.\n2. Log in to the [developer portal](https://dev-portal.filerskeepersapi.co/).\n3. Open **MCP server access** from the Home menu.\n4. Create a **client ID** + **client secret** (OAuth) or a **bearer token**.\n\n<img src=\"./assets/generate-client-secret.png\" width=\"800\" alt=\"lawstronaut logo\" />\n\n### Option A — Bearer token\n\nUse the bearer token from **MCP server access**:\n\n```http\nAuthorization: Bearer <your-token>\n```\n\nSet it in your environment:\n\n```bash\nexport LAWSTRONAUT_MCP_BEARER_TOKEN=\"your-token-here\"\n```\n\nExample configs: `cursor-mcp.json`, `vscode-mcp.json`, `claude-code.mcp.json`.\n\n### Option B — OAuth 2.0 (client_id + client_secret)\n\nUse the `client_id` and `client_secret` created under **MCP server access** in the [developer portal](https://dev-portal.filerskeepersapi.co/).\n\n| Endpoint | URL |\n|----------|-----|\n| MCP server | `https://mcp.lawstronaut.com` |\n| Authorization | `https://mcp.lawstronaut.com/oauth/authorize` |\n| Token | `https://mcp.lawstronaut.com/oauth/token` |\n| OAuth discovery | `https://mcp.lawstronaut.com/.well-known/oauth-authorization-server` |\n| Protected resource | `https://mcp.lawstronaut.com/.well-known/oauth-protected-resource` |\n\n**Flow:** `response_type=code` → redirect with `code` → exchange at `/oauth/token` with `grant_type=authorization_code`, `client_id`, `client_secret`, `code`, and `redirect_uri`.\n\nClients that support MCP OAuth discovery only need the server URL — they handle the flow using your registered `client_id` / `client_secret`.\n\nExample configs: `cursor-mcp-oauth.json`, `vscode-mcp-oauth.json`.\n\n---\n## Setup\nPick 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.\n\n## Cursor\n\n**Bearer token**\n\n1. Copy `cursor-mcp.json` to `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global).\n2. Export `LAWSTRONAUT_MCP_BEARER_TOKEN`.\n3. Restart Cursor. Check **Output → MCP Logs** if connection fails.\n\n**OAuth**\n\n1. Copy `cursor-mcp-oauth.json` to `.cursor/mcp.json`.\n2. Complete the OAuth sign-in when Cursor prompts you (uses your registered `client_id` / `client_secret`).\n\nDocs: [Cursor MCP](https://cursor.com/docs/context/mcp).\n\n---\n\n## VS Code (GitHub Copilot agent / MCP)\n\n**Bearer token**\n\n1. Copy `vscode-mcp.json` to `.vscode/mcp.json`, or merge into your [user MCP config](https://code.visualstudio.com/docs/copilot/reference/mcp-configuration).\n2. Run **MCP: List Servers** and enter your bearer token when prompted.\n\n**OAuth**\n\n1. Copy `vscode-mcp-oauth.json` to `.vscode/mcp.json`.\n2. Sign in through VS Code when prompted.\n\nDocs: [MCP configuration reference](https://code.visualstudio.com/docs/copilot/reference/mcp-configuration).\n\n---\n\n## Claude Code (CLI)\n\n**Bearer token — CLI**\n\n```bash\nexport LAWSTRONAUT_MCP_BEARER_TOKEN=\"your-token-here\"\n\nclaude mcp add --transport http lawstronaut-mcp https://mcp.lawstronaut.com \\\n  --header \"Authorization: Bearer $LAWSTRONAUT_MCP_BEARER_TOKEN\"\n```\n\n**Bearer token — project file**\n\nCopy `claude-code.mcp.json` to `.mcp.json` in your project root.\n\n**OAuth**\n\nAdd the server URL only and complete OAuth when prompted:\n\n```bash\nclaude mcp add --transport http lawstronaut-mcp https://mcp.lawstronaut.com\n```\n\nDocs: [Connect Claude Code to tools via MCP](https://code.claude.com/docs/en/mcp).\n\n---\n\n## Claude Desktop (Anthropic app)\n\nClaude 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.\n\nGo to **Customize**, **Connectors**, click \"**+**\", **Add Custom Connector**, and fill the dialog:\n\n<img src=\"./assets/claude-desktop.png\" width=\"790\" alt=\"claude\" />\n\n---\n\n## Other hosts (Continue, Zed, custom agents, etc.)\n\nAny client that supports **MCP Streamable HTTP** can connect with:\n\n- **URL:** `https://mcp.lawstronaut.com`\n- **Bearer:** `Authorization: Bearer <token>`\n- **OAuth:** use discovery at `/.well-known/oauth-authorization-server` with your `client_id` / `client_secret`\n\n---\n\n## Tools\n\n- **list_jurisdictions** - List all jurisdictions (countries/states) in the Lawstronaut corpus — call first to get valid ISO codes for other tools\n\n- **list_domains** - List legal domains with optional name filter and pagination\n  - `domain`: Filter domains by name (string, optional)\n  - `limit`: Number of results to return (number, optional)\n  - `offset`: Number of results to skip (number, optional)\n\n- **list_subdomains** - List subdomains for a domain ID — filter by name, paginate results\n  - `domain_id`: Filter by Domain ID (string, required)\n  - `subdomain`: Filter subdomains by name (string, optional)\n  - `limit`: Number of results to return (number, optional)\n  - `offset`: Number of results to skip (number, optional)\n\n- **list_categories** - List legal categories for a subdomain — filter by name, paginate results\n  - `subdomain_id`: Filter by Subdomain ID (string, optional)\n  - `category_name`: Filter categories by name (string, optional)\n  - `limit`: Number of results to return (number, optional)\n  - `offset`: Number of results to skip (number, optional)\n\n- **list_subcategories** - List subcategories for a category ID — filter by name, paginate results\n  - `category_id`: Filter by Category ID (string, required)\n  - `subcategory_name`: Filter subcategories by name (string, optional)\n  - `limit`: Number of results to return (number, optional)\n  - `offset`: Number of results to skip (number, optional)\n\n- **list_law_types** - List law types for a subcategory ID — filter by name, paginate results\n  - `subcategory_id`: Filter by Subcategory ID (string, required)\n  - `law_type`: Filter law types by name (string, optional)\n  - `limit`: Number of results to return (number, optional)\n  - `offset`: Number of results to skip (number, optional)\n\n- **list_portals** - List legal portals for a jurisdiction — filter by name, language, or tag\n  - `iso`: Filter by Jurisdiction ISO code (e.g. 'US') (string, required)\n  - `name`: Filter portals by name (string, optional)\n  - `tag`: Filter by tag (string, optional)\n  - `lang`: Filter by language (string, optional)\n\n- **list_authority_types** - List authority types for a jurisdiction — filter by portal or authority type\n  - `iso`: Filter by Jurisdiction ISO code (e.g. 'US') (string, required)\n  - `limit`: Number of results to return (number, optional)\n  - `offset`: Number of results to skip (number, optional)\n  - `portal_name`: Filter by portal name (string, optional)\n  - `authority_type`: Filter by authority type (string, optional)\n\n- **list_issuing_authorities** - List issuing authorities for a jurisdiction — filter by portal or authority name\n  - `iso`: Filter by Jurisdiction ISO code (e.g. 'US') (string, required)\n  - `limit`: Number of results to return (number, optional)\n  - `offset`: Number of results to skip (number, optional)\n  - `portal_name`: Filter by portal name (string, optional)\n  - `issuing_authority`: Filter by issuing authority (string, optional)\n\n- **list_documents** - List legal documents in a jurisdiction — filter by title, dates, portal, status, tags, and more\n  - `iso`: Filter by Jurisdiction ISO code (e.g. 'US') (string, required)\n  - `portal`: Filter by portal name (string, optional)\n  - `version`: Document version (string, optional)\n  - `limit`: Number of results to return (number, optional)\n  - `offset`: Number of results to skip (number, optional)\n  - `document_id`: Document ID (string, optional)\n  - `repealed`: Filter by repealed status (boolean, optional)\n  - `title`: Filter by title (string, optional)\n  - `section_title`: Filter by section title (string, optional)\n  - `url`: Filter by URL (string, optional)\n  - `status`: Filter by status (string, optional)\n  - `crawling_date`: Filter by crawling date (string, optional)\n  - `last_updated`: Filter by last updated date (string, optional)\n  - `last_amendment`: Filter by last amendment date (string, optional)\n  - `publication_date`: Filter by publication date (string, optional)\n  - `expiration_date`: Filter by expiration date (string, optional)\n  - `effective_date`: Filter by effective date (string, optional)\n  - `date_of_enactment`: Filter by date of enactment (string, optional)\n  - `date_of_decision`: Filter by date of decision (string, optional)\n  - `file_data_only`: Return only file-related data (boolean, optional)\n  - `issuing_authority`: Filter by issuing authority (string, optional)\n  - `type_of_authority`: Filter by type of authority (string, optional)\n  - `source_identifier`: Filter by source identifier (string, optional)\n  - `source_secondary_identifier`: Filter by secondary source identifier (string, optional)\n  - `tag`: Filter by tag (string, optional)\n  - `lang`: Filter by language (string, optional)\n\n- **get_document_text** - Get full text of documents matching jurisdiction and filter criteria\n  - `iso`: Filter by Jurisdiction ISO code (e.g. 'US') (string, required)\n  - `portal`: Filter by portal name (string, optional)\n  - `version`: Document version (string, optional)\n  - `limit`: Number of results to return (number, optional)\n  - `offset`: Number of results to skip (number, optional)\n  - `document_id`: Document ID (string, optional)\n  - `repealed`: Filter by repealed status (boolean, optional)\n  - `title`: Filter by title (string, optional)\n  - `section_title`: Filter by section title (string, optional)\n  - `url`: Filter by URL (string, optional)\n  - `status`: Filter by status (string, optional)\n  - `crawling_date`: Filter by crawling date (string, optional)\n  - `last_updated`: Filter by last updated date (string, optional)\n  - `last_amendment`: Filter by last amendment date (string, optional)\n  - `publication_date`: Filter by publication date (string, optional)\n  - `expiration_date`: Filter by expiration date (string, optional)\n  - `effective_date`: Filter by effective date (string, optional)\n  - `date_of_enactment`: Filter by date of enactment (string, optional)\n  - `date_of_decision`: Filter by date of decision (string, optional)\n  - `file_data_only`: Return only file-related data (boolean, optional)\n  - `issuing_authority`: Filter by issuing authority (string, optional)\n  - `type_of_authority`: Filter by type of authority (string, optional)\n  - `source_identifier`: Filter by source identifier (string, optional)\n  - `source_secondary_identifier`: Filter by secondary source identifier (string, optional)\n  - `tag`: Filter by tag (string, optional)\n  - `lang`: Filter by language (string, optional)\n\n- **get_markdown** - Get document body as markdown for matching jurisdiction and filters\n  - `iso`: Filter by Jurisdiction ISO code (e.g. 'US') (string, required)\n  - `portal`: Filter by portal name (string, optional)\n  - `version`: Document version (string, optional)\n  - `limit`: Number of results to return (number, optional)\n  - `offset`: Number of results to skip (number, optional)\n  - `document_id`: Document ID (string, optional)\n  - `repealed`: Filter by repealed status (boolean, optional)\n  - `title`: Filter by title (string, optional)\n  - `section_title`: Filter by section title (string, optional)\n  - `url`: Filter by URL (string, optional)\n  - `status`: Filter by status (string, optional)\n  - `crawling_date`: Filter by crawling date (string, optional)\n  - `last_updated`: Filter by last updated date (string, optional)\n  - `last_amendment`: Filter by last amendment date (string, optional)\n  - `publication_date`: Filter by publication date (string, optional)\n  - `expiration_date`: Filter by expiration date (string, optional)\n  - `effective_date`: Filter by effective date (string, optional)\n  - `date_of_enactment`: Filter by date of enactment (string, optional)\n  - `date_of_decision`: Filter by date of decision (string, optional)\n  - `file_data_only`: Return only file-related data (boolean, optional)\n  - `issuing_authority`: Filter by issuing authority (string, optional)\n  - `type_of_authority`: Filter by type of authority (string, optional)\n  - `source_identifier`: Filter by source identifier (string, optional)\n  - `source_secondary_identifier`: Filter by secondary source identifier (string, optional)\n  - `tag`: Filter by tag (string, optional)\n  - `lang`: Filter by language (string, optional)\n\n- **get_source_url** - Get a time-limited signed URL to the original source file (PDF, etc.)\n  - `document_id`: Document ID (integer, required)\n\n- **get_document_with_version** - Get a specific document at a specific version with full metadata\n  - `document_id`: Document ID (integer, required)\n  - `version`: Version (integer, required)\n\n- **horizon_scan** - Scan recent legal changes in a jurisdiction — filter by topic, date window, and authority\n  - `iso`: One ISO code e.g. \"IE\", \"NL\", \"US\", etc (string, required)\n  - `since`: Start of date window for the scan (string, optional)\n  - `topic`: Topic or keyword to focus the scan (string, optional)\n  - `date_field`: Which date field to use for the window (string, optional)\n  - `status`: Filter by status (string, optional)\n  - `issuing_authority`: Filter by issuing authority (string, optional)\n  - `type_of_authority`: Filter by type of authority (string, optional)\n  - `include_repealed`: Include repealed documents (boolean, optional)\n  - `max_per_jurisdiction`: Maximum results per jurisdiction (integer, optional)\n\n- **evidence_pull** - Get full citation chain for a document — metadata, legal link, source URL, and body text\n  - `iso`: Document's jurisdiction ISO code, e.g. 'IE', 'NL', 'US', etc (string, required)\n  - `document_id`: Numeric document_id from any listing/search tool (integer, required)\n  - `include_text`: Include document body text (boolean, optional)\n  - `include_source_url`: Include signed source URL (boolean, optional)\n  - `text_format`: Format for included text (e.g. markdown or plain) (string, optional)\n\nAll tools are read-only. OAuth tokens are issued with scope `mcp:tools:read`. Tool listing is public; tool calls require authentication.\n\n---\n",
  "bytes": 15906,
  "sha": "a0f6c8f431237f203e4299270fe7c7b4c73c7e1aed6330fe12684955266084bc",
  "repo_slug": "lawstronaut-fzco/lawstronaut-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_lawstronaut_lawstronaut_mcp_b60b02c0/readme"
}