proofread-mcp 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -38,7 +38,13 @@ What it cannot do: resolve Westlaw (WL) or Lexis identifiers, check statutes, re
38
38
 
39
39
  Needs Node 20 or newer. No install step is required; `npx` fetches [proofread-mcp from npm](https://www.npmjs.com/package/proofread-mcp).
40
40
 
41
- ### Claude Desktop
41
+ ### Claude Desktop (extension bundle)
42
+
43
+ Download `proofread-mcp-<version>.mcpb` from the [latest GitHub release](https://github.com/Data-Alchemy-Labs/proofread-mcp/releases/latest) and open it with Claude Desktop (double-click, or Settings, Extensions, Install Extension). The bundle carries the server and its dependencies and uses the Node runtime that ships with Claude Desktop, so nothing else has to be installed. The only setting is the optional API key, stored by Claude Desktop as a sensitive value and passed to the server as `PROOFREAD_API_KEY`.
44
+
45
+ To build the bundle yourself: `scripts/build-mcpb.sh` (needs `npx @anthropic-ai/mcpb`) writes `build/proofread-mcp-<version>.mcpb` from `manifest.json`, `icon.png` and the npm package contents.
46
+
47
+ ### Claude Desktop (config file)
42
48
 
43
49
  Edit `claude_desktop_config.json` (Settings, Developer, Edit Config):
44
50
 
@@ -148,12 +154,16 @@ There is also a limit of 20 requests an hour per IP (more on paid plans). When a
148
154
 
149
155
  `.docx` upload and unlimited checks need a paid plan. See [proofread.law/pricing](https://proofread.law/pricing).
150
156
 
151
- ## Privacy
157
+ ## Privacy Policy
158
+
159
+ The full policy is at [proofread.law/privacy](https://proofread.law/privacy). What applies to this server:
152
160
 
153
- - The text or file goes to proofread.law, which runs on its own machine, not a cloud provider's API. It is processed in memory and discarded when the report is returned. Only counts (citations, tiers, timing) are logged, never text.
154
- - A citation string the local register cannot resolve may be looked up in the CourtListener citation API. Only the citation string leaves, never a party name or prose.
155
- - Deep check (`deep: true`) is opt-in. In that mode the clause before each citation (up to 700 characters) is sent to a model judge, together with the cited opinion. That is the only mode in which any of the document's prose leaves proofread.law. If the deep-check stream stops before every citation was judged, the tool answers with an error that says how many were checked; it never presents a partial deep check as a finished one.
156
- - This server stores nothing on disk. It keeps the last 50 reports in memory so `render_report` can be called with a short id; they are gone when the process exits. A key from `sign_up` is held in memory only.
161
+ - **What is collected.** The text or file you check leaves your machine and goes to proofread.law's own server (`PROOFREAD_API`, default `https://proofread.law`), over HTTPS, in the request that checks it. `sign_up` sends the account owner's email address and the agent name you give it. Nothing else is sent: no conversation history, no other files, no telemetry.
162
+ - **Use and storage on proofread.law.** The input is processed in memory and discarded when the report is returned; no copy is written to disk. The log line per request carries the kind of input, its size, the number of citations, the tier counts and the time taken, never a citation, a party name or a word of text. With an account, proofread.law keeps the email address, the plan, a monthly count of checks and a hash of each API key.
163
+ - **Third parties.** A citation string the register cannot resolve may be looked up in CourtListener's citation API (the citation string only, never prose). Deep check (`deep: true`) is opt-in: the clause before each citation (up to 700 characters) and the cited opinion go to the model judge; that is the only mode in which words from your document leave proofread.law. Sign-in links go through Resend; payments through Stripe, which sees the card and proofread.law does not. Requests pass through Cloudflare's edge in transit.
164
+ - **Retention.** Inputs and reports: none. Account records: until the owner asks for deletion at privacy@proofread.law.
165
+ - **This server.** It stores nothing on disk. It keeps the last 50 reports in memory so `render_report` can be called with a short id; they are gone when the process exits. The API key lives in your MCP client's configuration (Claude Desktop stores the extension's key as a sensitive setting); a key from `sign_up` is held in memory for the session and shown to you once so you can store it. It is sent only to `PROOFREAD_API`, as an `Authorization: Bearer` header. If a deep-check stream stops before every citation was judged, the tool answers with an error that says how many were checked; it never presents a partial deep check as a finished one.
166
+ - **Contact.** Data Alchemy Labs, privacy@proofread.law.
157
167
 
158
168
  ## The coverage caveat
159
169
 
@@ -196,7 +206,7 @@ Layout: `src/client.ts` is the typed HTTP client (`/verify`, `/render`, `/api/co
196
206
 
197
207
  ## Publishing
198
208
 
199
- See [RELEASE.md](RELEASE.md): npm, the MCP Registry (`server.json` is in the repository), Anthropic's connector directory and OpenAI.
209
+ See [RELEASE.md](RELEASE.md): npm, the MCP Registry (`server.json` is in the repository), the Claude Desktop extension bundle (`manifest.json`, `scripts/build-mcpb.sh`, attached to each GitHub release) and Anthropic's connector directory.
200
210
 
201
211
  ## License
202
212
 
package/dist/client.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { Config } from "./config.js";
2
2
  import type { CheckoutLink, Coverage, Report, ResolveBatch, ResolveResult, Row, SignupResult } from "./types.js";
3
- export declare const USER_AGENT = "proofread-mcp/0.1.1 (+https://github.com/Data-Alchemy-Labs/proofread-mcp)";
3
+ export declare const USER_AGENT = "proofread-mcp/0.1.2 (+https://github.com/Data-Alchemy-Labs/proofread-mcp)";
4
4
  export declare const MAX_UPLOAD_BYTES: number;
5
5
  export declare const MAX_BATCH_CITES = 500;
6
6
  export type FetchLike = (input: string | URL, init?: RequestInit) => Promise<Response>;
package/dist/client.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ProofreadError } from "./errors.js";
2
2
  import { readSseReport } from "./sse.js";
3
- export const USER_AGENT = "proofread-mcp/0.1.1 (+https://github.com/Data-Alchemy-Labs/proofread-mcp)";
3
+ export const USER_AGENT = "proofread-mcp/0.1.2 (+https://github.com/Data-Alchemy-Labs/proofread-mcp)";
4
4
  export const MAX_UPLOAD_BYTES = 10 * 1024 * 1024;
5
5
  export const MAX_BATCH_CITES = 500;
6
6
  /** A default check answers in seconds; a deep check runs 1 to 2 s per citation, four in parallel, up to 15 minutes server-side. */
package/dist/server.d.ts CHANGED
@@ -2,7 +2,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { type Client } from "./client.js";
3
3
  import { type Config } from "./config.js";
4
4
  export declare const SERVER_NAME = "proofread-mcp";
5
- export declare const SERVER_VERSION = "0.1.1";
5
+ export declare const SERVER_VERSION = "0.1.2";
6
6
  export declare const INSTRUCTIONS: string;
7
7
  export interface ServerOptions {
8
8
  config?: Config;
package/dist/server.js CHANGED
@@ -3,7 +3,7 @@ import { createClient } from "./client.js";
3
3
  import { configFromEnv } from "./config.js";
4
4
  import { tools } from "./tools/index.js";
5
5
  export const SERVER_NAME = "proofread-mcp";
6
- export const SERVER_VERSION = "0.1.1";
6
+ export const SERVER_VERSION = "0.1.2";
7
7
  export const INSTRUCTIONS = "proofread.law checks US case citations against an open register of about 10 million court opinions. " +
8
8
  "Tiers: red = check this (the register holds something concrete that disagrees), orange = cannot verify (nothing to check against; not evidence either way), " +
9
9
  "green = found, white = deep check (does the opinion support the sentence; a review queue, not a verdict). " +
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "proofread-mcp",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "mcpName": "io.github.Data-Alchemy-Labs/proofread-mcp",
5
5
  "description": "MCP server for proofread.law: check legal citations from Claude, Cursor or the OpenAI Agents SDK",
6
6
  "license": "MIT",