MCP

Seven tools, one server.

Expose every domain to any MCP client. Tool descriptions carry the routing hints — “legal, regulatory, compliance questions go here” — so the upstream agent routes itself.

BuildingThe MCP server ships with 1stAuthor Law. The configuration below is final; the endpoint goes live with it.
claude mcp add --transport http 1stauthor https://mcp.1stauthor.com/mcp \
  --header "Authorization: Bearer YOUR_KEY"
{
  "mcpServers": {
    "1stauthor": {
      "url": "https://mcp.1stauthor.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_KEY" }
    }
  }
}
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

async with streamablehttp_client(
    "https://mcp.1stauthor.com/mcp",
    headers={"Authorization": "Bearer YOUR_KEY"},
) as (read, write, _):
    async with ClientSession(read, write) as s:
        await s.initialize()
        r = await s.call_tool("ask", {"query": "网络刷单诈骗三万元,未遂,量刑区间", "scope": "both"})
        print(r.content[0].text)
Tools

Tools

papers_searchHybrid search over full-text papers with database-style filters. Returns briefs, not answers.
papers_readRead a paper in layers: brief, head, one section, or raw.
law_searchArticle-level retrieval over statutes from 26 jurisdictions. Filters by jurisdiction, law, domain, status, date.
law_readOne article with translation and extraction, its context window, a chapter, or the full law.
case_searchRetrieve Chinese judgments by cause, court, date, cited article, amount, sentence. Carries a coverage block.
case_readA judgment in layers: brief, head, opinion, decision, raw. Also the articles it cites.
askAgentic search: a question in, a cited answer out. scope=auto routes to papers, law or cases.

An agent handed a bare ask(query) tool will use this API poorly. These three distinctions belong in your tool descriptions. Read the docs →