# search_design_codes

Find US trademarks by USPTO design code — the codes examiners assign to the visual elements of a logo (26.17.01 = straight bands, 24.11 = crowns). Accepts dotted (26.17.01) or packed (261701) form. USPTO design vocabulary is literal and narrow: it records "Bands, straight" where a person says "stripe", and has no entry for words like "swoosh", so a plain shape word resolves to a code through mode="search_codes" before marks can be counted or listed. Modes: count, top_owners, list_marks, by_serial (what codes one mark carries), describe_code, search_codes. Omitting mode infers it from the arguments supplied.

Agent View of the PolicyLayer registry record for `search_design_codes`. HTML page: https://policylayer.com/tools/com-gleanmark-trademark-search/search-design-codes

## Facts

- Tool: `search_design_codes`
- Server: GleanMark Trademark Search (`https://gleanmark.com/mcp`) — https://policylayer.com/tools/com-gleanmark-trademark-search.md
- Homepage: https://github.com/https://gleanmark.com/mcp
- Risk category: Read (Low risk)
- Registry record: grade D, identity unverified
- Server auth posture: open
- Server CORS policy: *
- Server rate-limited: yes
- Parameters: 9
- Recommended policy verdict: Allowed

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `mode` | string | no | search_codes = find a code from a word. describe_code = what a code means. count/top_owners/list_marks = marks carrying the codes. Omit it and the mode is infer |
| `codes` | array | no | Design codes, dotted or packed, e.g. ["26.17.01"]. |
| `limit` | integer | no |  |
| `match` | string | no | all = mark carries every code. any = at least one. |
| `query` | string | no | Required for mode="search_codes". A shape word: band, bar, circle, star, triangle, chevron, crown, leaf, arrow, shield. |
| `status` | string | no |  |
| `nice_class` | string | no | Restrict to one Nice class, e.g. "25". |
| `serial_number` | string | no | Eight-digit serial number for mode="by_serial". |
| `registration_number` | string | no | Registration number for mode="by_serial"; resolved to its serial number automatically. |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_design_codes",
    "arguments": {}
  }
}
```

## Why search_design_codes is rated Low

Even though search_design_codes only reads data, uncontrolled read access leaks sensitive information and racks up API costs: an agent caught in a retry loop can make thousands of calls a minute without anyone noticing.

## Use case

AI agents call search_design_codes to retrieve information from GleanMark Trademark Search without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches GleanMark Trademark Search:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "search_design_codes": {}
  }
}
```

## Other tools on GleanMark Trademark Search (60)

- `run_knockout_search` — Execute — https://policylayer.com/tools/com-gleanmark-trademark-search/run-knockout-search.md
- `run_safe_analytics` — Execute — https://policylayer.com/tools/com-gleanmark-trademark-search/run-safe-analytics.md
- `analyze_prosecution_history` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/analyze-prosecution-history.md
- `analyze_ttab_proceeding` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/analyze-ttab-proceeding.md
- `check_brand_availability` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/check-brand-availability.md
- `check_domain_availability` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/check-domain-availability.md
- `compare_marks` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/compare-marks.md
- `count_trademarks_by_attributes` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/count-trademarks-by-attributes.md
- `get_class_relationships` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-class-relationships.md
- `get_cohort_event_intervals` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-cohort-event-intervals.md
- `get_correspondent_marks` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-correspondent-marks.md
- `get_correspondent_specialization` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-correspondent-specialization.md
- `get_deadline_satisfaction_mapping` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-deadline-satisfaction-mapping.md
- `get_event_code_reference` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-event-code-reference.md
- `get_event_status_mapping` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-event-status-mapping.md
- `get_fame_profile` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-fame-profile.md
- `get_firm_correspondent_tasks` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-firm-correspondent-tasks.md
- `get_firm_deadlines` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-firm-deadlines.md
- `get_firm_oa_outcomes` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-firm-oa-outcomes.md
- `get_firm_top_correspondents` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-firm-top-correspondents.md
- `get_latest_office_action` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-latest-office-action.md
- `get_mark_ai_summary` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-mark-ai-summary.md
- `get_mark_deadlines` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-mark-deadlines.md
- `get_mark_international_profile` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-mark-international-profile.md
- `get_mark_owner_landscape` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-mark-owner-landscape.md
- `get_mark_prosecution_summary` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-mark-prosecution-summary.md
- `get_nice_classes` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-nice-classes.md
- `get_owner_ai_summary` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-owner-ai-summary.md
- `get_owner_deadlines` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-owner-deadlines.md
- `get_owner_filing_trends` — Read — https://policylayer.com/tools/com-gleanmark-trademark-search/get-owner-filing-trends.md
- …and 30 more: https://policylayer.com/tools/com-gleanmark-trademark-search.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=com-gleanmark-trademark-search · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/com-gleanmark-trademark-search
