@radsoft/markbase-mcp 2026.11.1 → 2026.11.3

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
@@ -40,12 +40,18 @@ claude mcp add markbase --env MARKBASE_API_KEY=mb_your_key -- npx -y @radsoft/ma
40
40
  | Tool | What it does |
41
41
  |------|--------------|
42
42
  | `check_trademark_availability` | Screen a proposed name against the register, ranked by similarity with a risk level |
43
+ | `screen_trademark_names` | Screen 1–25 names in input order, with a shared optional class; Launch or Scale required |
43
44
  | `search_trademarks` | Typo-tolerant search across 14M+ marks, filterable by class and status |
44
45
  | `get_trademark` | Full record for one mark by serial number |
45
46
  | `get_trademark_timeline` | Prosecution history — filing, publication, office actions, registration |
46
47
  | `search_by_owner` | Every mark held by a company or person |
47
48
  | `list_trademark_classes` | All 45 Nice classes, so the model can pick the right one before screening |
48
49
 
50
+ Bulk screening counts every submitted name toward monthly and per-minute limits,
51
+ including duplicates. Invalid or rejected batches do not consume monthly quota.
52
+ Accepted batches consume their full name count even if a search fails; the tool
53
+ does not retry automatically.
54
+
49
55
  ## Why the class matters
50
56
 
51
57
  Trademark rights are scoped to goods and services. DELTA coexists as an airline, a
@@ -70,6 +76,23 @@ a trademark attorney for any name a user intends to actually adopt.
70
76
  | `MARKBASE_API_KEY` | yes | — |
71
77
  | `MARKBASE_API_URL` | no | `https://api.markbase.co` |
72
78
 
79
+ ## Registry publishing
80
+
81
+ The official MCP registry name is `io.github.Rad-Soft/markbase`. Its metadata is in
82
+ `server.json`; the npm package declares the same name in `mcpName` to prove package
83
+ ownership. The release workflow keeps both versions aligned and publishes the
84
+ registry entry after npm and the release tag succeed. Both publishers use GitHub
85
+ OIDC, so no registry token needs to be configured.
86
+
87
+ After changing `package.json`'s version, run `bun run registry:sync`. The build
88
+ checks that the npm and registry names and versions agree. Validate the complete
89
+ manifest with the official CLI: `mcp-publisher validate server.json`.
90
+
91
+ If registry publishing fails after npm succeeds, manually run **Publish MCP** on
92
+ `main` with `registry_version` set to that published version. It checks out the
93
+ existing `mcp-v` tag and retries only the registry job. Confirm the listing at the
94
+ [official registry API](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.Rad-Soft%2Fmarkbase).
95
+
73
96
  ## License
74
97
 
75
98
  MIT — a product of [Rad Soft](https://radsoftinc.com).
package/dist/index.js CHANGED
@@ -87,6 +87,27 @@ server.registerTool("check_trademark_availability", {
87
87
  return fail(err);
88
88
  }
89
89
  });
90
+ server.registerTool("screen_trademark_names", {
91
+ title: "Screen a batch of proposed names",
92
+ description: "Screen 1–25 proposed names against the US register using a Launch or Scale key. Each submitted name consumes one monthly request, including duplicate names. An admitted batch consumes quota even if a search fails; do not retry automatically. Results keep input order. This is preliminary screening, not legal advice or a registration guarantee.",
93
+ inputSchema: {
94
+ names: z.array(z.string().trim().min(1).max(200)).min(1).max(25).describe("Proposed names in the order to screen"),
95
+ trademark_class: z.string().regex(/^\d{1,3}$/).refine((value) => Number(value) >= 1 && Number(value) <= 45).optional()
96
+ .describe("Shared Nice class 1–45 for the goods or services"),
97
+ limit: z.number().int().min(1).max(50).optional().describe("Maximum matches per name; default 20"),
98
+ },
99
+ }, async ({ names, trademark_class, limit }) => {
100
+ try {
101
+ const data = await request("/clearance/batch", {
102
+ method: "POST",
103
+ body: JSON.stringify({ marks: names, class: trademark_class ? padClass(trademark_class) : undefined, limit }),
104
+ });
105
+ return ok({ ...data, disclaimer: "Screening signal only. Consult a trademark attorney before adopting a name." });
106
+ }
107
+ catch (error) {
108
+ return fail(error);
109
+ }
110
+ });
90
111
  server.registerTool("get_trademark", {
91
112
  title: "Get a trademark by serial number",
92
113
  description: "Fetch the complete record for one US trademark by its USPTO serial number, including owner, status, classes, and goods/services.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@radsoft/markbase-mcp",
3
- "version": "2026.11.1",
3
+ "version": "2026.11.3",
4
4
  "description": "MCP server for the Markbase USPTO trademark API — search, screen, and look up US trademarks from any MCP client.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -8,7 +8,8 @@
8
8
  "markbase-mcp": "dist/index.js"
9
9
  },
10
10
  "files": [
11
- "dist"
11
+ "dist",
12
+ "server.json"
12
13
  ],
13
14
  "keywords": [
14
15
  "mcp",
@@ -26,9 +27,11 @@
26
27
  "directory": "mcp"
27
28
  },
28
29
  "scripts": {
29
- "build": "tsc",
30
+ "build": "bun run registry:check && tsc",
30
31
  "dev": "tsc --watch",
31
- "prepublishOnly": "bun run build"
32
+ "prepublishOnly": "bun run build",
33
+ "registry:check": "node scripts/registry-metadata.mjs",
34
+ "registry:sync": "node scripts/registry-metadata.mjs --write"
32
35
  },
33
36
  "dependencies": {
34
37
  "@modelcontextprotocol/sdk": "^1.22.0",
@@ -40,5 +43,6 @@
40
43
  },
41
44
  "publishConfig": {
42
45
  "access": "public"
43
- }
46
+ },
47
+ "mcpName": "io.github.Rad-Soft/markbase"
44
48
  }
package/server.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
+ "name": "io.github.Rad-Soft/markbase",
4
+ "title": "Markbase Trademark Search",
5
+ "description": "Search US trademarks, screen proposed names for conflicts, and look up USPTO registration records.",
6
+ "websiteUrl": "https://markbase.co",
7
+ "repository": {
8
+ "url": "https://github.com/Rad-Soft/marked-api",
9
+ "source": "github",
10
+ "subfolder": "mcp"
11
+ },
12
+ "version": "2026.11.3",
13
+ "packages": [
14
+ {
15
+ "registryType": "npm",
16
+ "identifier": "@radsoft/markbase-mcp",
17
+ "version": "2026.11.3",
18
+ "transport": {
19
+ "type": "stdio"
20
+ },
21
+ "environmentVariables": [
22
+ {
23
+ "name": "MARKBASE_API_KEY",
24
+ "description": "Free Markbase API key from https://markbase.co/login (5,000 requests per month).",
25
+ "isRequired": true,
26
+ "isSecret": true
27
+ }
28
+ ]
29
+ }
30
+ ]
31
+ }