Skip to main content
Glama
README.md
# mcp-trademark

USPTO Trademark Watcher — both an MCP server (for Claude/Cursor/Windsurf)
**and** a standalone CLI (for cron + email alerts).

## Why this exists

CompuMark and Corsearch charge $50–$500/mo for trademark watching. Smaller
brand owners and indie founders want the same coverage at $19/mo, or a
$149 lifetime license they install themselves. We give them:

1. **MCP tools** — search USPTO from inside Claude, watch your marks,
   review alerts conversationally.
2. **CLI** — same features as a script (cron-friendly).
3. **Local SQLite** — no SaaS dependency, runs offline once cached.
4. **Similarity scoring** that catches look-alikes (typo squatting),
   sound-alikes (phonetic conflicts), and salient-token overlap.

## Pricing

- $19/mo per watched mark (managed)
- $149 lifetime self-host bundle (one-time)
- $499 lifetime + 5 marks managed for 12 months

## Install (self-host)

```powershell
cd C:\openclaw-products\mcp-trademark
python -m venv .venv
.\.venv\Scripts\activate
pip install -e ".[dev]"
```

## CLI usage

```powershell
tmwatch search "Acme"
tmwatch watch "Acme" --classes 009,042 --threshold 0.75 --email alerts@you.com
tmwatch watches
tmwatch scan
tmwatch alerts --days 30
```

## MCP usage (Claude Desktop)

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "trademark": {
      "command": "python",
      "args": ["-m", "src.server"],
      "cwd": "C:\\openclaw-products\\mcp-trademark"
    }
  }
}
```

Then in Claude:
> "Watch the trademark 'Pipely' in classes 009 and 042 and alert me on any
> filings scoring above 0.7."

## Test

```powershell
pytest tests/ -v
```

## Production roadmap

- [ ] **Bulk-feed integration.** Replace the on-demand `client.search` with
  a nightly download of the USPTO weekly bulk feed at
  https://bulkdata.uspto.gov/ + a local FTS5 index. This catches NEW filings
  that haven't been indexed by the search API yet.
- [ ] **Semantic similarity** via Claude (catches "Apple Music" vs "Music
  for the Apple"-style conflicts that string match misses).
- [ ] **Email digest sender** (currently records alerts; need an SES/Resend
  integration to actually mail them).
- [ ] **Web dashboard** (Next.js) for non-technical buyers.
- [ ] **TM-5 international support** (EUIPO, WIPO Madrid) for global watches.