tools/list) with full input schemas, you rarely need to call one by name. This page is the map of what’s available, the scope each requires, and how calls are metered.
Every tool is org-scoped to your authenticated session. Org context comes from your token or API key, never from a tool argument, so an agent can’t read or change another organization’s data. Reference-data tools (offices, jurisdictions, classifications, rules) are global public data, not org-scoped, but still require a scope like other reads.
Search
| Tool | What it does | Read/Write |
|---|---|---|
search_trademarks | Search global registrations by name, owner, Nice class, jurisdiction, or status. Exact, phonetic, fuzzy, and prefix matching across production offices. | Read |
suggest | Quick typeahead across trademarks, owners, attorneys, and firms, compact results for disambiguation. | Read |
Trademarks
| Tool | What it does | Read/Write |
|---|---|---|
get_trademark | Full detail for one mark by ID, owners, attorneys, classifications, events, media. | Read |
list_trademarks | List marks with filtering and sorting (use search_trademarks for text search). | Read |
get_trademark_history | Prosecution event timeline for a mark (filings, publications, registrations, status changes). | Read |
get_trademark_changes | Field-level diffs between record updates, and when each happened. | Read |
get_trademark_related | Mark-to-mark relationships: Madrid designations, divisionals, seniority claims, transformations. | Read |
get_trademark_proceedings | Proceedings involving a mark (oppositions, cancellations), each with its parties. | Read |
get_trademark_coverage | Jurisdictional coverage, Madrid designation territories and protection status. | Read |
get_trademark_source | Provenance: source office, observation date, and source format. | Read |
batch_get_trademarks | Fetch full detail for up to 100 marks by ID in one call, with a not_found list for anything that didn’t match. | Read |
Owners & entities
| Tool | What it does | Read/Write |
|---|---|---|
get_owner | Owner (applicant/registrant) detail with portfolio statistics. | Read |
list_owners | Search and list owners, find companies or individuals who hold marks. | Read |
get_owner_trademarks | An owner’s trademarks (summary tier) with filtering and sorting. | Read |
get_owner_related | Owners related via the GLEIF corporate hierarchy (parent/child). | Read |
get_entity | A resolved entity: the cross-office identity over per-office owner clusters, with link evidence and public-company facts. | Read |
list_entities | Search resolved entities (one company across all offices), filterable by public-company facts. | Read |
get_entity_trademarks | A resolved entity’s trademarks fanned across all member owners. | Read |
get_entity_family | A resolved entity’s direct GLEIF corporate family (parent and direct subsidiaries). | Read |
Attorneys & firms
| Tool | What it does | Read/Write |
|---|---|---|
get_attorney | Detail for an attorney or representative of record. | Read |
list_attorneys | Search and list attorneys and representatives. | Read |
get_attorney_trademarks | An attorney’s trademarks (summary tier) with filtering and sorting. | Read |
get_attorney_clients | Owners an attorney represents, each with a shared-mark count. | Read |
get_firm | Law-firm detail, including portfolio and attorneys. | Read |
list_firms | Search and list law firms, ranked by portfolio size or attorney count. | Read |
get_firm_attorneys | A firm’s attorneys, each with portfolio stats. | Read |
get_firm_trademarks | Trademarks handled by a firm’s attorneys (summary tier). | Read |
Proceedings
| Tool | What it does | Read/Write |
|---|---|---|
get_proceeding | Detail for one proceeding (opposition, cancellation, etc.) by ID (e.g. prc_8kLm2nPq). | Read |
list_proceedings | List TTAB oppositions, cancellations, and other proceedings with filtering. | Read |
Reference data
Global, public reference data. Not org-scoped, but still requires a read scope, and is logged but not billed.| Tool | What it does | Read/Write |
|---|---|---|
list_offices | Supported trademark offices, with jurisdiction coverage. | Read |
get_office | A single office by its lowercase office code (e.g. uspto, euipo, wipo). | Read |
list_jurisdictions | Supported jurisdictions (ISO-2 plus regional/WIPO codes), with Madrid membership and live-office coverage. | Read |
get_jurisdiction | A single jurisdiction by code, including Madrid membership and member jurisdictions. | Read |
get_deadline_rules | Maintenance/renewal deadline rules with statutory citations; optionally per jurisdiction. | Read |
get_opposition_rules | Opposition window rules with citations, duration, and time zone; optionally per jurisdiction. | Read |
list_classifications | Nice classification classes (the 45-class WIPO standard), filterable by category or keyword. | Read |
suggest_classifications | Suggest Nice classes for a natural-language description, ranked with confidence and rationale. | Read |
list_goods_services | Browse/search the curated goods & services term catalog. | Read |
suggest_goods_services | Draft filing-ready goods/services wording per Nice class from a description. | Read |
list_design_codes | Vienna classification design codes (figurative-element taxonomy for logos/devices). | Read |
get_design_code | A single Vienna design code with notes and its child codes. | Read |
Account & usage
Utility tools for your own org’s account and consumption. Neither billed nor counted against quota.| Tool | What it does | Read/Write |
|---|---|---|
get_usage | Current billing-period usage plus the per-endpoint-type quota and rate-limit matrix. | Read |
get_usage_summary | Daily usage breakdown (requests, billed units, errors, average latency). | Read |
get_account | Org identity (ID, name, plan, key scopes and rate-limit tier) with the plan quota breakdown. | Read |
Monitoring
Watches, alerts, and webhooks. Billed at zero request-level cost; watch capacity itself is capped by your plan.| Tool | What it does | Read/Write |
|---|---|---|
signa_watches_list | List monitoring watches for your org (cursor-paginated). | Read |
signa_watches_retrieve | Retrieve a single watch by ID. | Read |
signa_watches_create | Create a watch (same validation as POST /v1/watches). | Write |
signa_watches_update | Update a watch (PATCH semantics, omitted fields unchanged). | Write |
signa_watches_delete | Deactivate a watch (soft-delete). | Write |
pause_watch | Pause a watch (stops new alerts). | Write |
resume_watch | Resume a paused watch. | Write |
preview_watch | Dry-run a watch query: estimate matches and preview marks. No watch is created. | Read |
get_watch_diagnostics | Audit-mode provenance trace for one (watch, trademark) pair. | Read |
signa_alerts_list | List monitoring alerts for your org. | Read |
signa_alerts_retrieve | Retrieve a single alert by ID. | Read |
list_alerts_for_watch | List alerts emitted by a single watch (cursor-paginated). | Read |
lookup_alert | Bulk-fetch up to 100 alerts by ID (polling pattern). | Read |
signa_webhooks_list | List webhook endpoints (secrets are never returned). | Read |
signa_webhooks_retrieve | Retrieve one webhook endpoint (secret redacted). | Read |
Webhook secrets are never exposed through MCP,
signa_webhooks_list and signa_webhooks_retrieve always redact them. Manage secrets via the REST API instead.Scopes
| Scope | Grants access to |
|---|---|
trademarks:read | Every search, trademark, owner, entity, attorney, firm, proceeding, and reference-data tool above. |
billing:read | Account & usage tools: get_usage, get_usage_summary, get_account. |
portfolios:manage | Every monitoring tool, reads and writes alike: watches, alerts, and webhooks. |
offline_access | Keeps an OAuth session’s token refreshing silently. Doesn’t grant tool access on its own. |
trademarks:read by default, which covers every data and reference tool. Add billing:read if you want your agent to inspect usage and account details, and portfolios:manage only if you want it to read or change watches, alerts, and webhooks. If a tool needs a scope your session lacks, the call returns a clear error naming the required scope, and the rest of the session keeps working.
Metering
MCP tool calls are metered like REST requests: each call counts against your plan’s quota and appears in your usage and request logs, classified the same way its REST counterpart is (search, read, monitoring, and so on). Search and read tools cost 1 unit;suggest_goods_services costs 2; batch_get_trademarks costs 1 unit per ID (up to 100). Reference-data tools are logged but not billed. Account and usage tools are neither billed nor counted. Over-quota calls return a clear error naming the limit that was hit and when it resets, instead of running the tool. The initialize and tools/list handshake calls are never metered.
Rate limits
MCP requests share a dedicated rate-limit tier of 1,000 requests per minute, separate from your plan’s per-endpoint-type limits. See Rate limits for the full header semantics. If you hit the limit, the response includes aRetry-After header.
Security
- Org isolation. Org context is resolved from your token or API key on every request, never from a tool argument. An agent cannot read or modify another organization’s data, even if prompted to.
- Least privilege. Scopes are enforced per tool. For read-only use, issue an API key without
portfolios:manageso the watch, alert, and webhook write tools are unavailable. - Review tool calls. Most MCP clients let you approve tool calls before they run. Keep approval on for any agent with
portfolios:manage, and treat tool results as data an untrusted prompt could try to act on.
Troubleshooting
401: Missing Authorization header
401: Missing Authorization header
401: Access token missing org_id claim
401: Access token missing org_id claim
Your Signa account has not completed onboarding. Log in at app.signa.so and create an organization first.
401: Invalid or expired access token
401: Invalid or expired access token
Your token has expired. Most MCP clients handle refresh automatically. If the error persists, remove and re-add the connection to re-authenticate.
429: Rate limited
429: Rate limited
You are sending more than 1,000 MCP requests per minute. Wait for the
Retry-After period or reduce request frequency.