Patents MCP — wraps the USPTO Open Data Portal (ODP) Patent File Wrapper API
MCPpedia last refreshed this data
io.github.pipeworx-io/patents is an MCP server that patents MCP — wraps the USPTO Open Data Portal (ODP) Patent File Wrapper API. Its tool list has not been published yet over http, requires no API key, and scores 89/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"patents": {
"url": "https://gateway.pipeworx.io/patents/mcp"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Patents MCP — wraps the USPTO Open Data Portal (ODP) Patent File Wrapper API
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked @pipeworx/mcp-patents against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in legal / search
Open-source web scraper for AI agents with scrape, crawl, and map tools
MCP server for advanced web search using Tavily
MCP server for enterprise local codebase indexing, semantic search, and code dependency graphs.
The official MCP server implementation for the Perplexity API Platform
MCP Security Weekly
Get CVE alerts and security updates for io.github.pipeworx-io/patents and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
The US Patent and Trademark Office's patent database via the USPTO Open Data Portal (ODP, data.uspto.gov) — Pipeworx migrated off the legacy PatentsView API (api.patentsview.org, sunset 2025-05-01) on 2026-05-12. Search and retrieve granted US patents and published applications by keyword, assignee, inventor, or patent number. Free, no auth (platform key configured server-side; bring your own via _apiKey if you need your own quota — get one at https://data.uspto.gov/myodp).
Part of Pipeworx — an MCP gateway connecting AI agents to 1867+ live data sources. This is an independent, unofficial integration — not affiliated with, endorsed by, or published by the upstream provider.
Patents are the public record of what's been invented and who claims to have invented it. For competitive intelligence, IP due diligence, freedom-to-operate research, or technology landscaping, the USPTO is the source. What this pack actually returns: title, inventors/applicants, classification, filing/grant status and dates, the granted patent number once issued, full prosecution/transaction history, parent/child continuity (priority chains), and recorded assignment/conveyance history — both for one application you already have (get_patent_assignments) and by searching assignee/assignor/patent/application number (search_patent_assignments). It does not return claims text or citation data; there is no get_claims or citation tool in this pack (the epo-ops pack's get_claims does return claims text, but only for EPO-published records).
Three core flows:
1. Keyword search. "What patents exist for CRISPR gene editing?" → search_patents({query: "CRISPR gene editing"}) → matching applications/patents with title, application number, filing date, applicants, inventors, status, classification.
2. Specific patent. "What's the status of application 16/123,456?" → get_patent({number: "16123456"}) → title, inventors, classification, status, and — once granted — patent_number/grant_date/publication_number/publication_date. If you already have a GRANTED patent number instead, pass it as patent_number (e.g. get_patent({patent_number: "11646472"})) rather than number — see the collision warning below. For the full prosecution timeline, use get_patent_transactions; for where the application came from (continuations, divisionals, provisionals) and what it later spawned, use get_patent_continuity. For who currently holds it, pair with get_patent_assignments({application_number: "16123456"}) or search by name with search_patent_assignments.
3. Transfer history (not a patent list). "What has Amyris been assigned?" / "Who assigned patent 10,000,000?" → search_patent_assignments({assignee: "Amyris"}) / search_patent_assignments({patent_number: "10000000"}) → recorded assignments with reel/frame, conveyance, dates, assignors/assignees, and the covered application/patent numbers. This is the recorded-transfer register, one row per transfer. To list the patents a company owns or holds ("patents assigned to X"), use search_patents({applicant: "<company name with its corporate suffix>", query: "*"}) instead — a company with no recorded transfer returns zero here even when it holds many patents.
For company-level IP due diligence (combining patents with SEC IP risk disclosures and trademarks), see the Patent Due Diligence recipe.
pipeworx://uspto/patent/{number}
Patent numbers are stable forever. Embed in agent output as the canonical citation.
| Type | Prefix | What it is |
|---|---|---|
| Utility patent | (none / numeric) | Standard invention patent (machines, processes, articles) |
| Design patent | D | Ornamental design (e.g., D123,456 = a chair design) |
| Plant patent | PP | Asexually reproduced plant variety |