Patent Research MCP
An MCP server for patent research and enterprise architecture pattern extraction.
README
patent-research-mcp
A generic MCP server for patent research, architecture extraction, claims analysis, and pattern synthesis.
Fetches patents from Google Patents, extracts structured sections, analyzes architectural patterns, assesses claims risk, and synthesizes reusable design patterns — all through Model Context Protocol (MCP) tools.
Why
Patent research for system architecture is repetitive and error-prone. This tool automates the pipeline:
fetch → extract → analyze → firewall → pattern → export
Each step produces structured, reviewable artifacts that feed into architecture decision records (ADRs), not unstructured notes.
Quick Start
# Install with dev dependencies
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
# Verify
patent-research seeds
CLI Usage
| Command | Description |
|---|---|
patent-research seeds |
List seed patents with metadata |
patent-research fetch <number> [--pdf] |
Download patent HTML + plain text |
patent-research sections <number> |
Extract structured sections (abstract, claims, description, etc.) |
patent-research patterns |
List saved architectural patterns |
patent-research export |
Generate complete research summary |
# Complete workflow
patent-research seeds
patent-research fetch US7979296B2
patent-research sections US7979296B2 --save
patent-research patterns
patent-research export
MCP Server
Run as a standard MCP server for use with any MCP client (Claude Desktop, Hermes, etc.):
python -m patent_research_mcp.server
Tools (10 total)
| Tool | Description |
|---|---|
patent_seed_list |
List all seed patents with metadata |
patent_fetch |
Download patent HTML, plain text, and optional PDF |
patent_get_sections |
Extract structured sections from a fetched patent |
architecture_card_save |
Save a structured architecture analysis |
claims_firewall_save |
Save a claims risk assessment |
pattern_save |
Save a reusable architecture pattern |
pattern_list |
List all saved patterns |
pattern_compare |
Compare patterns across patents for shared concepts |
research_export_markdown |
Generate a complete research summary |
module_proposal |
Generate a module proposal template |
Example: Hermes config
mcp:
servers:
patent-research:
command: /path/to/.venv/bin/python
args: [-m, patent_research_mcp.server]
enabled: true
env:
RESEARCH_PLUGIN: /path/to/private-plugin # optional
Data Flow
Google Patents
│
▼
fetch() ─── raw/ (HTML + TXT + optional PDF)
│
▼
get_sections() ─── sections/ (structured JSON)
│
▼
ArchitectureCard ─── cards/ (architecture analysis)
ClaimsFirewall ─── claims/ (risk assessment)
PatternCard ─── patterns/ (reusable patterns)
│
▼
export() ─── exports/ (research summary)
Artifacts
| Artifact | Schema | Purpose |
|---|---|---|
| ArchitectureCard | ArchitectureCard |
Structured architecture analysis: problem, components, ontology, patterns |
| ClaimsFirewall | ClaimsFirewall |
Risk assessment: dangerous claims, safe abstractions, design-around |
| PatternCard | PatternCard |
Reusable pattern: entities, events, states, reusable principle |
Plugin System
The server supports private plugins via the RESEARCH_PLUGIN environment variable. When set, the plugin's patents.json overrides the default seed list. This allows domain-specific patent collections without forking the generic core.
patent-research-mcp/ # public, generic
└── src/patent_research_mcp/
└── server.py # checks $RESEARCH_PLUGIN/patents.json
private-plugin/ # private, domain-specific
└── patents.json # SeedPatent array
Example patents.json:
[
{
"publication_number": "US20220237532A1",
"title": "Digital Twin of Organizational Processes",
"domain": "enterprise-architecture",
"why_it_matters": "...",
"google_patents_url": "https://patents.google.com/patent/US20220237532A1/"
}
]
Schemas
| Class | File | Description |
|---|---|---|
ArchitectureCard |
schemas.py |
Full patent architecture analysis |
ClaimsFirewall |
schemas.py |
Claims liability assessment |
PatternCard |
schemas.py |
Reusable architectural pattern |
SeedPatent |
schemas.py |
Seed patent entry |
CompareResult |
schemas.py |
Cross-pattern comparison result |
Environment Variables
| Variable | Default | Description |
|---|---|---|
PATENT_RESEARCH_DATA |
$CWD/data |
Data storage directory |
RESEARCH_PLUGIN |
— | Path to private plugin with custom seeds |
Development
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest -v
# Lint
ruff check src/
ruff format --check src/
# Type check (optional)
mypy src/
Project Structure
patent-research-mcp/
├── src/patent_research_mcp/
│ ├── __init__.py
│ ├── server.py — MCP server (tools) + CLI
│ ├── schemas.py — Pydantic models
│ ├── patents.py — Google Patents fetcher (Playwright)
│ ├── store.py — JSON file storage
│ ├── normalizer.py — Text & synonym normalization
│ ├── exporter.py — Markdown report generation
│ └── seed.py — Default seed patent data
├── prompts/ — LLM prompt templates for analysis
├── data/ — Patent artifacts (gitignored except examples)
├── tests/ — pytest suite
└── pyproject.toml — Build config
License
MIT — see LICENSE for details.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.