| name | patsnap-patent-literature-search |
| description | Search 200M+ patents and scientific literature using PatSnap's MCP server with natural language queries |
| triggers | ["search patents for prior art","find academic papers about","look up patent information","search scientific literature on","find patents by assignee","research intellectual property for","what patents exist for","search both patents and papers about"] |
PatSnap Patent & Literature Search MCP
Skill by ara.so — MCP Skills collection.
Overview
PatSnap Patent & Literature Search MCP provides AI agents with direct access to 200M+ patents across 170+ jurisdictions (USPTO, EPO, WIPO) and 216M+ scientific papers. Search using natural language queries without learning Boolean syntax. Supports fusion search (patents + literature), semantic search, keyword/BM25 text search, and precise filtering by assignee, inventor, IPC class, legal status, jurisdiction, date range, and citations.
Installation
Claude Desktop
claude mcp add --transport http search-tool \
"https://connect.patsnap.com/2b0355/logic-mcp?apikey=${PATSNAP_API_KEY}"
Cursor or Windsurf
Add to MCP configuration file (~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json or equivalent):
{
"mcpServers": {
"patsnap_patent_literature": {
"url": "https://connect.patsnap.com/2b0355/logic-mcp?apikey=${PATSNAP_API_KEY}",
"type": "streamableHttp"
}
}
}
Docker (stdio bridge)
docker run --rm -i \
-e PATSNAP_API_KEY=${PATSNAP_API_KEY} \
ghcr.io/patsnap/patent-literature-search-mcp:latest
MCP client configuration for Docker:
{
"mcpServers": {
"patsnap_patent_literature": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"PATSNAP_API_KEY",
"ghcr.io/patsnap/patent-literature-search-mcp:latest"
],
"env": {
"PATSNAP_API_KEY": "${PATSNAP_API_KEY}"
}
}
}
}
API Key
- Register at Patsnap Open Platform
- Navigate to Patent & Literature Search MCP page
- Generate API key (10,000 free credits for new accounts)
- Set environment variable:
export PATSNAP_API_KEY=your_key_here
Available Tools
patsnap_search
Search patents or scientific literature with natural language or structured queries.
Parameters:
source (required): "patent" or "literature"
query (required): Natural language search query or keywords
filters (optional): Object with filter criteria
assignee: Company/organization name
inventor: Inventor name
ipc_class: International Patent Classification code
legal_status: Patent legal status
jurisdiction: Country/region code (e.g., "US", "EP", "CN")
date_from, date_to: Date range (ISO 8601 format)
min_citations: Minimum citation count
page (optional): Page number (default: 1)
page_size (optional): Results per page (default: 10, max: 50)
Example: Patent search with filters
{
"source": "patent",
"query": "solid state battery lithium metal anode",
"filters": {
"assignee": "Toyota",
"date_from": "2020-01-01",
"jurisdiction": "US",
"legal_status": "granted"
},
"page": 1,
"page_size": 20
}
Example: Literature search
{
"source": "literature",
"query": "GLP-1 receptor agonist cardiovascular outcomes",
"filters": {
"date_from": "2022-01-01",
"min_citations": 10
},
"page_size": 15
}
Example: IPC classification search
{
"source": "patent",
"query": "neural network image recognition",
"filters": {
"ipc_class": "G06N3/08",
"date_from": "2023-01-01"
}
}
patsnap_fetch
Retrieve detailed patent or literature records as Markdown.
Parameters:
urls (optional): Array of result URLs from patsnap_search
publication_numbers (optional): Array of patent publication numbers (e.g., ["US10123456B2", "EP3456789A1"])
Example: Fetch by URLs
{
"urls": [
"https://analytics.zhihuiya.com/patent-view?patentId=abc123",
"https://analytics.zhihuiya.com/patent-view?patentId=def456"
]
}
Example: Fetch by publication numbers
{
"publication_numbers": ["US11234567B2", "WO2023012345A1"]
}
Common Usage Patterns
Prior Art Search
Search for existing patents before filing:
{
"source": "patent",
"query": "augmented reality waveguide display optical combiner",
"filters": {
"date_to": "2023-06-01",
"jurisdiction": "US"
},
"page_size": 50
}
{
"urls": ["<url1>", "<url2>", "<url3>"]
}
Technology Landscape Analysis
Map patent activity by assignee and technology area:
{
"source": "patent",
"query": "electric vehicle battery thermal management",
"filters": {
"date_from": "2020-01-01"
},
"page_size": 50
}
{
"source": "patent",
"query": "battery thermal management",
"filters": {
"assignee": "Tesla",
"date_from": "2020-01-01"
}
}
Fusion Search (Patents + Literature)
Combine patent and academic research:
{
"source": "patent",
"query": "CRISPR base editing adenine deaminase",
"filters": {
"date_from": "2021-01-01",
"legal_status": "granted"
}
}
{
"source": "literature",
"query": "CRISPR base editing adenine deaminase efficiency",
"filters": {
"date_from": "2021-01-01",
"min_citations": 5
}
}
Patent Expiration Monitoring
Find patents expiring soon:
{
"source": "patent",
"query": "GLP-1 receptor agonist diabetes treatment",
"filters": {
"legal_status": "granted",
"date_to": "2008-12-31"
},
"page_size": 30
}
Inventor/Assignee Tracking
Monitor specific organizations or inventors:
{
"source": "patent",
"query": "quantum computing error correction",
"filters": {
"assignee": "IBM",
"date_from": "2023-01-01"
},
"page_size": 25
}
Response Structure
Search Response
{
"total": 1234,
"page": 1,
"page_size": 10,
"results": [
{
"title": "Solid-state battery with lithium metal anode",
"url": "https://analytics.zhihuiya.com/patent-view?patentId=...",
"publication_number": "US11234567B2",
"assignee": "Toyota Motor Corporation",
"filing_date": "2021-03-15",
"publication_date": "2023-01-24",
"abstract": "A solid-state battery comprising...",
"ipc_classes": ["H01M10/0562", "H01M10/0525"],
"citations":
Fetch Response
Returns Markdown-formatted detailed records including:
- Patents: Bibliographic data, claims, description, drawings, citations, legal status, patent family
- Literature: Title, authors, journal, DOI, abstract, citations, publication info
Configuration
Environment Variables
PATSNAP_API_KEY (required): API key from Patsnap Open Platform
Docker Build (for self-hosting)
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY src ./src
CMD ["node", "src/index.js"]
Build and run:
docker build -t patsnap-search-mcp .
docker run --rm -i -e PATSNAP_API_KEY=${PATSNAP_API_KEY} patsnap-search-mcp
Troubleshooting
Connection Issues
Problem: MCP server not appearing in Claude/Cursor
Solution:
- Verify API key is set:
echo $PATSNAP_API_KEY
- Check MCP configuration file syntax (valid JSON)
- Restart IDE/Claude Desktop after configuration changes
- Test with:
claude mcp list (Claude Desktop)
Search Returns No Results
Problem: Query returns zero results
Solution:
- Simplify query (remove overly specific terms)
- Remove or relax filters (date range, jurisdiction)
- Try different keyword combinations
- Use broader IPC classes (e.g., "H01M10" instead of "H01M10/0562")
- Check spelling of assignee/inventor names
API Rate Limits
Problem: Request fails with rate limit error
Solution:
- Free tier: 10,000 credits (check usage on Patsnap Open Platform)
- Reduce
page_size to consume fewer credits
- Implement exponential backoff for repeated searches
- Upgrade account for higher limits
Invalid Publication Number
Problem: patsnap_fetch fails with publication number
Solution:
- Use standardized format:
US11234567B2 (country code + number + kind code)
- Common formats:
US10123456B2, EP3456789A1, WO2023012345A1
- Extract from
publication_number field in search results
Docker Container Exits Immediately
Problem: Container starts but exits without output
Solution:
- Ensure
-i flag is present: docker run --rm -i
- Verify MCP client sends proper stdio handshake
- Check container logs:
docker logs <container_id>
- Confirm
PATSNAP_API_KEY is passed: docker run -e PATSNAP_API_KEY
Best Practices
- Start broad, then filter: Begin with general queries, analyze results, then add filters
- Combine sources: Use both patent and literature searches for comprehensive research
- Iterate on queries: Refine based on initial results (synonyms, related terms)
- Use fetch selectively: Only fetch full records for most relevant results (saves credits)
- Leverage IPC codes: Use classification codes for precise technical searching
- Date ranges: Narrow by date to focus on recent innovations or identify expiring patents
- Citation counts: Filter by citations to find influential work (especially for literature)
Example Workflows
Competitive Intelligence
const competitorPatents = await patsnap_search({
source: "patent",
query: "autonomous vehicle perception lidar",
filters: { assignee: "Waymo" },
page_size: 50
});
const recentPatents = await patsnap_search({
source: "patent",
query: "autonomous vehicle",
filters: {
assignee: "Waymo",
date_from: "2023-01-01"
}
});
const details = await patsnap_fetch({
urls: competitorPatents.results.slice(0, 5).map(r => r.url)
});
Freedom to Operate (FTO)
const activePatents = await patsnap_search({
source: "patent",
query: "mRNA vaccine lipid nanoparticle formulation",
filters: {
jurisdiction: "US",
legal_status: "granted",
date_from: "2003-01-01"
},
page_size: 50
});
const claims = await patsnap_fetch({
publication_numbers: activePatents.results.map(r => r.publication_number)
});
Resources