Overview
The server exposes 4 tools in two groups. Use search to find patents, then use the lookup tools to fetch the full detail for the ones you care about.
Add the server URL above to any MCP-compatible client as a remote server. Your assistant then chooses the right tool from the descriptions below. Some clients show tool names with an ipone-patents___ prefix.
Workflows
Find and review patents
-
1. Search
Run a fielded query. Request only the fields you need, and a listref if you may page through results later.
searchByQuery -
2. Retrieve
Fetch fuller records for chosen patents: abstract, claims, description, family and citations.
documentsByPndocumentsById -
3. Page through
Return more pages, or different fields, for an earlier search without running it again.
documentsByListref
{
"tool": "searchByQuery",
"arguments": {
"query": "ti=(lithium ADJ battery) AND cc=US",
"return_fields": "pn,ti,pa,pd",
"size": 10,
"return_listref": true
}
}
Summarize a result set
Pass summarize to searchByQuery to aggregate results by one or more fields, for example pa,cc for the top assignees and countries. Use summarizeSize (1 to 100) to control how many values come back for each field.
Look up a known patent
If you already have a publication number, skip the search and call documentsByPn with the fields you want.
{
"tool": "documentsByPn",
"arguments": {
"pns": "<publication number>",
"return_fields": "ti,ab,cl,fam,cipf"
}
}
Tool reference
Return fields differ between the search tool and the lookup tools. See the field reference for which tags each one returns.
Search
searchByQuery
Fielded boolean searchQuery up to 1,000 charactersSearches patents with a fielded query. Supports boolean operators, wildcards, phrase queries and proximity (ADJn, NEARn). Returns the fields you request, and can return a listref for paging or aggregate results with summarize.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | Yes | Fielded query, for example ti=(lithium ADJ battery) AND cc=US. Maximum 1,000 characters. See query syntax. |
| collections | string | No | Comma-separated collection names. Defaults to all collections. |
| return_fields | string | No | Comma-separated field tags. Default id. See the field reference. |
| size | integer | No | Maximum rows to return. Default 10. |
| offset | integer | No | Zero-based result offset. Default 0. |
| return_listref | boolean | No | Return a listref that identifies this search. |
| listref | string | No | A reference to a previously executed query. Leave unset unless you specifically need it. |
| search_on_datatype | string | No | One of fld, dwpi or fld_dwpi. Default fld_dwpi. |
| summarize | string | No | Comma-separated field tags to aggregate: ad, cc, cpc, ic, in, pa, pd, py. |
| summarizeSize | integer | No | Maximum aggregation values per field, 1 to 100. Default 10. |
Lookups
documentsByPn
Retrieves patent data for one or more publication numbers.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pns | string | Yes | Patent (publication) numbers. |
| collections | string | No | Comma-separated collection names. Defaults to all collections. |
| return_fields | string | No | Comma-separated field tags. Default pn. |
| size | integer | No | Maximum rows to return. Default 10. |
| offset | integer | No | Zero-based result offset. Default 0. |
| listref | string | No | A reference to a previously executed query. Leave unset unless you specifically need it. |
documentsById
Retrieves patent data for one or more document GUIDs, such as the id values returned by a search.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ids | string | Yes | Document GUIDs. |
| collections | string | No | Comma-separated collection names. Defaults to all collections. |
| return_fields | string | No | Comma-separated field tags. Default pn. |
| size | integer | No | Maximum rows to return. Default 10. |
| offset | integer | No | Zero-based result offset. Default 0. |
documentsByListref
Retrieves patent data for a previous search using its listref. Use it to fetch further pages or different fields without running the query again.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| listref | string | Yes | The listref returned by an earlier searchByQuery call made with return_listref set to true. |
| collections | string | No | Comma-separated collection names. Defaults to all collections. |
| return_fields | string | No | Comma-separated field tags. Default pn. |
| size | integer | No | Maximum rows to return. Default 10. |
| offset | integer | No | Zero-based result offset. Default 0. |
Field reference
Use the two-to-five letter tag, not the display name, in query, return_fields and summarize. Only tags marked for a use are accepted for it.
| Tag | Field | Search | Returned by search | Returned by lookups | Summarize |
|---|---|---|---|---|---|
| ti | Title | ✓ | ✓ | ✓ | — |
| ab | Abstract | ✓ | — | ✓ | — |
| cl | Claims | ✓ | ✓ | ✓ | — |
| dsc | Description | ✓ | — | ✓ | — |
| pd | Publication date | ✓ | ✓ | ✓ | ✓ |
| py | Publication year | ✓ | — | ✓ | ✓ |
| ad | Application date | ✓ | ✓ | ✓ | ✓ |
| ay | Application year | ✓ | — | ✓ | — |
| an | Application number | ✓ | ✓ | ✓ | — |
| pan | Derwent accession number | ✓ | ✓ | ✓ | — |
| pn | Publication number | ✓ | ✓ | ✓ | — |
| cc | Country code | ✓ | — | ✓ | ✓ |
| id | Document identifier | — | ✓ | ✓ | — |
| pa | Assignee | ✓ | ✓ | ✓ | ✓ |
| in | Inventor | ✓ | ✓ | ✓ | ✓ |
| copa | Optimized assignee | ✓ | ✓ | — | — |
| copaa | All optimized assignee | — | — | ✓ | — |
| cuppa | Ultimate parent | ✓ | ✓ | — | — |
| cuppaa | All ultimate parent | — | — | ✓ | — |
| cpc | CPC classification code | ✓ | ✓ | ✓ | ✓ |
| ic | IPC classification code | ✓ | ✓ | ✓ | ✓ |
| ipc | IPC classification code (alternate tag) | — | ✓ | — | — |
| cip | Citing patent | ✓ | — | ✓ | — |
| cipf | Cited patents | — | — | ✓ | — |
| cin | Non-patent citations | ✓ | — | ✓ | — |
| fam | Family members | — | — | ✓ | — |
| caid | Patent dead/alive status | ✓ | ✓ | ✓ | — |
| aisq | Semantic (Derwent AI) search, free text | ✓ | — | — | — |
“Lookups” means documentsByPn, documentsById and documentsByListref. The aisq tag runs a free-text semantic search rather than a keyword match.
Query syntax and limits
-
Fielded queries
Write clauses as
field=valueand combine them withAND,ORandNOT. Phrase, wildcard and proximity searching are supported. When the same field repeats across adjacentANDclauses, prefix it once, as inti=title AND device AND cc=US. -
Multiple terms in one field
Wrap the value in parentheses. If you give several terms with no operator between them, put
ADJbetween them, as inti=(lithium ADJ battery). -
Proximity, wildcard and truncation limits
ADJnandNEARnaccept n from 1 to 10. Use no more than 10 wildcard characters per term. Truncation is limited to 5 terms per query. The query itself is limited to 1,000 characters. -
Collections
By default all collections are searched. To narrow the search, pass a comma-separated list of exact collection names. Names are a country code plus a type suffix (
apps,grantsorutils), for exampleusapps,epgrantsorjputils. -
Request only what you need
Search returns
idby default and the lookup tools returnpn. Add fields toreturn_fieldsdeliberately, and refine broad queries rather than paging through everything. -
Rate limits
The four tools share one limit of 50 requests per rolling 60 seconds and 50 concurrent requests. If a call is throttled, wait for
retry_after_secondswhen it is provided instead of retrying immediately.